wip
This commit is contained in:
parent
6f0b9fb327
commit
cd53e78f15
|
@ -353,14 +353,39 @@ class AppConfig(django.apps.AppConfig):
|
|||
if hasattr(view.request.user, 'oidc_client'):
|
||||
return queryset.filter(ou__slug='usagers')
|
||||
|
||||
|
||||
def modify_profile_form(form):
|
||||
if form.instance and form.instance.attributes.validated:
|
||||
for field in ('first_name', 'last_name', 'birthdate', 'title',
|
||||
'birthplace', 'birthcountry'):
|
||||
form.fields.pop(field, None)
|
||||
return form
|
||||
|
||||
A2_MODIFY_PROFILE_FORM = modify_profile_form
|
||||
|
||||
|
||||
def a2_hook_idp_oidc_modify_user_info(self, client, user, scope_set, user_info):
|
||||
user_info.clear()
|
||||
if 'email' in scope_set:
|
||||
user_info['email'] = user.email
|
||||
if 'profile' in scope_set:
|
||||
user_info['first_name'] = user.first_name
|
||||
user_info['last_name'] = user.last_name
|
||||
user_info['given_name'] = user.first_name
|
||||
user_info['family_name'] = user.last_name
|
||||
user_info['title'] = user.attributes.title
|
||||
user_info['gender'] = {'Monsieur': 'male', 'Madame': 'female'}.get(
|
||||
user.attributes.title)
|
||||
user_info['birthdate'] = (user.attributes.birthdate and
|
||||
user.attributes.birthdate.isoformat())
|
||||
user_info['birthplace'] = user.attributes.birthplace
|
||||
user_info['birthcountry'] = user.attributes.birthcountry
|
||||
user_info['birthplace_insee'] = user.attributes.birthplace_insee
|
||||
user_info['birthcountry_insee'] = user.attributes.birthcountry_insee
|
||||
user_info['validated'] = user.attributes.validated
|
||||
user_info['validation_date'] = (user.attributes.validation_date and
|
||||
user.attributes.validation_date.isoformat())
|
||||
user_info['validation_context'] = user.attributes.validation_context
|
||||
if 'crown' in scope_set:
|
||||
user_info['preferred_username'] = user.attributes.preferred_username
|
||||
user_info['preferred_givenname'] = user.attributes.preferred_givenname
|
||||
user_info['address_number'] = user.attributes.address_number
|
||||
user_info['address_street'] = user.attributes.address_street
|
||||
user_info['address_complement'] = user.attributes.address_complement
|
||||
user_info['address_zipcode'] = user.attributes.address_zipcode
|
||||
user_info['address_city'] = user.attributes.address_city
|
||||
user_info['address_country'] = user.attributes.address_country
|
||||
user_info['home_mobile_phone'] = user.attributes.home_mobile_phone
|
||||
user_info['home_phone'] = user.attributes.home_phone
|
||||
user_info['professional_mobile_phone'] = user.attributes.professional_mobile_phone
|
||||
user_info['professional_phone'] = user.attributes.professional_phone
|
||||
user_info['birthdepartment'] = user.attributes.birthdepartment
|
||||
|
|
|
@ -34,66 +34,6 @@ A2_MANAGER_ROLES_SHOW_PERMISSIONS = True
|
|||
A2_MANAGER_ROLE_MEMBERS_FROM_OU = True
|
||||
|
||||
|
||||
class RemoveFranceConnect(object):
|
||||
name = 'remove-franceconnect'
|
||||
title = 'Supprimer la liaison FranceConnect'
|
||||
confirm = 'Êtes-vous sûr?'
|
||||
|
||||
def do(self, user, request, *args, **kwargs):
|
||||
from authentic2_auth_fc.models import FcAccount
|
||||
|
||||
FcAccount.objects.filter(user=user).delete()
|
||||
|
||||
def display(self, user, request):
|
||||
from authentic2_auth_fc.models import FcAccount
|
||||
|
||||
return FcAccount.objects.filter(user=user).exists()
|
||||
|
||||
A2_MANAGER_USER_ACTIONS = [RemoveFranceConnect()]
|
||||
|
||||
|
||||
def modify_user_info(user, user_info, scope_set):
|
||||
import logging
|
||||
|
||||
user_info.clear()
|
||||
if 'email' in scope_set:
|
||||
logging.info('givin email')
|
||||
user_info['email'] = user.email
|
||||
if 'profile' in scope_set:
|
||||
logging.info('givin profile')
|
||||
user_info['first_name'] = user.first_name
|
||||
user_info['last_name'] = user.last_name
|
||||
user_info['given_name'] = user.first_name
|
||||
user_info['family_name'] = user.last_name
|
||||
user_info['title'] = user.attributes.title
|
||||
user_info['gender'] = {'Monsieur': 'male', 'Madame': 'female'}.get(user.attributes.title)
|
||||
user_info['birthdate'] = user.attributes.birthdate and user.attributes.birthdate.isoformat()
|
||||
user_info['birthplace'] = user.attributes.birthplace
|
||||
user_info['birthcountry'] = user.attributes.birthcountry
|
||||
user_info['birthplace_insee'] = user.attributes.birthplace_insee
|
||||
user_info['birthcountry_insee'] = user.attributes.birthcountry_insee
|
||||
user_info['validated'] = user.attributes.validated
|
||||
user_info['validation_date'] = user.attributes.validation_date and user.attributes.validation_date.isoformat()
|
||||
user_info['validation_context'] = user.attributes.validation_context
|
||||
if 'crown' in scope_set:
|
||||
logging.info('giving crown')
|
||||
user_info['preferred_username'] = user.attributes.preferred_username
|
||||
user_info['preferred_givenname'] = user.attributes.preferred_givenname
|
||||
user_info['address_number'] = user.attributes.address_number
|
||||
user_info['address_street'] = user.attributes.address_street
|
||||
user_info['address_complement'] = user.attributes.address_complement
|
||||
user_info['address_zipcode'] = user.attributes.address_zipcode
|
||||
user_info['address_city'] = user.attributes.address_city
|
||||
user_info['address_country'] = user.attributes.address_country
|
||||
user_info['home_mobile_phone'] = user.attributes.home_mobile_phone
|
||||
user_info['home_phone'] = user.attributes.home_phone
|
||||
user_info['professional_mobile_phone'] = user.attributes.professional_mobile_phone
|
||||
user_info['professional_phone'] = user.attributes.professional_phone
|
||||
user_info['birthdepartment'] = user.attributes.birthdepartment
|
||||
|
||||
A2_IDP_OIDC_MODIFY_USER_INFO = modify_user_info
|
||||
|
||||
|
||||
A2_PROFILE_FIELDS = [
|
||||
u'email',
|
||||
u'title',
|
||||
|
@ -168,6 +108,7 @@ if ('Memcached' in CACHES['default']['BACKEND'] or 'Memcached' in
|
|||
print 'canot load django-cachalot', e
|
||||
|
||||
SESSION_ENGINE = 'django.contrib.sessions.backends.cache'
|
||||
|
||||
# 48h pour les mails de reset de mot de passe
|
||||
PASSWORD_RESET_TIMEOUT_DAYS = 2
|
||||
A2_EMAIL_CHANGE_TOKEN_LIFETIME = 3600 * 24 * 2
|
||||
|
|
Loading…
Reference in New Issue