Choix du login pour les clubs.
Changement de shell pour les clubs. Correction petit bug dans la recherche (c'est beaucoup plus rapide pour les recherches de type truc=*). darcs-hash:20041127205705-41617-8c5a36f7bc9f5e35a40b09394169f4c1a8b4f422.gz
This commit is contained in:
parent
08d91ae155
commit
1f2bcef775
1 changed files with 26 additions and 25 deletions
|
@ -527,7 +527,7 @@ class crans_ldap :
|
||||||
## Recherche avec chacun des filtres
|
## Recherche avec chacun des filtres
|
||||||
r={} # contiendra les réponses par filtre
|
r={} # contiendra les réponses par filtre
|
||||||
for i in filtres :
|
for i in filtres :
|
||||||
if (filtre_tout and filtre!='(&' ) or filtre_cond[i] :
|
if (filtre_tout and filtre[i]!='(&' ) or filtre_cond[i] :
|
||||||
# Filtre valide
|
# Filtre valide
|
||||||
#filtre[i] += ')'
|
#filtre[i] += ')'
|
||||||
filtre[i] += '(objectClass=%s))' % i
|
filtre[i] += '(objectClass=%s))' % i
|
||||||
|
@ -970,6 +970,16 @@ class base_proprietaire(base_classes_crans) :
|
||||||
self._init_data={}
|
self._init_data={}
|
||||||
self._modifiable = 'w'
|
self._modifiable = 'w'
|
||||||
|
|
||||||
|
def chsh(self,new=None) :
|
||||||
|
""" Retourne ou change le shell de l'adhérent """
|
||||||
|
if new == None :
|
||||||
|
try : return decode(self._data.get('loginShell',[''])[0])
|
||||||
|
except : return ''
|
||||||
|
else :
|
||||||
|
new = preattr(new)[1]
|
||||||
|
self._set('loginShell',[new])
|
||||||
|
return new
|
||||||
|
|
||||||
def alias(self,new=None) :
|
def alias(self,new=None) :
|
||||||
"""
|
"""
|
||||||
Création ou visualisation des alias mail
|
Création ou visualisation des alias mail
|
||||||
|
@ -1517,16 +1527,6 @@ class adherent(base_proprietaire) :
|
||||||
|
|
||||||
return decode(login)
|
return decode(login)
|
||||||
|
|
||||||
def chsh(self,new=None) :
|
|
||||||
""" Retourne ou change le shell de l'adhérent """
|
|
||||||
if new == None :
|
|
||||||
try : return decode(self._data.get('loginShell',[''])[0])
|
|
||||||
except : return ''
|
|
||||||
else :
|
|
||||||
new = preattr(new)[1]
|
|
||||||
self._set('loginShell',[new])
|
|
||||||
return new
|
|
||||||
|
|
||||||
def cannonical_alias(self,new=None) :
|
def cannonical_alias(self,new=None) :
|
||||||
""" Retourne ou défini l'alias canonique"""
|
""" Retourne ou défini l'alias canonique"""
|
||||||
if new == None :
|
if new == None :
|
||||||
|
@ -1627,30 +1627,31 @@ class club(base_proprietaire) :
|
||||||
annu = annuaires.locaux_clubs()
|
annu = annuaires.locaux_clubs()
|
||||||
return decode(annu.get(self.chbre(),''))
|
return decode(annu.get(self.chbre(),''))
|
||||||
|
|
||||||
def compte(self,create=None) :
|
def compte(self,login=None) :
|
||||||
""" Créé un compte au club sur zamok
|
""" Créé un compte au club sur zamok"""
|
||||||
Si create = 1 créé le compte
|
if login==None :
|
||||||
"""
|
|
||||||
if create==None :
|
|
||||||
return self._data.get('uid',[''])[0]
|
return self._data.get('uid',[''])[0]
|
||||||
|
|
||||||
# Génération du login : club-<nom du club avec uniquement les 26 lettres de l'alphabet>
|
# Génération du login : club-<login fourni>
|
||||||
login = 'club-'
|
login = login.lower()
|
||||||
for l in strip_accents(self.Nom().lower()) :
|
if not sre.match('^club-', login) :
|
||||||
if l in string.letters : login += l
|
login = 'club-' + login
|
||||||
|
for l in login :
|
||||||
|
if l not in string.letters + '-':
|
||||||
|
raise ValueError('Caractère %s interdit dans le login.' % l)
|
||||||
login = preattr(login)[1]
|
login = preattr(login)[1]
|
||||||
|
|
||||||
if 'posixAccount' in self._data['objectClass'] :
|
if 'posixAccount' in self._data['objectClass'] :
|
||||||
if login != self._data['uid'] :
|
if login != self._data['uid'] :
|
||||||
# A déja un compte
|
# A déja un compte
|
||||||
raise ValueError(u"Le club déjà un compte. Login : %s" % self._data['uid'][0])
|
raise ValueError(u"Le club à déjà un compte. Login : %s" % self._data['uid'][0])
|
||||||
else :
|
else :
|
||||||
return login
|
return login
|
||||||
|
|
||||||
if mailexist(login) :
|
if mailexist(login) :
|
||||||
raise ValueError(u"Login existant ou correspondant à un alias mail.",1)
|
raise ValueError(u"Login existant ou correspondant à un alias mail.",1)
|
||||||
|
|
||||||
home = '/home/' + login.replace('-','/')
|
home = '/home/' + login.replace('-','/',1)
|
||||||
if os.path.exists(home) :
|
if os.path.exists(home) :
|
||||||
raise ValueError(u'Création du compte impossible : home existant',1)
|
raise ValueError(u'Création du compte impossible : home existant',1)
|
||||||
|
|
||||||
|
@ -1673,7 +1674,7 @@ class club(base_proprietaire) :
|
||||||
self._locks.append(self.lock('uidNumber',str(uidNumber)))
|
self._locks.append(self.lock('uidNumber',str(uidNumber)))
|
||||||
except :
|
except :
|
||||||
# Quelqu'un nous a piqué l'uid que l'on venait de choisir !
|
# Quelqu'un nous a piqué l'uid que l'on venait de choisir !
|
||||||
return self.compte(1)
|
return self.compte(login)
|
||||||
|
|
||||||
self._data['uidNumber']= [ str(uidNumber) ]
|
self._data['uidNumber']= [ str(uidNumber) ]
|
||||||
self._data['gidNumber']=[ str(config.club_gid) ]
|
self._data['gidNumber']=[ str(config.club_gid) ]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue