diff --git a/SIRH/__pycache__/settings.cpython-310.pyc b/SIRH/__pycache__/settings.cpython-310.pyc index 3f3bbb0..85ec63c 100644 Binary files a/SIRH/__pycache__/settings.cpython-310.pyc and b/SIRH/__pycache__/settings.cpython-310.pyc differ diff --git a/SIRH/__pycache__/urls.cpython-310.pyc b/SIRH/__pycache__/urls.cpython-310.pyc index 7058e38..a7fb81b 100644 Binary files a/SIRH/__pycache__/urls.cpython-310.pyc and b/SIRH/__pycache__/urls.cpython-310.pyc differ diff --git a/SIRH/__pycache__/views.cpython-310.pyc b/SIRH/__pycache__/views.cpython-310.pyc index 6611fc5..2b8a8db 100644 Binary files a/SIRH/__pycache__/views.cpython-310.pyc and b/SIRH/__pycache__/views.cpython-310.pyc differ diff --git a/SIRH/settings.py b/SIRH/settings.py index a6d62f9..a07e0fc 100644 --- a/SIRH/settings.py +++ b/SIRH/settings.py @@ -40,12 +40,9 @@ INSTALLED_APPS = [ 'gestion_employe', 'gestion_conge', 'gestion_projet', - 'gestion_salle', - 'simple_sso.sso_server' + 'gestion_salle' ] -LOGIN_URL = 'login' - MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', @@ -150,6 +147,15 @@ MEDIA_ROOT = BASE_DIR / "media" DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' +# Connexion sso +# LOGIN_URL = '/client/' +LOGIN_URL = 'simple-sso-login' + +SSO_PRIVATE_KEY = 'wV3nf1YXeZpepf8iJAdWcfJOS4BVXYlIKsKES2RheuJLu5ycgm0ZK3zgdw9ODjdo' # Designe la clé privée +SSO_PUBLIC_KEY = 'E8vV810D8HSmhUwl6abuZALhO5fmUdjjd3wAVCFZyyDX7SsSeAf9XwVyKZ5brilt' # Designe la clé publique +SSO_SERVER = 'http://localhost:8000/server/' +SSO_LOGOUT_URL = 'http://localhost:8000/deconnexion' + # Configuration de l'email EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' EMAIL_HOST = 'ssl0.ovh.net' @@ -158,4 +164,4 @@ EMAIL_USE_SSL = True EMAIL_USE_TLS = False EMAIL_HOST_USER = 'support.it@cerfig.org' EMAIL_HOST_PASSWORD = 'Cerfig2025' -DEFAULT_FROM_EMAIL = EMAIL_HOST_USER +DEFAULT_FROM_EMAIL = EMAIL_HOST_USER \ No newline at end of file diff --git a/SIRH/sso.py b/SIRH/sso.py new file mode 100644 index 0000000..52e4660 --- /dev/null +++ b/SIRH/sso.py @@ -0,0 +1,33 @@ +# SGL/sso.py +from gestion_employe.models import Employe, Departement +from simple_sso.sso_client.client import Client +from django.contrib.auth import get_user_model +from django.contrib.auth.models import Group + +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") + user_data.pop("chef_departement") + user_data.pop("groups") + + user = super().build_user(user_data) + 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", ""), + } + ) + + for group_name in user_data_copy.get("groups", []): + group, _ = Group.objects.get_or_create(name=group_name) + user.groups.add(group) + + return user \ No newline at end of file diff --git a/SIRH/templates/SIRH/BASE.html b/SIRH/templates/SIRH/BASE.html index 5a0f392..faa8f2f 100644 --- a/SIRH/templates/SIRH/BASE.html +++ b/SIRH/templates/SIRH/BASE.html @@ -15,8 +15,9 @@