Tâche #37322
Scénario #35899: Restreindre les droits d'écriture sur les listes générées
Gérer les comptes sans adresse mail dans les requêtes include_ldap_2level_query
0%
Description
Bonjour,
Les listes Sympa sont peuplées depuis l'annuaire OpenLDAP Scribe avec des requêtes include_ldap_2level_query
Le problème est que certains comptes sont sans adresses mél, ce qui est permit dans Scribe mais génère parfois des erreurs dans les logs Sympa, qui sont retranscrits dans la messagerie d'admin :
notice main:: Sympa 6.2.40 Started
notice main:: Loading list cassr...
err main::#911 > Sympa::List::new#418 > Sympa::List::sync_include_admin#7049 > Sympa::List::_sync_include_user#7063 > Sympa::List::_load_list_admin_from_include#6169 > Sympa::List::_include_users_ldap_2level#5460 Skip badly formed email address: ""
notice main:: ...Done.
Dans les fichiers config de listes présents dans /var/lib/sympa/expl/<domaine>/<liste>/config, les requêtes include_ldap_2level_query sont de la forme :
include_ldap_2level_query
port 389
host 127.0.0.1
timeout1 30
suffix1 cn=cassr,ou=local,ou=groupes,ou=9740734e,ou=ac-reunion,ou=education,o=gouv,c=fr
filter1 (objectClass=posixGroup)
attrs1 memberUid
select1 all
scope1 base
timeout2 30
suffix2 ou=ac-reunion,ou=education,o=gouv,c=fr
filter2 (&(uid=[attrs1])(mail=*))
attrs2 mail
select2 first
scope2 sub
Une solution serait de remplacer :
filter2 (uid=[attrs1])
par
filter2 (&(uid=[attrs1])(mail=*))
Source : la liste Sympa, cf https://lists.sympa.community//arc/fr/2026-02/msg00000.html
Si ce changement est retenu, il faudrait aussi l'appliquer aux requêtes présentes dans les 2 fichiers include de récupération des modérateurs enseignants et administratifs :
- /etc/sympa/data_sources/ldap-9740734e-administratifs.incl
- /etc/sympa/data_sources/ldap-9740734e-professeurs.incl
Merci d'avance !
Laurent
Révisions associées
Écarter les utilisateurs sans adresse courriel
Ref #37322
Corriger les filtres des listes pré-existantes
Ref #37322
Historique
#1 Mis à jour par Laurent Gourvenec il y a environ un mois
- Lié à Scénario #35899: Restreindre les droits d'écriture sur les listes générées ajouté
#2 Mis à jour par Joël Cuissinat il y a environ un mois
- Tâche parente mis à #35899
#3 Mis à jour par Benjamin Bohard il y a environ un mois
Dans les fichiers créés sur la VM de test, le filtre2 est déjà dépourvu de la condition mail=*.C’est cohérent avec le contenu du fichier /usr/lib/python3/dist-packages/scribe/templates.py.
Si cette observation se confirme, l’action adéquate consisterait à nettoyer les fichiers déjà en place.
Tout s’explique : j’avais compris l’inverse de ce qui a été fait…
#4 Mis à jour par Benjamin Bohard il y a environ un mois
Je traduis ce changement en terme fonctionnel : les professeurs sans adresse courriel sont exemptés de la tâche de modération.
#5 Mis à jour par Laurent Brillard il y a environ un mois
Benjamin, je ne suis pas sûr d'avoir compris...
Actuellement, les fichiers /var/lib/sympa/expl/<domaine>/<liste>/config ont les requêtes include_ldap_2level_query avec filter2 (uid=[attrs1]) donc quand sympa_sync traite les fichiers config, si un compte LDAP n'a pas d'adresse mail, cela va générer une erreur.
L'erreur disparait quand les requêtes se font avec filter2 (&(uid=[attrs1])(mail=*)) (les comptes LDAP n'ayant pas d'adresse mail ne sont pas traités)
Il faudrait donc modifier le fichier /usr/lib/python3/dist-packages/scribe/templates.py pour remplacer les occurrences filter2 (uid=[attrs1]) par filter2 (&(uid=[attrs1])(mail=*)) ce qui agira sur les futurs fichiers /var/lib/sympa/expl/<domaine>/<liste>/config
Pour les fichiers /var/lib/sympa/expl/<domaine>/<liste>/config existants, sur nos serveurs, je peux m'en charger via un script qui permet de faire le remplacement de filter2 et que je pourrais mettre à disposition ici même si cela peut servir.
Est-ce bien ce qui est envisagé ?
#6 Mis à jour par Benjamin Bohard il y a environ un mois
- Assigné à mis à Benjamin Bohard
#7 Mis à jour par Benjamin Bohard il y a environ un mois
- Statut changé de Nouveau à À valider