Development #19597
ajouter des settings pour filtre les utilisateurs lors des authentifications
100%
Description
Il y aurait deux settings A2_USER_FILTER
et A2_USER_EXCLUDE
, ils prendraient un dictionnaire de filtre comme valeur, ex.:
A2_USER_FILTER = {'email__endswith': '@entrouvert.com'} A2_USER_EXCLUDE = {'ou__slug': 'usagers'}
Une nouvelle fonction authentic2.utils.get_loggable_user_queryset()
serait définit, elle devrait être utilisée par tous les backends en remplacement de l'habituel User.objects
.
Fichiers
Demandes liées
Révisions associées
auth_ssl: clean code (#19597)
do not apply user filters to delegated authentications (fixes #19597)
Historique
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
- Sujet changé de ajouter des settings pour filtre des utilisateurs des modes de connection à ajouter des settings pour filtre les utilisateurs lors des authentifications
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
- Fichier 0001-add-settings-to-filter-user-authorized-to-authentica.patch 0001-add-settings-to-filter-user-authorized-to-authentica.patch ajouté
- Patch proposed changé de Non à Oui
Mis à jour par Thomas Noël il y a plus de 6 ans
- dans
src/authentic2/auth2_auth/auth2_ssl/backends.py
t'en profites pour nettoyer, petit frippon logger = logging.getLogger(__name__)
: je pensais qu'il fallait pas mettre ça au niveau du module ? (et fred me dit que c'est toi qui avait dit ça ?)- j'ai pas forcément bien cerné le
if not user: return True
dansis_user_authenticable
, mais je pense qu'un petit commentaire pourrait expliquer pourquoi c'est nécessaire dpam/backends.py
: il doit manquer un "return None" après lelogger.info(u'auth_pam: authentication refused by user filters')
authentic2_auth_saml/backends.py
: à l'inverse, ajouter un logger.info avant le return None ?
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
- Fichier 0001-add-settings-to-filter-user-authorized-to-authentica.patch 0001-add-settings-to-filter-user-authorized-to-authentica.patch ajouté
- Fichier 0002-auth_ssl-clean-code-19597.patch 0002-auth_ssl-clean-code-19597.patch ajouté
Thomas Noël a écrit :
- dans
src/authentic2/auth2_auth/auth2_ssl/backends.py
t'en profites pour nettoyer, petit frippon
séparé.
logger = logging.getLogger(__name__)
: je pensais qu'il fallait pas mettre ça au niveau du module ? (et fred me dit que c'est toi qui avait dit ça ?)
Ouais j'ai mis de l'eau dans mon vin, ça dépend si il y a des chances que le package soit chargé avant la configuration des logs ou pas, ici ce n'est jamais le cas, les backends ne sont chargés qu'au premier appel à authenticate().
- j'ai pas forcément bien cerné le
if not user: return True
dansis_user_authenticable
, mais je pense qu'un petit commentaire pourrait expliquer pourquoi c'est nécessaire
D'ac.
dpam/backends.py
: il doit manquer un "return None" après lelogger.info(u'auth_pam: authentication refused by user filters')
Yep corrigé.
authentic2_auth_saml/backends.py
: à l'inverse, ajouter un logger.info avant le return None ?
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
Thomas Noël a écrit :
authentic2_auth_saml/backends.py
: à l'inverse, ajouter un logger.info avant le return None ?
Corrigé.
Mis à jour par Thomas Noël il y a plus de 6 ans
Benjamin Dauvergne a écrit :
Thomas Noël a écrit :
authentic2_auth_saml/backends.py
: à l'inverse, ajouter un logger.info avant le return None ?
Ca manque aussi dans src/authentic2/backends/ldap_backend.py
mais peut-être que tu l'as pas mis parce qu'on yield des user quand on joue avec ldap ?
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
Thomas je n'ai pas compris ton dernier commentaire.
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
- Statut changé de Nouveau à Résolu (à déployer)
- % réalisé changé de 0 à 100
Appliqué par commit authentic2|4aec4f62cb93d4134d4dd5b40a0a187179f500d3.
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
Appliqué par commit authentic2|7a53f3ff439abfeae0cf42f512a738cb8c9ad83f.
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
- Lié à Development #20455: Le filtre sur les utilisateurs autorisés à se connecter devrait s'appliquer aussi au formulaire de récupération de mot de passe ajouté
Mis à jour par Benjamin Dauvergne il y a plus de 6 ans
- Statut changé de Résolu (à déployer) à Fermé
add settings to filter user authorized to authenticate (fixes #19597)
Added:
- A2_USER_FILTER and A2_USER_EXCLUDE settings, contains kwargs for
User.filter() and User.exclude(),
- two helper methods for backends: authentic2.backend.get_user_queryset() and
authentic2.backend.is_user_authenticable(),
- all backends modified to use those.