diff --git a/apps/member/auth.py b/apps/member/auth.py new file mode 100644 index 00000000..0f9e42e8 --- /dev/null +++ b/apps/member/auth.py @@ -0,0 +1,15 @@ +from cas_server.auth import DjangoAuthUser # pragma: no cover + +from note.models import Alias + + +class CustomAuthUser(DjangoAuthUser): # pragma: no cover + """ + Override Django Auth User model to define a custom Matrix username. + """ + + def attributs(self): + d = super().attributs() + if self.user: + d["normalized_name"] = Alias.normalize(self.user.username) + return d diff --git a/note_kfet/admin.py b/note_kfet/admin.py index fa192b57..06543102 100644 --- a/note_kfet/admin.py +++ b/note_kfet/admin.py @@ -52,3 +52,9 @@ if "rest_framework" in settings.INSTALLED_APPS: from rest_framework.authtoken.admin import * from rest_framework.authtoken.models import * admin_site.register(Token, TokenAdmin) + +if "cas_server" in settings.INSTALLED_APPS: + from cas_server.admin import * + from cas_server.models import * + admin_site.register(ServicePattern, ServicePatternAdmin) + admin_site.register(FederatedIendityProvider, FederatedIendityProviderAdmin) diff --git a/note_kfet/urls.py b/note_kfet/urls.py index d4341bc6..ab19d763 100644 --- a/note_kfet/urls.py +++ b/note_kfet/urls.py @@ -45,6 +45,11 @@ if "oauth2_provider" in settings.INSTALLED_APPS: path('o/', include('oauth2_provider.urls', namespace='oauth2_provider')) ) +if "cas_server" in settings.INSTALLED_APPS: + urlpatterns.append( + path('cas/', include('cas_server.urls', namespace='cas_server')) + ) + if "debug_toolbar" in settings.INSTALLED_APPS: import debug_toolbar urlpatterns = [ diff --git a/requirements.txt b/requirements.txt index d889dd54..0071bc83 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,6 +1,7 @@ beautifulsoup4~=4.7.1 Django~=2.2.15 django-bootstrap-datepicker-plus~=3.0.5 +django-cas-server~=1.2.0 django-colorfield~=0.3.2 django-crispy-forms~=1.7.2 django-extensions~=2.1.4