Commit graph

395 commits

Author SHA1 Message Date
Valentin Samir
37b5dc5a0c [filter2, filter3] pyparsing.printables ne prend en compte que de l'ASCII, donc on utilise les char unicode
Pour ça on est obligé (si on utilise pyparsing) de générer la liste de tous les charactère unicode.
Daniel fait remarquer que ça n'est pas joli d'instancier une chaine de 63Ko quand on veux parser quelque chose.
On ne le fait tout de même que de façon paresseuse la première fois que l'on a besoin de parser quelquechose
(dans filter2, filter3 est juste un proof of concept).
Pour faire du human_to_ldap, on peut utiliser directement la fonction de filter.py qui n'est pas impacté
par le problème, mais pour ressucite, on a pour le moment pas le choix puisqu'on utilise la fonction
human_to_list qui n'est fournie que dans les modules filter2 et filter3.
2014-02-19 19:31:32 +01:00
Valentin Samir
cf4c63de70 [objets] Simplification de paiement_ok carte_ok et cie du à l'ajouts de methdes sur Attr cette dernière semaine. 2014-02-19 19:04:34 +01:00
Valentin Samir
fa8aef7d18 [objets] "Proposer de filtrer les blacklistes avec un arg supplémentaire ?" c'est fait 2014-02-19 19:03:36 +01:00
Valentin Samir
840cef04c7 [objets/machine] Pour blacklist_actif on appel plutôt super().blacklist_actif au lieu de la réimplémenté 2014-02-19 19:02:41 +01:00
Valentin Samir
838c4e9a73 [attributs] ajout d'un __getattr__ sur Attr renvoyant vers getattr(self.value)
À noter que __getattr__ n'est appelé que si l'attribut n'existe pas déjà.
Ça permet d'utiliser l'objet Attr comme sa valeur pour la plupart des opération
de lecture simple.
J'ai fait exprès de ne pas surcharger __setattr__, parce que sinon, on ne sait
plus trop ce qui va être affecté. J'estime que les écriture doivent être traités au
cas par cas comme pour blacklist ou pour article.
2014-02-19 18:52:01 +01:00
Valentin Samir
6e6f87bf40 [attributs] Ajout d'une methode __hash__ à la classe Attrs 2014-02-18 21:37:51 +01:00
Valentin Samir
45947b1871 [attributs] sshFingerping : représentation ldap comme in dict {type, clef, commentaire} 2014-02-17 22:08:07 +01:00
Valentin Samir
7b7511e493 [attributs] Possibilité de donner à manger un dicrionnaire à une blackliste 2014-02-17 22:07:42 +01:00
Valentin Samir
525d7941ff [attributs] Pitit problème de parenthesage logique 2014-02-17 22:07:19 +01:00
Valentin Samir
012895ca0b [attributs] Les listes ne sont pas shashable du coup on n'ajoute pas de [] dans le set modifiables de la classe droits 2014-02-17 22:06:34 +01:00
Valentin Samir
a17f7ca133 [attributs] Ajout de __delitem__ à AttrsList 2014-02-17 22:05:59 +01:00
Daniel STAN
ff62cda2af printing: afficher constructeur de la mac
Killer feature ;o
2014-02-17 18:36:24 +01:00
Valentin Samir
6fffbd7bd3 [attributs] Type python à int pour la classe responsable 2014-02-14 02:20:10 +01:00
Valentin Samir
03c45b8889 [attributs, objets] Possibilité d'utiliser directement les methodes sur les liste renvoyé par __getitems__ sur un cransLdapObjet
Au lieu d'être obligé de faire à chaque fois obj[attr] = obj[attr] + [val]
on peut faire directement obj[attr].append(val).
Si on affecte obj[attr] à une variable (l=obj[attr])
et que l'on modifie la variable (l.append(val)), a la fois la variable et obj[attr] sont modifié
et maintenue à jour.
Attention toutefois :
 l1 = obj[attr]
 l2 = obj[attr]
 l1 == l2 <=> True

 l1.append(val)
 l1 == obj[attr] <=> True
 l1 == l2 <=> False
 l2 == obj[attr] <=> False

et l2.append(val) lèvera une exception.
2014-02-14 02:14:44 +01:00
Valentin Samir
8739640687 [attributs] Compare methode entre les attributs 2014-02-14 02:06:22 +01:00
Valentin Samir
aea8e9d974 [attributs] assert value is not only unicode but can also be of the specified python type 2014-02-14 00:45:12 +01:00
Valentin Samir
0486929a5a [objets] Propagation du default donné par .get dans .__getitem__ 2014-02-14 00:39:12 +01:00
Valentin Samir
ca170c19f4 Ajout de methodes pour tester l'égalité d'objets ou d'attributs,
possibilité de fournir une valeur du bon type python à un attribut
test booléen sur s'attribut propagée à sa valeur.

Le teste d'égalité sur un attribut peut se faire avec la sérialisation de
l'attribut ou le type python qui le représente.
Le teste d'égalité sur les cransLdapObjet se fait sur le dn et ses attributs.
De plus, on peut aussi le testé avec un chaine de caractère :
 "host=freebox.crans.org" == MachineCrans(...) renvoie True ssi
MachineCrans(...) a l'attribut host, qu'il est globalement unique et vaut
freebox.crans.org

vala vala
2014-02-13 22:34:00 +01:00
Valentin Samir
e9d092698a Merge branch 'master' of charybde.crans.org:/git/ldap 2014-02-12 00:53:40 +01:00
Valentin Samir
fb600ec478 [cransldapopbject] On peuple les objectClass même pour associationCrans (qui contient organizationalUnit)
mais on force le mode en read only
2014-02-12 00:51:13 +01:00
Daniel STAN
5e2a4ad10d ldap_locks: oubli items() dans for 2014-02-11 22:45:10 +01:00
Valentin Samir
faeb3651dd [objets] Ajout d'attributs à cransAccount. Les club aussi peuvent avoir un compte crans. 2014-02-03 18:44:13 +01:00
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
Valentin Samir
0a7b99d4a8 [printing/machine] Les machines ont des hostAlias, affichage de l'attribut dnsIpv6
gestion des divers proprio (aid ou cid ou association crans).
2014-02-03 00:17:48 +01:00
Valentin Samir
f4730bb6ea Un fonction pour générer des objets machine lc_ldap à partir du dump des annonces sap dans /usr/scripts
Ç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.
2014-02-03 00:15:18 +01:00
Pierre-Elliott Bécue
32f51593b6 [printing] On arrive à un compromis entre une erreur lisible et éviter l'import de ldap_crans 2014-02-03 00:12:41 +01:00
Pierre-Elliott Bécue
5ff3453963 [printing] Commentaire, pour penser à virer l'import de whos 2014-02-03 00:08:49 +01:00
Pierre-Elliott Bécue
31d97c8324 [printing] annuaires_pg est accessible à tous 2014-02-02 23:55:01 +01:00
Pierre-Elliott Bécue
7d0d6a8352 [printing] Retour à try_import
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.
2014-02-02 23:51:39 +01:00
Pierre-Elliott Bécue
592394a030 [objets] Arrivée de gpgMail dans les attributs des adherents, et petite correction
* Petite correction : Quand on est en mode write, on get dans _modifs, mais on
 vérifiait pas avec un has_key qu'on pouvait bien.
2014-01-29 00:56:04 +01:00
Pierre-Elliott Bécue
395cf90fbc Killing trailing spaces 2014-01-29 00:55:48 +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
0c157efaae [factures] GROS HACK pour rester comptatible avec ldap_crans où l'article representant les frais n'est ajouté qu'une fois le paiement reçu 2014-01-26 03:21:44 +01:00
Daniel STAN
82f70678ea shortcuts: connexion locale *en anonyme*
Ça manquait.
2014-01-16 23:21:17 +01:00
Daniel STAN
a9601b3660 shortcuts: utilisation de secrets_new
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).
2014-01-14 20:37:37 +01:00
Daniel STAN
2c3ebf58d1 fallback sur getpass.getuser()
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.
2014-01-14 20:12:20 +01:00
Valentin Samir
c894eecc15 [printing/templates] Mises en page diverses 2013-12-05 14:29:44 +01:00
Valentin Samir
4a0e0225b9 [printing/template] Affichage du canonical alias 2013-12-05 14:29:21 +01:00
Valentin Samir
a79e0a4113 [printing] import de gestion.whos juste pour le tout petit bout de code que j'ai eu la flemme de faire
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.
2013-12-05 14:27:32 +01:00
Pierre-Elliott Bécue
fb064dbbb8 [printing] Docstring pour la fonction d'import smooth. 2013-12-04 19:49:23 +01:00
Pierre-Elliott Bécue
5f9a2362ad printing, ou comment rendre lc_ldap dépendant de ldap_crans.
* 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.
2013-12-04 19:41:12 +01:00
Valentin Samir
8bbcc3b035 [printing] Affichage des liste de machines et factures sur un proprio
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.
2013-11-26 01:44:22 +01:00
Valentin Samir
3cf36346ab [test] Test de création/suppression de factures 2013-11-24 20:12:56 +01:00
Valentin Samir
bd823060ce [services] Typos diverses 2013-11-24 20:12:40 +01:00
Valentin Samir
5504700dee [objets, shortcuts] Cimetière de test quand on est sur la base de test 2013-11-24 20:12:28 +01:00
Valentin Samir
54dd95bb22 [printing/facture] Jolie liste d'articles 2013-11-22 16:52:59 +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
49709b663a [printing] Formatage du numéro de téléphone 2013-11-20 17:41:34 +01:00