# SGL/sso.py from django.contrib.auth import get_user_model from django.contrib.auth.models import Group from gestion_employe.models import Departement, Employe from simple_sso.sso_client.client import Client User = get_user_model() class SIRHClient(Client): def build_user(self, user_data): """Crée le User et son Profile avec les infos reçues du serveur.""" user_data_copy = user_data.copy() user_data.pop("departement", None) user_data.pop("chef_departement", None) user_data.pop("groups", None) user = super().build_user(user_data) departement = None if "departement" in user_data_copy: departement = Departement.objects.get_or_create( nom=user_data_copy.get("departement", ""))[0] Employe.objects.update_or_create( user = user, defaults = { "departement": departement, "chef": user_data_copy.get("chef_departement", None), } ) for group_name in user_data_copy.get("groups", []): group, _ = Group.objects.get_or_create(name=group_name) user.groups.add(group) return user