Commit graph

169 commits

Author SHA1 Message Date
Pierre-Elliott Bécue
c2968c6b15 [lc_ldap] On met en place un système de propagation de certaines modifications.
* Quand on modifie un attribut qui devrait en modifier d'autres, on peut
 invoquer check_changes pour voir ce qui devrait être changé, puis
 validate_changes pour rendre ces changements effectifs. Il ne reste plus
 qu'à appeler save pour enregistrer le tout.
 * Correction de petits problèmes sur les locks : quand save réussissait,
 ils n'étaient pas virés.
2013-07-04 02:06:13 +02:00
Valentin Samir
9540bc572c Search by unicode 2013-07-02 14:42:59 +02:00
Pierre-Elliott Bécue
e18e5222b7 [Oops] J'ai oublié de commiter un de mes débugs. 2013-06-13 20:34:59 +02:00
Valentin Samir
80929daddd [lc_ldap] search by unicode string 2013-06-13 00:52:54 +02:00
Pierre-Elliott Bécue
616acdbb7a [global] On diminue le risque de lock résiduel, et on corrige une faille des fonctions new[A-Z]*
* En cas d'erreur au create ou au save, on supprime les locks malgré tout
    * Les fonctions new* modifiaient directement le dico qu'on leur passait en
    argument, on fait désormais une copie de celui-ci, de façon à ce que test.py
    n'instancie pas toujours le même objet en croyant instancier des objets
    différents à chaque fois
    * Cela permet de trouver une typo dans services.py
    * crans_utils a été un peu corrigé.
2013-05-30 18:44:15 +02:00
Pierre-Elliott Bécue
d6efff30de [ldap_locks] Mise en place des locks. Cf commentaires pour les détails.
* Malheureusement lc_ldap._create_entity et objet.create sont un peu
 sales, mais j'ai pas trouvé mieux.
 * L'historique contient désormais les secondes.
2013-05-30 15:22:11 +02:00
Pierre-Elliott Bécue
48c8e7d603 [lc_ldap] Putain de merge conflict à la con que j'ai mal résolu. 2013-05-30 01:36:56 +02:00
Pierre-Elliott Bécue
cd75ed7bd4 [global/rid] Commit associé à http://git.crans.org/?p=usr-scripts.git;a=commit;h=a442fd6b22c400800e7c5bd870e83e4027a1d76f
* Maintenant, on va pouvoir identifier formellement les machines v6-only et les autres, sans perdre
 la possibilité de passer de l'une à l'autre rapidement (avec les changements qui vont bien)
2013-05-30 01:20:49 +02:00
Pierre-Elliott Bécue
60ded9f830 [global] Passage à tout unicode et quelques corrections mineures.
* Typos
 * Docstrings unicode
 * Erreurs unicode
 * Ajout de _post_delete et _post_create
 * ?
2013-05-27 23:26:53 +02:00
Vincent Le Gallic
645b931736 Tout ce dont on a besoin c'est du current_login. On fait confiance aux gens qui ont le mdp LDAP pour fourni le bon username. 2013-05-16 17:03:06 +02:00
Vincent Le Gallic
db7d41d967 Split de lc_ldap.py en lc_ldap.py et objets.py + création du wrapper shortcuts.py
Ça permet de faire les choses sales du genre os.getenv("SUDO_USER") ou import_secrets
dans le wrapper et pas dans le binding même.
2013-05-16 07:00:47 +02:00
Vincent Le Gallic
a620f5b5e9 On vire le kludge qui récupère le login dans la variable d'environnement.
C'est plus le rôle d'un wrapper (à venir) que du binding itself.
2013-05-16 03:53:00 +02:00
Pierre-Elliott Bécue
3663d877cc [lc_ldap/test] fil-adherents -> /dev/null 2013-05-16 03:01:11 +02:00
Vincent Le Gallic
a6c5f66aee On ne save/ressuscite pas le Cr@ns. 2013-05-16 02:45:44 +02:00
Vincent Le Gallic
debaa31bf3 On place la fonction escape dans crans_utils 2013-05-16 01:35:58 +02:00
Vincent Le Gallic
c392a2a986 On utilise un champ ldap_name pour savoir quelle classe doit être utilisée pour instancier quel objet/attribut LDAP.
Et comme ça on fiche à la poubelle le dégueulasse globals() et on décorrelle les noms
des classes des noms LDAP.
2013-05-15 23:00:17 +02:00
Valentin Samir
90ec85b1a2 [lc_ldap] Les fichiers dans le cimetière sont plus facile à manipuler sans espace 2013-05-14 23:47:07 +02:00
Valentin Samir
22ba5c1d38 [lc_ldap] Ajout de attributs.loginShell pour cransAccount 2013-05-14 23:30:50 +02:00
Valentin Samir
75839564e5 [lc_ldap] des modes sur allMachinesAdherents 2013-05-14 23:28:39 +02:00
Valentin Samir
ac19266cbf [lc_ldap] dn invité 2013-05-14 18:01:07 +02:00
Valentin Samir
cc0f6e0a91 Antagonisme entre un attribut et sa valeur textuelle 2013-05-14 18:00:00 +02:00
Valentin Samir
1d61048828 [lc_ldap, services] On ajoute ce qui faut à la base de service pour que generete régénère la conf
C'est un début, ça vise surtout à être compatible avec ce qui est existant.
2013-05-10 01:39:03 +02:00
Valentin Samir
bec801fbea [lc_ldap] Petit problème de dépendance cyclique
Lors de la création d'un nouvel objets :
 * On à besoin des attributs pour le créer
 * On a besoin de l'objet pour créer ses attributs
(si on veux faire la vérification commentée)
À priori, c'est juste temporaire.
2013-05-08 04:07:55 +02:00
Valentin Samir
0fb3c19242 [lc_ldap] Tests d'unicités avant de ressuciter, à affiner. 2013-05-08 04:06:46 +02:00
Valentin Samir
68ba8ebd9f [attributs, lc_ldap] Gros hack sale. Ça serait peut être mieux d'avoir des unicodes vraiment partout. 2013-05-08 04:05:42 +02:00
Valentin Samir
4d550e734b [lc_ldap, attributs] Oublis 2013-05-08 04:05:04 +02:00
Pierre-Elliott Bécue
215f01c281 [lc_ldap] Easter egg 2013-05-08 02:22:09 +02:00
Pierre-Elliott Bécue
0cee8dbcb6 [lc_ldap] bury devient méthode à part entière (ça pourrait servir), delete est fragmentée
* Par défaut, on préfère que le binding crashe si des enfants d'un adhérent ne sont pas
 des machines et ne sont pas gérés par le binding que de les détruire
 * objet.delete ne permet donc par défaut que de détruire l'objet, et pour proprio, on
 surcharge pour détruire les machines
2013-05-08 02:20:03 +02:00
Pierre-Elliott Bécue
b5a6062c44 [lc_ldap] Changement de protocole dans la création des objets
* _create_entity a été changée pour récupérer des dicos de valeurs encodées,
 on adapte les méthodes new* en virant les uldifs, et en rendant l'historique
 non unicode.
 * Ipsec est facultatif, donc on le crée après avoir instancié la machine, que
 l'on souhaite instancier le plus tôt possible, et on en laisse la gestion
 à attributs, pour le parsage etc
2013-05-08 02:18:13 +02:00
Valentin Samir
3b09c98c5b Merge branch 'master' of charybde.crans.org:/git/ldap 2013-05-08 01:15:57 +02:00
Valentin Samir
c5cbac5468 [lc_ldap] Methode pour supprimer un objet et le ressuciter
le cimetière est dans /home/cimetiere_lc/
ressucite prend le path du fichier contenant l'object à ressuciter
2013-05-08 01:14:30 +02:00
Valentin Samir
70fbc96d9d [lc_ldap] Certain attributs n'appartiennent à adherent que s'il est un cransAccount 2013-05-08 01:13:39 +02:00
Pierre-Elliott Bécue
af109e8c61 [lc_ldap] attrify ne reçoit plus de ldif, donc _create_entity doit changer
On en profite pour virer ldif_to_cldif, et pour donner une fonction
.items à AttrsDict
2013-05-05 10:45:15 +02:00
Pierre-Elliott Bécue
a7d3af3ca1 [lc_ldap/attributs] ns1.crans.ens-cachan.fr n'était pas un nom d'hôte valide. 2013-05-05 05:41:36 +02:00
Valentin Samir
5942ee143c [lc_ldap] Création de machines : ipsec si machine wifi, ajout d'une ligne d'historique 2013-05-02 17:55:54 +02:00
Valentin Samir
c727420624 [lc_ldap] Ordre des arguments de attrify
On remarquera que là, ce n'est pas l'objet (propritaire de l'attribut)
qui est passé à attrify mais le ldif de l'objets. La raison est que
lors de la création d'un objets celui-ci n'existe pas encore et que l'on
a cependant besoin d'informations contenue dans le ldif.
Pour le moment la substitution semble parfaitement transparente.
2013-05-02 17:52:11 +02:00
Vincent Le Gallic
d27d617946 merge commit 2013-04-15 16:51:33 +02:00
Pierre-Elliott Bécue
7bc1f4daaa [lc_ldap/attributs] On rajoute quelques attributs du schéma non implémentés 2013-04-15 16:10:39 +02:00
Pierre-Elliott Bécue
e5f91d8567 [lc_ldap] Certains objets n'ont pas tous les attributs qu'ils devraient avoir. 2013-04-15 01:53:11 +02:00
Valentin Samir
771419d932 [lc_ldap] Ajout d'un wrapper pour se connecter à la base en readonly 2013-04-10 10:56:19 +02:00
Valentin Samir
d8c8e55909 [lc_ldap] Ajout d'une méthode pour affectuer une ipv4 à une machine wifi si elle n'est pas pas déjà une. 2013-04-10 10:54:42 +02:00
Valentin Samir
f88b6ec688 [lc_ldap] Il arrive d'ajouter des attributs à un objets qui n'existe pas encore, par exemple pour les attributs optionnels,
il faut voir ce que ça implique vis ç vis du test d'unicité
2013-04-10 10:53:23 +02:00
Valentin Samir
ad448a12a1 [lc_ldap] check_ctxt a vraiement été supprimé 2013-04-10 10:52:45 +02:00
Pierre-Elliott Bécue
182642d30e [lc_ldap] Ici aussi ctxt_check a été droppé. 2013-04-08 13:05:05 +02:00
Valentin Samir
8fd228f6bd [lc_ldap] ctxt_check a été jeté 2013-04-08 12:34:11 +02:00
Pierre-Elliott Bécue
8ce84e7589 [lc_ldap] create et save vérifient que les attributs non optionnels sont fournis 2013-04-08 00:14:14 +02:00
Pierre-Elliott Bécue
180c17baed [global] On jette ctxt_check, et les ldifs qui traînent partout, qu'on remplace.
* Les ldifs sont remplacés par un pointeur vers l'objet propriétaire des attributs
 * Le test de cardinalité est fait lors du setitem dans AttrsDict
 * Le test d'unicité dans le setitem d'un CransLdapObject.
   Le setitem vérifie également qu'on affecte pas des attributs non désirés à un objet
2013-04-08 00:12:00 +02:00
Pierre-Elliott Bécue
93d5a11d66 [lc_ldap] On vérifie désormais que $dude peut modifier les attributs.
Les principales modifs touchent __setitem__, il faut voir s'il n'y a pas mieux
pour les histoires de cardinalité, quitte à réécrire des choses. Par ailleurs,
j'ai l'impression que le test sur les attributs nécessaires/optionnels
ne sert à rien, il faut voir comment on veut gérer ça.
2013-04-03 02:51:46 +02:00
Pierre-Elliott Bécue
b565cc51e5 [lc_ldap] On interdit la modification d'objets comme les machines
Crans aux câbleurs par exemple.
2013-04-02 03:22:45 +02:00
Pierre-Elliott Bécue
90a0b565cc [lc_ldap] Quitte à faire du lazy attrify, autant le faire partout,
pour avoir une certaine homogénéité dans le code.
2013-04-01 23:13:32 +02:00