From 5c0c86b4e6c319bfe3a087de737f04d6d9c4dd79 Mon Sep 17 00:00:00 2001 From: Thomas NOEL Date: Fri, 18 May 2012 15:10:43 +0200 Subject: [PATCH] add CAS login (with django_cas >= 2.1.1) --- polynum/settings.py | 7 +++++++ polynum/urls.py | 25 +++++++++++++++++-------- setup.py | 5 +++-- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/polynum/settings.py b/polynum/settings.py index ff8a82b..21ed366 100644 --- a/polynum/settings.py +++ b/polynum/settings.py @@ -171,6 +171,13 @@ LOGGING = { } } +AUTHENTICATION_BACKENDS = DEFAULT_SETTINGS.AUTHENTICATION_BACKENDS + +# CAS +AUTHENTICATION_BACKENDS += ( 'django_cas.backends.CASBackend', ) +MIDDLEWARE_CLASSES += ( 'django_cas.middleware.CASMiddleware', ) +CAS_SERVER_URL = 'https://www.ent.dauphine.fr/cas/' + try: from local_settings import * except: diff --git a/polynum/urls.py b/polynum/urls.py index ee54d03..12b40d0 100644 --- a/polynum/urls.py +++ b/polynum/urls.py @@ -1,3 +1,4 @@ +from django.conf import settings from django.conf.urls import patterns, include, url # Uncomment the next two lines to enable the admin: @@ -5,19 +6,27 @@ from django.contrib import admin admin.autodiscover() urlpatterns = patterns('', - # Examples: - # url(r'^$', 'polynum.views.home', name='home'), - # url(r'^polynum/', include('polynum.foo.urls')), - # Uncomment the admin/doc line below to enable admin documentation: # url(r'^admin/doc/', include('django.contrib.admindocs.urls')), url(r'^admin/', include(admin.site.urls)), - url(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'login.html'}, name='login'), - url(r'^accounts/logout/$', 'django.contrib.auth.views.logout', {'template_name': 'logout.html'}, name='logout'), - url(r'^request/', include('polynum.request.urls')), url(r'^', include('polynum.pages.urls')), url(r'^', include('polynum.entity.urls')), -) + ) + +if 'django_cas.backends.CASBackend' in settings.AUTHENTICATION_BACKENDS: + urlpatterns += patterns('', + url(r'^accounts/login/$', 'django_cas.views.login', name='login'), + url(r'^accounts/logout/$', 'django_cas.views.logout', name='logout'), + ) +else: + urlpatterns += patterns('', + url(r'^accounts/login/$', 'django.contrib.auth.views.login', + {'template_name': 'login.html'}, name='login'), + url(r'^accounts/logout/$', 'django.contrib.auth.views.logout', + {'template_name': 'logout.html'}, name='logout'), + ) + + diff --git a/setup.py b/setup.py index f05a9fb..b5b8994 100644 --- a/setup.py +++ b/setup.py @@ -6,9 +6,9 @@ from setuptools import setup, find_packages setup(name="Polynum", - version=0.0, + version=0.2, license="AGPLv3 or later", - description="Printing mangement", + description="Polycopies numeriques", url="http://dev.entrouvert.org/projects/polynum/", author="Entr'ouvert", author_email="info@entrouvert.org", @@ -22,5 +22,6 @@ setup(name="Polynum", 'django-crispy-forms', 'django-sekizai', 'pypdf', + 'django-cas >= 2.1.1' # not in pypi => pip install https://bitbucket.org/cpcc/django-cas/get/tip.tar.gz ], )