Ça permet d'utiliser des fonctions générique sur les machines lc_ldap
pour s'occuper aussi du multicast. Notamment dans /usr/scripts/gestion/gen_confs/bind2.py
où cela nous permet de générer gratuirement la zone tv.crans.org et son reverse.
This reverts commit a79e0a4113.
Il vaut mieux laisser les imports en tête de fichier dans la mesure du
possible. De plus, cette erreur est plus confortable, car l'apprenti sait
dès le départ qu'il y a un problème. Enfin, ce bout de code try_import
peut servir pour d'autres imports posant des problèmes. On prend cependant
note que try_import pour annuaires_pg n'est pas utile.
* On ne peut pas utiliser mailExt, car on souhaite que cet attribut ne
soit pas en conflit avec les autres attributs de mails (oui, on accepte
la redondance)
On retire la fonction import_secrets. Elle ne semble pas être utilisée
ailleurs.
Normalement, "/usr/scripts" est dans le PYTHONPATH, si ce n'est pas le cas,
l'import va planter. En cas d'erreur, on essaie (temporairement) un second
import en rajoutant d'abord ce path, tout en crachant un truc sur stderr
(histoire de trouver les méchants scripts qui n'ont pas le path de base).
Cette méthode a l'air de moins planter pour trouver le nom de l'utilisateur,
par exemple depuis un initscript qui a nettoyé drastiquement l'environnement.
En réalité je me demande s'il ne vaudrait pas mieux utiliser uniquement
celle-là… À méditer.
Comme expliqué dans le compte rendu de l'internounou du 28 Novembre 2013.
Tout le monde peut importer annuaire_pg, sinon, vu qu'il est également importer
par attributs.py, ça fait longtemps que ça ne marcherait plus.
* Du coup, les apprentis n'ont plus le droit d'utiliser lc_ldap.
* C'est mal.
* Donc, je kludge, mais ça reste crade.
* Il faudra améliorer ça, et arrêter de faire des imports sauvages
nécessitant des droits sans s'être un peu assuré qu'ils ne seront
pas faits si on les a pas.
* Il faudrait donc globaliser la fonction try_import et l'améliorer.
en même temps, on met une fonction pour lister les adherents.
Je ne suis pas trop satisfait de ces fonctions de listing, mais je ne vois pas
vraiement comment faire autrement.
Elle renvoie une liste d'objet lc_ldap où il n'y a qu'à appeler .create() pour les
ressucité effectivement, modulo problème d'unicité d'attribut, qu'il suffit alors de
modifier directement sur l'object lc_ldap (au besoin, en mettant une valeur par defaut).