apps/middleware: conserve le slug du dernier service ayant requis un sso en session
Pour utilisation par le hook fc-link et le remplissage du champ validation_partner.
This commit is contained in:
parent
7947784f89
commit
0da15044ac
|
@ -528,6 +528,10 @@ class AppConfig(django.apps.AppConfig):
|
|||
|
||||
def cut_event_sso_request(self, idp, service, **kwargs):
|
||||
self.stat('sso-request', service.slug)
|
||||
from authentic2.middleware import StoreRequestMiddleware
|
||||
request = StoreRequestMiddleware.get_request()
|
||||
if request:
|
||||
request.session['service_slug'] = service.slug
|
||||
|
||||
def cut_event_sso_success(self, idp, service, user, **kwargs):
|
||||
msg = u'connexion à %s' % service.name
|
||||
|
@ -620,6 +624,11 @@ class AppConfig(django.apps.AppConfig):
|
|||
user.attributes.validated = True
|
||||
user.attributes.validation_context = 'FC'
|
||||
user.attributes.validation_date = now().date()
|
||||
partner = request.session.get('service_slug')
|
||||
if hasattr(request, 'partner'):
|
||||
partner = partner or request.partner.get('ou_slug')
|
||||
if partner:
|
||||
user.attributes.validation_partner = partner
|
||||
|
||||
def cut_event_fc_unlink(self, user, **kwargs):
|
||||
self.log_action(user, u'déliaison de FranceConnect')
|
||||
|
|
|
@ -39,6 +39,7 @@ class CUTMiddleware(object):
|
|||
if hasattr(request, 'session'):
|
||||
if not domain:
|
||||
domain = request.session.get('cut_domain')
|
||||
request.service_slug = request.session.get('service_slug', None)
|
||||
|
||||
if not domain:
|
||||
domain = getattr(request, 'domain', None)
|
||||
|
@ -83,5 +84,7 @@ class CUTMiddleware(object):
|
|||
request.domain = None
|
||||
|
||||
def process_response(self, request, response):
|
||||
if hasattr(request, 'session'):
|
||||
request.session['service_slug'] = getattr(request, 'service_slug', None)
|
||||
self.process_request(request)
|
||||
return response
|
||||
|
|
Loading…
Reference in New Issue