Skip to content
Snippets Groups Projects
Commit e80ee9d9 authored by Jean-Baptiste's avatar Jean-Baptiste
Browse files

update: auto-add nested field for user from other packages

parent ee62888b
No related branches found
No related tags found
1 merge request!6Resolve "Allow third party package to add nested fields to the user"
Pipeline #373 passed
from django.urls import reverse_lazy
from django.conf import settings from django.conf import settings
from django.urls import reverse_lazy
def userinfo(claims, user): def userinfo(claims, user):
# Populate claims dict. # Populate claims dict.
...@@ -7,3 +8,8 @@ def userinfo(claims, user): ...@@ -7,3 +8,8 @@ def userinfo(claims, user):
claims['email'] = user.email claims['email'] = user.email
claims['website'] = '{0}{1}'.format(settings.BASE_URL, reverse_lazy('user-detail', kwargs={'pk': user.pk})) claims['website'] = '{0}{1}'.format(settings.BASE_URL, reverse_lazy('user-detail', kwargs={'pk': user.pk}))
return claims return claims
USER_FIELDS = ['@id', 'first_name', 'groups', 'last_name', 'username', 'email', 'profile', 'account',
'ldnotification_set', 'chatProfile']
USER_NESTED_FIELDS = ['account', 'profile', 'groups', 'ldnotification_set', 'chatProfile']
"""djangoldp project URL Configuration""" """djangoldp project URL Configuration"""
from importlib import import_module
from django.conf import settings
from django.conf.urls import url, include from django.conf.urls import url, include
from django.contrib.auth.models import Group
from djangoldp.views import LDPViewSet from djangoldp.views import LDPViewSet
from .models import ChatProfile, Account, ChatConfig from .models import ChatProfile, Account, ChatConfig
from .views import userinfocustom from .views import userinfocustom
djangoldp_modules = list(filter(lambda app: app.startswith('djangoldp_'), settings.INSTALLED_APPS))
user_fields = []
user_nested_fields = []
for dldp_module in djangoldp_modules:
try:
user_fields += import_module(dldp_module + '.settings').USER_FIELDS
user_nested_fields += import_module(dldp_module + '.settings').USER_NESTED_FIELDS
except:
pass
urlpatterns = [ urlpatterns = [
url(r'^groups/', LDPViewSet.urls(model=Group, fields=['@id', 'name', 'user_set'])),
url(r'^users/', LDPViewSet.urls(model=settings.AUTH_USER_MODEL, fields=user_fields, permission_classes=[],
nested_fields=user_nested_fields)),
url(r'^accounts/', include('django.contrib.auth.urls')),
url(r'^accounts/', LDPViewSet.urls(model=Account)), url(r'^accounts/', LDPViewSet.urls(model=Account)),
url(r'^chat-profile/', LDPViewSet.urls(model=ChatProfile)), url(r'^chat-profile/', LDPViewSet.urls(model=ChatProfile)),
url(r'^chat-config/', LDPViewSet.urls(model=ChatConfig)), url(r'^chat-config/', LDPViewSet.urls(model=ChatConfig)),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment