diff --git a/attributs.py b/attributs.py index 319770f..5c1c4fb 100644 --- a/attributs.py +++ b/attributs.py @@ -396,6 +396,20 @@ class mailAlias(mail): raise ValueError("Alias mail invalide (%r)" % mail) self.value = mail +class mailExt(mail): + singlevalue = False + optional = True + unique = True + legend = u"Mail externe" + can_modify = [soi, cableur, nounou] + category = 'mail' + + def parse_value(self, mail): + mail = mail.lower() + if not re.match('^[-_.0-9A-Za-z]+@([A-Za-z0-9]{2}[A-Za-z0-9-_]+[.])+[a-z]{2,6}$', mail): + raise ValueError("Mail externe invalide (%r)" % mail) + self.value = mail + class mailInvalide(boolAttr): optional = True legend = u"Mail invalide" @@ -1001,6 +1015,12 @@ class modePaiement(Attr): class recuPaiement(Attr): pass +class dnsIpv6(boolAttr): + pass + +class machineAlias(boolAttr): + pass + ### Les classes ADHERENT_ATTRS = [ nom, prenom, tel, chbre, postalAddress, mail, uid, canonicalAlias, mailAlias, etudes, paiement, @@ -1057,6 +1077,8 @@ CRANS_ATTRIBUTES = { 'contourneGreylist' : contourneGreylist, 'imprimeurClub' : imprimeurClub, 'fid' : fid, + 'dnsIpv6' : dnsIpv6, + 'machineAlias' : machineAlias, 'modePaiement' : modePaiement, 'recuPaiement' : recuPaiement, 'cid' : cid, diff --git a/lc_ldap.py b/lc_ldap.py index a61c371..b983b5b 100644 --- a/lc_ldap.py +++ b/lc_ldap.py @@ -871,7 +871,8 @@ class adherent(proprio): attributs.contourneGreylist, attributs.derniereConnexion, attributs.homepageAlias, attributs.gpgFingerprint, attributs.carteEtudiant, attributs.mailAlias, - attributs.droits, attributs.etudes, attributs.postalAddress] + attributs.droits, attributs.etudes, attributs.postalAddress, + attributs.mailExt] def compte(self, login = None, uidNumber=0, hash_pass = '', shell=config.login_shell): u"""Renvoie le nom du compte crans. S'il n'existe pas, et que uid