From 07423e08b6cf39fa0f4e26d68d00bca6242812da Mon Sep 17 00:00:00 2001 From: Emmanuel Viennet Date: Thu, 7 Nov 2024 14:30:47 +0100 Subject: [PATCH] =?UTF-8?q?CAS:=20change=20s=C3=A9mantique=20param.=20cas?= =?UTF-8?q?=5Fallow=5Fscodoc=5Flogin?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/auth/cas.py | 2 +- app/auth/models.py | 10 ++++++---- app/scodoc/sco_import_users.py | 2 +- app/views/users.py | 2 +- 4 files changed, 9 insertions(+), 7 deletions(-) diff --git a/app/auth/cas.py b/app/auth/cas.py index c96e9689e..5e11c0ac2 100644 --- a/app/auth/cas.py +++ b/app/auth/cas.py @@ -158,7 +158,7 @@ CAS_USER_INFO_COMMENTS = ( autorise la connexion via CAS (optionnel, faux par défaut) """, """cas_allow_scodoc_login - autorise connexion via ScoDoc même si CAS obligatoire (optionnel, faux par défaut) + autorise connexion via ScoDoc même si CAS activé (optionnel, vrai par défaut) """, """email_institutionnel optionnel, le mail officiel de l'utilisateur. diff --git a/app/auth/models.py b/app/auth/models.py index b73190459..dd3b649b4 100644 --- a/app/auth/models.py +++ b/app/auth/models.py @@ -92,7 +92,7 @@ class User(UserMixin, ScoDocModel): cas_allow_scodoc_login = db.Column( db.Boolean, default=False, server_default="false", nullable=False ) - """Si CAS forcé (cas_force), peut-on se logguer sur ScoDoc directement ? + """Si CAS activé et cas_id renseigné, peut-on se logguer sur ScoDoc directement ? (le rôle ScoSuperAdmin peut toujours, mettre à True pour les utilisateur API) """ cas_last_login = db.Column(db.DateTime, nullable=True) @@ -211,10 +211,12 @@ class User(UserMixin, ScoDocModel): send_notif_desactivation_user(self) return False - # if CAS activated and forced, allow only super-user and users with cas_allow_scodoc_login + # if CAS activated and cas_id, allow only super-user and users with cas_allow_scodoc_login cas_enabled = ScoDocSiteConfig.is_cas_enabled() - if cas_enabled and ScoDocSiteConfig.get("cas_force"): - if (not self.is_administrator()) and not self.cas_allow_scodoc_login: + if cas_enabled: + if ScoDocSiteConfig.get("cas_force") and not self.is_administrator(): + return False # si CAS forcé, n'accepte que super-admin + if self.cas_id and not self.cas_allow_scodoc_login: return False if not self.password_hash: # user without password can't login diff --git a/app/scodoc/sco_import_users.py b/app/scodoc/sco_import_users.py index 314822a13..871bcd084 100644 --- a/app/scodoc/sco_import_users.py +++ b/app/scodoc/sco_import_users.py @@ -85,7 +85,7 @@ COMMENTS = ( autorise la connexion via CAS (optionnel, faux par défaut) """, """cas_allow_scodoc_login - autorise connexion via ScoDoc même si CAS obligatoire (optionnel, faux par défaut) + autorise connexion via ScoDoc même si CAS activé (optionnel, faux par défaut) """, """email_institutionnel optionnel, le mail officiel de l'utilisateur. diff --git a/app/views/users.py b/app/views/users.py index 3ffe57938..9857546b1 100644 --- a/app/views/users.py +++ b/app/views/users.py @@ -452,7 +452,7 @@ def create_user_form(user_name=None, edit=0, all_roles=True): { "title": "Autorise connexion via ScoDoc", "input_type": "boolcheckbox", - "explanation": """ même si "Forcer l'utilisation de CAS" est activé. + "explanation": """ même si CAS est activé et cas_id renseigné. Seul le super-administrateur peut changer ce réglage""", "enabled": current_user.is_administrator(), },