Mesures speciales pour "club-crans" : les membres du bureau et les
nounous peuvent s'y connecter darcs-hash:20071019142940-c992d-37c2949a89d849d3314e470eed6ccc36d01f52c2.gz
This commit is contained in:
parent
0fa5836a44
commit
e96905bdeb
1 changed files with 18 additions and 3 deletions
|
@ -131,15 +131,24 @@ def verifLogin(login = '', password = ''):
|
|||
cherrypy.session['LDAP'] = CransLdap()
|
||||
LDAP = cherrypy.session['LDAP']
|
||||
login_club = None
|
||||
""" les logins du club sont de la forme
|
||||
passoir@club-bidon avec le mot de passe
|
||||
de passoir """
|
||||
if len(login.split('@')) > 1:
|
||||
# s'il y a un @, c'est un club
|
||||
login_club = login.split('@')[1]
|
||||
login = login.split('@')[0]
|
||||
if not login.replace("-","").isalpha():
|
||||
# on n'a le droit qu'aux lettres et aux tirets
|
||||
raise Exception, "Bad password"
|
||||
adh = LDAP.search('uid=' + login)['adherent'][0]
|
||||
mdp_ok = adh.checkPassword(password)
|
||||
if not mdp_ok and len(password.split(":::")) == 2 and options.magicPasswd:
|
||||
magic_login = password.split(":::")[0]
|
||||
# en debogage, l'option magic password
|
||||
# permet de simuler l'identite de n'importe qui
|
||||
# on met login-nounou:::login-simule et le mot
|
||||
# de passe de la nounou
|
||||
Magic_login = password.split(":::")[0]
|
||||
magic_mdp = password.split(":::")[1]
|
||||
rech = LDAP.search("uid=" + magic_login)['adherent']
|
||||
if rech and "Nounou" in rech[0].droits():
|
||||
|
@ -148,8 +157,14 @@ def verifLogin(login = '', password = ''):
|
|||
mdp_ok = True
|
||||
if mdp_ok:
|
||||
if login_club != None:
|
||||
club = LDAP.search('uid=%s'%login_club)['club'][0]
|
||||
if adh.id() not in club._data['responsable']:
|
||||
recherche_club = LDAP.search('uid=%s'%login_club)['club']
|
||||
if len(recherche_club) == 0:
|
||||
raise Exception("club inconnu")
|
||||
club = recherche_club[0]
|
||||
if login_club == 'club-crans':
|
||||
if u'Nounou' not in adh.droits() and u'Bureau' not in adh.droits():
|
||||
raise Exception, "Pas respo bureau ou nounou"
|
||||
elif adh.id() not in club._data['responsable']:
|
||||
raise Exception, "Pas respo club"
|
||||
cherrypy.session['uid'] = login_club
|
||||
cherrypy.session['droits'] = []
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue