Commit graph

615 commits

Author SHA1 Message Date
Valentin Samir
8a6e93a38a [objets] Methode pour mettre à jour la liste attribs des attributs possible de l'objets
La méthode est apprlé dès que attrs et _modis sont instancié et avant les vérifications
sur la correction des attributs.
Cela permet d'utiliser des objet "Auxilière" dans ldap plus facilement.
2014-03-18 22:47:35 +01:00
Valentin Samir
929133560d [attributs] Restriction sur les hostCert \in host+hostAlias seulement pour les machine non Crans
On part du principe que les nounou font attention et savent ce qu'elle font.
C'est plus pratique comme ça pour migrer des services d'une machine à l'autre
sans avoir à rééditer les certificats à chaque fois.
2014-03-18 22:46:13 +01:00
Valentin Samir
067459eb44 [crans_utils, lc_ldap] Méthode pour récupérer les machines ldap correspondant à la machine physique locale 2014-03-18 22:45:42 +01:00
Valentin Samir
d6d9f84076 [printing/templates/proprio] Les clubs n'ont pas toujours de mail 2014-03-17 11:39:40 +01:00
Valentin Samir
b522b7aa69 [filter2] Possibilité d'utiliser des < ou > dans les filtres humains 2014-03-17 11:39:07 +01:00
Valentin Samir
72e35bcb32 [attributs, crans_utils, objets] Ajout d'attributs encrypted, privatekey, csr et objectClass privateKey
On peut générer/ajouter des clefs privées via gest_crans_lc. Elles sont forcément chiffré avec une
passphrase. Pour les machines crans, elle est dans /etc/crans/secrets. Pour les autres machines
elle n'est pas connue du crans et demandée à l'utilisateur lorsqu'il y a besoin de la clef privée
pour des opérations.
Du coup, on peut générer des csr automatiquement dans gest_crans_lc, ça m'a l'air bien pratique,
ça évite d'oublier des subjectAltName par exemple quand on renouvel le certificat comme les
nom du certificat sont également dans ldap.
On peut aussi, juste avec une requête ldap voir quels sont les certificats qui vont bientôt
expirer (&(objectClass=x509Cert)(end<int(time.time())+delai)).
2014-03-17 11:26:53 +01:00
Valentin Samir
480497ce4e [attributs] Fonction utile sur les AttrsList, __cmp__ ne sert à rien et plante si python_type = int 2014-03-15 22:49:39 +01:00
Valentin Samir
4fea59bbeb [lc_ldap] Quand connecté en admin, si l'user est un user crans, on dropp les droits à celui de cet user 2014-03-15 22:48:44 +01:00
Valentin Samir
1d58240c6a [attributs] Changement mineurs
docstring de mailExt, et unicodification des hostCerts de certificat
2014-03-15 22:47:58 +01:00
Valentin Samir
285d35364a [objets] Dans adherent.machine() possibilité de forcer le rafraîchissement du cache local 2014-03-15 22:47:25 +01:00
Valentin Samir
241f55154e [objets] Création et suppression de compte crans 2014-03-15 22:47:04 +01:00
Valentin Samir
23369476ef [crans_utils] strip_spaces paramètre pour choisir le remplasant des espaces, fonction pour calculer des hash SSHA 2014-03-15 22:46:20 +01:00
Valentin Samir
dd94fcd228 [services] Création et suppression des homes si modif de l'objectClass cransAccount, rattrapage d'une erreur si le service a redémarrer existe déjà 2014-03-15 22:45:06 +01:00
Valentin Samir
64a1d9f0ec [attributs] exemp est de type netaddr.IPNetwork 2014-03-15 22:44:41 +01:00
Valentin Samir
3809bfea8e [printing/proprio] Affichage du mail si pas de compte crans, affichage de mailExt 2014-03-15 22:43:40 +01:00
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