Commit graph

500 commits

Author SHA1 Message Date
Valentin Samir
38a47e47ab [printing/machine] Affichage de la clef ipsec sur machine wifi 2014-03-15 22:43:19 +01:00
Valentin Samir
6abc1fbad7 [printing/adherent] Affichage de l'adresse si chambre EXT 2014-03-15 22:42:49 +01:00
Valentin Samir
db6cf98661 [printing] Possibilité d'afficher des blacklists seule 2014-03-15 22:42:21 +01:00
Valentin Samir
937aefb3ec [printing] Possibilité de spécifier la largeur des tableaux ascii 2014-03-15 22:41:24 +01:00
Valentin Samir
df23c50e23 [printing] Non affichage de la liste des machines/factures si l'objet adhérent n'existe pas encore 2014-03-15 22:40:06 +01:00
Valentin Samir
bc751c415b [attributs, objets] Ajout de l'attribut shadowExpire 2014-03-15 22:38:15 +01:00
Valentin Samir
7e55e8325d [attributs, objets] Possibilité d'avoir un attribut unique sauf pour une liste de valeur prédéfini
Je pense particulièrement à chambre qui est unique sauf pour ???? et EXT
On en a besoin pour détecter, quand on affecte quelqu'un a une chambre, que
la chambre est déjà occupée
2014-03-15 22:36:02 +01:00
Valentin Samir
ad83a5aaa3 [attributs] Plus nazi sur qui peut modifier les attributs userPassword, mail, homeDirectory 2014-03-15 22:33:59 +01:00
Daniel STAN
1d361ac0e5 ne pas supposer que sys.argv existe ... 2014-03-04 18:53:20 +01:00
Daniel STAN
f1aeaf59aa ipsec modifiable par proprio
Ou alors trouvez-moi une autre façon d'instancier les machines wifi.
2014-03-04 18:50:02 +01:00
Daniel STAN
b9f47f5b94 objets: machines destructibles par parent
Aller la dupplication de code aller aller.
2014-03-04 18:47:48 +01:00
Valentin Samir
1394cfc867 [printing] Support des couleurs dans dialog 2014-03-03 10:54:33 +01:00
Valentin Samir
3e9dc95268 [objets] On calcule le parent_dn, c'est pratique pour tester rapidement si un objets est enfant d'un autre 2014-03-03 10:53:52 +01:00
Valentin Samir
4ea10076ca [attributs] Changement de permissions sur des attributs
Pour historique il faudrait faire quelque chose pour que soi, parent,
cableur ne puissent que ajouter de nouvelles lignes, mais en attendant, il peuvent
"en théorie" le modifier.
2014-03-03 10:52:30 +01:00
Valentin Samir
4eee0437dd [lc_ldap] Si l'user donné à init existe, il faut aussi se mettre sous le dn de cet utilisateur
on le fait après s'être connecté à la base ldap, du coup, ce dn ne sert que dans la
logique des droits de lc_ldap
2014-03-03 10:51:06 +01:00
Valentin Samir
8c3d6b441d [lc_ldap] Si l'user donné à init existe dans la base, alors droits est mis aux droits de l'utilisateur 2014-03-02 01:50:09 +01:00
Valentin Samir
879bebbae2 [lc_ldap] Utilisation des fonctions newMachine, newAdherent, newClub, ... comme un context manager 2014-03-02 01:49:16 +01:00
Valentin Samir
79149ebb4f [attributs.certificat] Belle erreur sur les certificats mal formaté 2014-03-02 01:17:24 +01:00
Daniel STAN
99d864b81c <automatique> pour les macs et u'' si pas d'ipv6 2014-03-02 00:28:15 +01:00
Valentin Samir
8f9c6c1d17 [lc_ldap] Pour machineMulticast, on utilise des uldif en place des ldif
Pour rappel, les machineMulticast n'ont pas d'existance pour la base ldap
et sont juste pratiques pour générer le dns de la zone TV sans avoir de cas
particulier dans gen_conf/bind.py
2014-02-26 10:28:43 +01:00
Valentin Samir
d8b1e5da51 [objets] En cas d'ajout de lock hors contexte, on affiche un warning 2014-02-26 10:27:48 +01:00
Valentin Samir
06ea17715b [objets.setitem] Varification de l'unicité de l'attribut sur l'objet
Sinon ldap il est pas content
2014-02-26 10:27:02 +01:00
Valentin Samir
8fd2be80c8 [attributs.sshFingerprint] On se débarrasse des espaces inutiles
Ça "normalise" plus ou moins une clef ssf
2014-02-26 10:26:00 +01:00
Valentin Samir
2c1edaa310 [attributs] Ajout de legends 2014-02-26 10:25:43 +01:00
Valentin Samir
0e9404ae93 [test.py] utilisation de contexts pour les écritures de la base ldap 2014-02-24 21:51:34 +01:00
Valentin Samir
15f92fbf21 [objets.facture] Sucre syntaxique 2014-02-24 21:44:34 +01:00
Valentin Samir
ac0445b7e3 [objets.__setitem__] On libère les locks des valeurs que l'on oublie 2014-02-24 21:44:00 +01:00
Valentin Samir
1312039a55 [lc_ldap._find_id] Dans le cas non strictement croissant des id, on utilise un set pour stocker les id déjà pris
En effet, en effectue ensuite un nombre important de fois l'opération i in nonfree.
Avec des liste l'opération est en O(n) alors qu'elle est en O(1) avec des set
2014-02-24 21:42:22 +01:00
Valentin Samir
955a4f2820 [lc_ldap, objets] Création des objets ldap avec un lockid bien a eux 2014-02-24 21:40:03 +01:00
Valentin Samir
4f88ae824a [ldap_locks] Renommage des erreurs ldap en erreur de Lock, factorisation, reformatage 2014-02-24 21:31:16 +01:00
Valentin Samir
320300d85c [doc] Ajouts des fichiers objets shortcuts variables services ldap_locks cimetiere crans_utils à la documentation 2014-02-24 17:17:00 +01:00
Valentin Samir
172c1935ce [lc_ldap/_find_id] C'est bien aussi de ne pas oublier qu'il y a des id qui ne sont pas strictement croissant 2014-02-24 17:15:40 +01:00
Valentin Samir
9aa0de6539 Travaux sur les locks, ajout de context manager pour les cransLdapObject
D'une façon général, on s'assure que tous les locks concernant un cransLdapObject
sont bien mis avec l'identifiant de lock cransLdapObject.lockId.
Avant d'entrer dans le context manager du cransLdapObject, on fait bien attention
d'intercepter les exceptions pouvant être levée pour libérer les locks potentiellement
déjà posés avant de propager l'exception.

Si on essayer d'appeler une methode d'enregistrement (.save() .delete() .create()) sans
utiliser un context manager, on affiche un warning sur stderr.

À terme ça serait bien de n'utiliser que des context manager pour être sûr qu'on ne
laisse pas de lock traîner dans la base de donnée.

Il faut bien sûr faire attention de bien ajouter les lock avec l'identifiant cransLdapObject.lockId
puisqu'on se base là dessus pour les libérer.

Si on a utiliser une context manager, en en sortant, on rend le cransLdapObject read only
(de façon douce en modifiant le cransLdapObject.mode et de façon force en changeant les methodes
save create delete pour lever l'exception EnvironmentError("Hors du context, impossible de faire des écritures"))
2014-02-24 14:48:03 +01:00
Valentin Samir
63b9f89b6f [ldap_locks] Affichage du temps restant avant expiration d'un lock si une LockError est levée 2014-02-24 14:47:27 +01:00
Valentin Samir
954ba580b6 [crans_utils] process_status sans utiliser subprocess 2014-02-24 14:46:52 +01:00
Valentin Samir
a485d4b8b2 [objets] Impossible de supprimer un adhérent respo ou imprimeur d'un club 2014-02-24 11:45:52 +01:00
Valentin Samir
13db266a4c [test] Affichage des objets ne passant pas les tests 2014-02-24 11:45:30 +01:00
Valentin Samir
575075fe18 [lc_ldap] Ajout des xids dans ressucite 2014-02-24 11:45:08 +01:00
Valentin Samir
68c86e7e00 [lc_ldap._find_id] On essaye de cacher le dernier id connu et de ne récupérer que les id plus grand
C'est beaucoup plus rapide que récupérer tous les mid ou tous les aid.
BEAUCOUP !!!!
plus de détails dans les commentaires du code.
2014-02-24 11:34:27 +01:00
Daniel STAN
68587e3ebb attributs: allow macAddress "<automatique>" 2014-02-23 19:25:11 +01:00
Valentin Samir
fefad357fc [attributs, objets] Affinage des permissions sur les certificats 2014-02-23 16:06:11 +01:00
Valentin Samir
f5347106c7 [attributs] Fonctions de test d'egalité des attributs 2014-02-23 15:30:04 +01:00
Valentin Samir
626851baca [objets, attributs] Vérifications de contraintes liées au certificats d'un machine 2014-02-23 15:29:26 +01:00
Daniel STAN
afb436f706 hide ipv6 si cachée 2014-02-23 02:42:57 +01:00
Valentin Samir
99ba3a8915 [lc_ldap, objets] vivent les __repr__ 2014-02-23 00:02:00 +01:00
Valentin Samir
7df0a4e1a0 [services] Appel une seule fois à time.time() lors d'une recherche pour reconfiguration 2014-02-23 00:01:09 +01:00
Valentin Samir
3f1712e908 [services] reconfiguration du dns si modification d'un certificat avec du TLSA 2014-02-23 00:00:32 +01:00
Valentin Samir
f6620a2643 [attributs/hostCert] join veut absoluement des strings 2014-02-22 23:14:27 +01:00
Valentin Samir
43f4ba650a Cas d'un attribut binary
C'est un peu moche comme on s'est efforcé que dans lc_ldap tout soit un unicode et que
unicode n'a pas de sens pour un objet binaire. Avec le champ python_type = str sur les
attributs bianire, ça a tout de même l'air d'aller.
2014-02-22 23:09:29 +01:00
Valentin Samir
44936fde9d Ajout d'objets certifcats comme enfant des objets machine 2014-02-22 23:01:56 +01:00