Files
sirh/SIRH/sso.py

41 lines
1.2 KiB
Python
Raw Normal View History

2026-07-29 10:26:22 +00:00
# SGL/sso.py
from django.contrib.auth import get_user_model
from django.contrib.auth.models import Group
2026-04-30 13:28:53 +02:00
from simple_sso.sso_client.client import Client
from gestion_employe.models import Departement, Employe
2026-07-29 10:26:22 +00:00
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()
2026-08-31 09:48:21 +00:00
print("Un petit test", user_data_copy)
user_data.pop("departement", None)
user_data.pop("chef_departement", None)
user_data.pop("groups", None)
2026-07-29 10:26:22 +00:00
user = super().build_user(user_data)
2026-08-31 09:48:21 +00:00
departement = None
if "departement" in user_data_copy:
departement = Departement.objects.get_or_create(
nom=user_data_copy.get("departement", ""))[0]
2026-07-29 10:26:22 +00:00
Employe.objects.update_or_create(
user = user,
defaults = {
"departement": departement,
2026-08-31 09:48:21 +00:00
"chef": user_data_copy.get("chef_departement", None),
2026-07-29 10:26:22 +00:00
}
)
for group_name in user_data_copy.get("groups", []):
group, _ = Group.objects.get_or_create(name=group_name)
user.groups.add(group)
2026-08-31 09:48:21 +00:00
return user