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()
|
cherrypy.session['LDAP'] = CransLdap()
|
||||||
LDAP = cherrypy.session['LDAP']
|
LDAP = cherrypy.session['LDAP']
|
||||||
login_club = None
|
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:
|
if len(login.split('@')) > 1:
|
||||||
|
# s'il y a un @, c'est un club
|
||||||
login_club = login.split('@')[1]
|
login_club = login.split('@')[1]
|
||||||
login = login.split('@')[0]
|
login = login.split('@')[0]
|
||||||
if not login.replace("-","").isalpha():
|
if not login.replace("-","").isalpha():
|
||||||
|
# on n'a le droit qu'aux lettres et aux tirets
|
||||||
raise Exception, "Bad password"
|
raise Exception, "Bad password"
|
||||||
adh = LDAP.search('uid=' + login)['adherent'][0]
|
adh = LDAP.search('uid=' + login)['adherent'][0]
|
||||||
mdp_ok = adh.checkPassword(password)
|
mdp_ok = adh.checkPassword(password)
|
||||||
if not mdp_ok and len(password.split(":::")) == 2 and options.magicPasswd:
|
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]
|
magic_mdp = password.split(":::")[1]
|
||||||
rech = LDAP.search("uid=" + magic_login)['adherent']
|
rech = LDAP.search("uid=" + magic_login)['adherent']
|
||||||
if rech and "Nounou" in rech[0].droits():
|
if rech and "Nounou" in rech[0].droits():
|
||||||
|
@ -148,8 +157,14 @@ def verifLogin(login = '', password = ''):
|
||||||
mdp_ok = True
|
mdp_ok = True
|
||||||
if mdp_ok:
|
if mdp_ok:
|
||||||
if login_club != None:
|
if login_club != None:
|
||||||
club = LDAP.search('uid=%s'%login_club)['club'][0]
|
recherche_club = LDAP.search('uid=%s'%login_club)['club']
|
||||||
if adh.id() not in club._data['responsable']:
|
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"
|
raise Exception, "Pas respo club"
|
||||||
cherrypy.session['uid'] = login_club
|
cherrypy.session['uid'] = login_club
|
||||||
cherrypy.session['droits'] = []
|
cherrypy.session['droits'] = []
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue