Commit graph

149 commits

Author SHA1 Message Date
Valentin Samir
39635670e0 [attributs] Ajout de l'attribut rewriteMailHeaders comme boolAttr 2014-02-03 18:43:22 +01:00
Valentin Samir
25476fd42d [attributs] canonicalAlias est optionnel dans la base ldap 2014-02-03 18:42:50 +01:00
Pierre-Elliott Bécue
d2aebebd2a [attributs] Si on oublie les parenthèses… 2014-01-29 00:53:49 +01:00
Pierre-Elliott Bécue
8ef8ba04a0 [attributs] On ajoute un attribut gpgMail spécifique
* 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)
2014-01-29 00:37:11 +01:00
Valentin Samir
aebe4613e4 [attributs, ...] __getitem__ et __setitem__ pour les attibut dont la valeur est un dictionnaire
donc pour blacklist et pour article pour le moment
2013-11-22 16:51:40 +01:00
Valentin Samir
ad58564193 [attributs] Valeurs par defaut en unicode 2013-11-19 19:00:00 +01:00
Valentin Samir
ba3898f26d [attributs, objets, lc_ldap] Création de factures 2013-10-11 18:46:26 +02:00
Daniel STAN
f199947a5d clubs: regex moins chiante sur les noms 2013-10-07 01:02:47 +02:00
Valentin Samir
4af481aeef host est unique et check_uniqness a la creation 2013-08-26 13:33:51 +02:00
Valentin Samir
c38d693d76 [attributs] Valeur par defaut pour ip et mdp wifi 2013-08-26 13:33:24 +02:00
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
Daniel STAN
2bf07035ab [historique.get_datetime] inversion des args
args !
2013-06-06 00:46:11 +02:00
Daniel STAN
66be47e496 [attributs] méthode de conversion en datetime
Parce que ça fait plusieurs fois que j'en ai besoin donc je pense que ça sera
handy !
2013-06-06 00:22:14 +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
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
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
ec5de5834b On surcharge pas __repr__ comme des gros sales. 2013-05-16 02:45:44 +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
Pierre-Elliott Bécue
294f7ce949 [attributs] On rajoute du contexte 2013-05-15 22:35:43 +02:00
Pierre-Elliott Bécue
efdd7a5cbe [attributs] a, b = [a,b] mieux que a, b = [a,b][0], [a,b][1] 2013-05-15 16:48:18 +02:00
Pierre-Elliott Bécue
7c2db3dc98 [attributs] Les mails ne sont pas tous en @crans.* 2013-05-15 16:43:16 +02:00
Pierre-Elliott Bécue
89a43cc49a [attributs] mail est multivalué, etudes est optionnel, et solde peut être <0 2013-05-15 00:15:45 +02:00
Valentin Samir
92c4dedfb3 [attributs] On affiche le nom de l'attribut quand on lève une SingleValueError 2013-05-14 23:31:48 +02:00
Valentin Samir
03af7098e8 [attributs.positionBorne] La précision est variable et on ne stocke que 2 float sans °N ou °E (peut être à revoir) 2013-05-14 23:29:40 +02:00
Valentin Samir
3d73191b08 [attributs.controle] controle est optionnel 2013-05-14 23:29:12 +02:00
Valentin Samir
8ded247691 [attributs.ipsec] Avant la clef faisait 22 char 2013-05-14 23:27:59 +02:00
Valentin Samir
2bb29aac36 [attributs] On vérifie chaque composane du nom de domaine.
À charge de vérifier que le nom de domaine appartient bien à l'une
des zones dns du crans.
2013-05-14 18:02:01 +02:00
Valentin Samir
e38aac75bf [attributs.shell] Ajout d'un shell 2013-05-14 18:00:41 +02:00
Valentin Samir
cc0f6e0a91 Antagonisme entre un attribut et sa valeur textuelle 2013-05-14 18:00:00 +02:00
Vincent Le Gallic
d47b2febc7 [attributs.py] On génère CRANS_ATTRIBUTES plutôt que de le hardcoder.
C'est dommage que j'aie pas le droit de faire un dico en compréhension…
2013-05-14 17:37:34 +02:00
Valentin Samir
b9fd6bbb91 [dnsAttr] On verifie que le domaine existe, les nom commençant par une chiffre sont valident
par exemple 4chan.org.
Si on ne vérifie pas le domaine, on permet à l'utilisateur de mettre
des points dans les noms de machines, ce qui n'est pas souhaitable.
2013-05-13 20:06:46 +02:00
Valentin Samir
ed140bf4b5 [attributs] ip4_of_rid mange un entier ou un string 2013-05-10 01:38:30 +02:00
Valentin Samir
2a4037d39c [attributs] Expression régulière pour ne pas accepter sur un sous mot d'un nom de machine 2013-05-09 21:10:17 +02:00
Vincent Le Gallic
59daf777e8 regex pour les noms de machine RFC-compliant 2013-05-09 17:20:13 +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
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
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
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
Valentin Samir
4f1dcce982 [attributs] ipv6_of_mac mange des strings et pas des instances d'Attrs 2013-04-10 10:51:55 +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
60ea18d180 [attributs] rm -f check_users_restrictions 2013-04-06 14:41:08 +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
Valentin Samir
b957a41cd7 On n'oublie de retourner aussi les valeurs déjà attrifiées 2013-04-01 23:07:23 +02:00
Valentin Samir
0c0338719c On attrify également lorsque la valeur est appelé avec .get(...) 2013-04-01 22:32:36 +02:00