diff --git a/interludes/cas_model.py b/interludes/cas_model.py new file mode 100644 index 0000000000000000000000000000000000000000..c86090eb033b395d1ad08031300523cf2fca7001 --- /dev/null +++ b/interludes/cas_model.py @@ -0,0 +1,15 @@ +from django.contrib.auth import get_user_model +from cas_server.auth import AuthUser, DjangoAuthUser + +class InterLudesAuthUser(DjangoAuthUser): # pragma: no cover + """ + Overrides DjangoAuthUser constructor + """ + + def __init__(self, username): + User = get_user_model() + try: + self.user = User.objects.get(email=username) + except User.DoesNotExist: + pass + super(DjangoAuthUser, self).__init__(username) \ No newline at end of file diff --git a/interludes/settings.py b/interludes/settings.py index 7a6ab3e2891e06043d8fec5f509caa2da5b68b44..a27598f774bae91a3f9b2ddeddc8c2f7e925967c 100644 --- a/interludes/settings.py +++ b/interludes/settings.py @@ -90,6 +90,7 @@ INSTALLED_APPS = [ 'accounts.apps.AccountsConfig', 'site_settings.apps.SiteSettingsConfig', 'shared.apps.SharedConfig', + 'cas_server', ] MIDDLEWARE = [ @@ -190,3 +191,7 @@ EMAIL_SIGNATURE = '-- Site Interludes (mail généré automatiquement)' # Prefix to mails to users USER_EMAIL_SUBJECT_PREFIX = "[interludes] " + + +# CAS SERVER +CAS_AUTH_CLASS = "interludes.cas_model.InterLudesAuthUser" \ No newline at end of file diff --git a/interludes/urls.py b/interludes/urls.py index 2a50088e1bedf0452f54f211dea11788aeaed667..a254e6c2a7a1520a0b1f43b358f4d386612567b5 100644 --- a/interludes/urls.py +++ b/interludes/urls.py @@ -22,4 +22,5 @@ from django.conf.urls.static import static urlpatterns = static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + [ path('admin/', admin.site.urls), path('', include('home.urls')), + path('cas/', include('cas_server.urls', namespace="cas_server")), ]