cas: importe et recopie la vue "login" du module django_cas qui n'est pas traduisible autrement, fixes #2005
This commit is contained in:
parent
602c339cdc
commit
d96600c281
|
@ -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))
|
|
@ -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:
|
||||
|
|
|
@ -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
|
||||
|
|
Reference in New Issue