[attributs, objets] Une fonction pour générer automatiquement une ligne d'historique
Elle s'appelle history_gen. Il faut l'appeler explicitement pour le moment, pour éviter de mettre des lignes en double vu que jusqu'à maintenant, historique était fait à la main. Il y a 4 niveaux d'historique pour les attributs : * full on loggue toutes les modifications pour un singlevalue : nom (Durant -> Dupond") pour les autres : mailAlias+toto@free.fr-titi@orange.com * partial, comme full sauf qu'on limite la longeur de chaque valeur d'attribut à au plus 15 caractères * info, on signalute juste que l'attribut attribut a été créer, supprimer ou modifier: * None, on n'ajoute pas de ligne (par exemple pour l'historique lui même, on le loggue pas ses modifications) Ajoutez en d'autre si vous pensez à des trucs cools
This commit is contained in:
parent
f6fe2f78e5
commit
8477760302
2 changed files with 92 additions and 1 deletions
|
@ -256,6 +256,7 @@ class Attr(object):
|
|||
conn = None
|
||||
unique = False
|
||||
concurrent = True
|
||||
historique = "full" # valeurs possibles "full", "partial", "info", None
|
||||
unique_exclue = []
|
||||
#: Le nom de l'attribut dans le schéma LDAP
|
||||
ldap_name = None
|
||||
|
@ -1022,6 +1023,7 @@ class ipsec(Attr):
|
|||
category = 'wifi'
|
||||
ldap_name = "ipsec"
|
||||
can_modify = [nounou, parent]
|
||||
historique = "info"
|
||||
default = u'auto'
|
||||
|
||||
def parse_value(self, val):
|
||||
|
@ -1313,6 +1315,7 @@ class historique(Attr):
|
|||
ldap_name = "historique"
|
||||
# Il faudrait faire quelque chose pour que soi, parent, cableur ne puissent que ajouter de nouvelles lignes
|
||||
can_modify = [nounou, soi, parent, cableur]
|
||||
historique = None
|
||||
|
||||
# Thanks to 20-100, on va devoir gérer deux cas
|
||||
FORMAT = "%d/%m/%Y %H:%M:%S"
|
||||
|
@ -1334,6 +1337,7 @@ class info(Attr):
|
|||
category = 'info'
|
||||
can_modify = [nounou, cableur, bureau]
|
||||
ldap_name = "info"
|
||||
historique = "info"
|
||||
|
||||
@crans_attribute
|
||||
class homepageAlias(Attr):
|
||||
|
@ -1427,6 +1431,7 @@ class userPassword(Attr):
|
|||
category = ''
|
||||
ldap_name = "userPassword"
|
||||
can_modify = [nounou, bureau, cableur]
|
||||
historique = "info"
|
||||
|
||||
def is_modifiable(self, liste_droits):
|
||||
"""
|
||||
|
@ -1452,6 +1457,7 @@ class sshFingerprint(Attr):
|
|||
can_modify = [parent, nounou]
|
||||
ldap_name = "sshFingerprint"
|
||||
python_type = dict
|
||||
historique = "partial"
|
||||
|
||||
def parse_value(self, key):
|
||||
if isinstance(key, self.python_type):
|
||||
|
@ -1692,6 +1698,7 @@ class privatekey(Attr):
|
|||
python_type = str
|
||||
can_modify = [parent, nounou]
|
||||
legend = "Clef privée"
|
||||
historique = "info"
|
||||
|
||||
@crans_attribute
|
||||
class csr(Attr):
|
||||
|
@ -1699,6 +1706,7 @@ class csr(Attr):
|
|||
python_type = str
|
||||
can_modify = [parent, nounou]
|
||||
legend = "requête de signature de certificat"
|
||||
historique = "info"
|
||||
|
||||
def _format_cert(self, csr):
|
||||
import OpenSSL
|
||||
|
@ -1728,6 +1736,7 @@ class certificat(Attr):
|
|||
python_type = str
|
||||
can_modify = [parent, nounou]
|
||||
legend = "Certificat"
|
||||
historique = "info"
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(certificat, self).__init__(*args, **kwargs)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue