cas: importe et recopie la vue "login" du module django_cas qui n'est pas traduisible autrement, fixes #2005

This commit is contained in:
Benjamin Dauvergne 2012-11-27 11:22:48 +01:00
parent 602c339cdc
commit d96600c281
3 changed files with 40 additions and 2 deletions

38
polynum/base/cas_views.py Normal file
View File

@ -0,0 +1,38 @@
# -*- coding: utf-8 -*-
from django.http import HttpResponseRedirect, HttpResponseForbidden
from django.conf import settings
from django.utils.translation import ugettext_lazy as _
from django_cas.views import _service_url, _redirect_url, _login_url
from django.contrib import messages
__all__ = ['login']
def login(request, next_page=None, required=False):
"""Forwards to CAS login URL or verifies CAS ticket"""
if not next_page:
next_page = _redirect_url(request)
if request.user.is_authenticated():
message = _(u"Vous êtes connecté en tant que %s.") % request.user.username
messages.success(request, message)
return HttpResponseRedirect(next_page)
ticket = request.GET.get('ticket')
service = _service_url(request, next_page)
if ticket:
from django.contrib import auth
user = auth.authenticate(ticket=ticket, service=service)
if user is not None:
auth.login(request, user)
name = user.first_name or user.username
message = _(u"Connexion réussie. Bienvenue, %s.") % name
messages.success(request, message)
return HttpResponseRedirect(next_page)
elif settings.CAS_RETRY_LOGIN or required:
return HttpResponseRedirect(_login_url(service))
else:
error = _(u"<h1>Interdit</h1><p>Connexion échouée.</p>")
return HttpResponseForbidden(error)
else:
return HttpResponseRedirect(_login_url(service))

View File

@ -45,7 +45,7 @@ urlpatterns = patterns('',
if 'polynum.base.backends.CASBackend' in settings.AUTHENTICATION_BACKENDS:
urlpatterns += patterns('',
url(r'^accounts/login/$', 'django_cas.views.login', name='login'),
url(r'^accounts/login/$', 'polynum.base.cas_views.login', name='login'),
url(r'^accounts/logout/$', 'django_cas.views.logout', name='logout'),
)
else:

View File

@ -3,7 +3,7 @@ django < 1.5
south
django-crispy-forms
django-sekizai
django-cas
https://bitbucket.org/cpcc/django-cas/get/197f156.tar.gz
django-admin-tools
pypdf
flup