Commit graph

239 commits

Author SHA1 Message Date
Valentin Samir
b7ceb88051 [attributs] Enforçage de la valeure de modePaiement à une liste prédéfinie 2014-03-23 20:36:53 +01:00
Valentin Samir
27af8f31c0 [attributs] typage des articles comme des dict 2014-03-23 20:36:31 +01:00
Valentin Samir
4a4b86f4f1 [attributs] Utilisation de mailExt comme mail de secours
On force l'adresse utilisée à être non crans
2014-03-21 09:17:00 +01:00
Valentin Samir
957c0462d1 [attributs] Nounou et cableurs doivent pouvoir modifier derniereConnexion, ipHostNumber et ip6HostNumber
derniereConnexion pour pouvoir supprimer des comptes crans
les autres pour pouvoir créer des machines
de plus, on met soi pour derniere connexion, pour qu'il puisse être mis à jour
quand un adhérent se connecte à l'intranet2
2014-03-21 09:15:02 +01:00
Valentin Samir
f8036659a6 [attributs] Liste des shell dans gestion.config 2014-03-21 09:13:50 +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
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
1d58240c6a [attributs] Changement mineurs
docstring de mailExt, et unicodification des hostCerts de certificat
2014-03-15 22:47:58 +01:00
Valentin Samir
64a1d9f0ec [attributs] exemp est de type netaddr.IPNetwork 2014-03-15 22:44:41 +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
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
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
79149ebb4f [attributs.certificat] Belle erreur sur les certificats mal formaté 2014-03-02 01:17:24 +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
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
Valentin Samir
f6620a2643 [attributs/hostCert] join veut absoluement des strings 2014-02-22 23:14:27 +01:00
Valentin Samir
44936fde9d Ajout d'objets certifcats comme enfant des objets machine 2014-02-22 23:01:56 +01:00
Valentin Samir
78b50415fe [attributs] Des test sur la correction syntaxique de ce qu'on met dans un sshFingerprint
En gros de ce que le script qui génère le dns s'attend à trouver :
la clef publique en entière sous la forme
type base64 commentaire
2014-02-21 18:02:34 +01:00
Valentin Samir
b882c41683 Ajout des méthodes __ne__ sur les cransLdapObjet et Attr pour tester le non égalité 2014-02-21 18:02:02 +01:00
Valentin Samir
592cd16357 Fonction de hash pour les cransLdapObject. Seulement en ro. En rw on lève une exception.
En effet, python n'aime pas que les objets multables soient utilisé dans des sets
ou comme clef de dictionnaire, du coup, on va essayer de ne pas le contrarier.
De toute façon, c'est logique vu que la valeur du hash change si on édite l'objet.
2014-02-21 18:00:19 +01:00
Valentin Samir
fe14eb9d4b [attributs] __getattr__ ce que je pensais mettre dans le commit 838c4e9a73 2014-02-19 19:59:05 +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
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
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
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