Utilisation directe de Crans_LDAP pour récupérer les groupes d'un utilisateur
Ça devrait corriger le bug "tiens, le script Crans ne trouve pas mes droits..." darcs-hash:20080526223913-ffbb2-da7247d005fe602a70f8d59f2e3b3eb27fdf0020.gz
This commit is contained in:
parent
07b1b08e80
commit
4b7bd135bb
1 changed files with 27 additions and 8 deletions
|
@ -17,22 +17,41 @@ def getuser() :
|
|||
return user
|
||||
|
||||
def groups(login='') :
|
||||
""" Retourne liste des groupes (gid) auquels appartient l'utilisateur
|
||||
fourni, si aucun utilisateur est founit prend l'utilisateur loggué """
|
||||
if login == '' : login = getuser()
|
||||
return commands.getoutput('id -G %s' % login).split()
|
||||
""" Retourne la liste des droits qu'a l'utilisateur fourni, si aucun
|
||||
utilisateur n'est fourni prend l'utilisateur loggué """
|
||||
|
||||
if login == '':
|
||||
login = getuser()
|
||||
|
||||
|
||||
if login == 'root':
|
||||
groups = ['0']
|
||||
else:
|
||||
import sys
|
||||
sys.path.append('/usr/scripts/gestion')
|
||||
from ldap_crans import crans_ldap
|
||||
|
||||
try:
|
||||
adh = crans_ldap().search('uid=%s' % login)['adherent'][0]
|
||||
except:
|
||||
groups = []
|
||||
else:
|
||||
groups = adh.droits()
|
||||
|
||||
return groups
|
||||
|
||||
|
||||
def isadm(login='') :
|
||||
""" Retourne True si l'utilisateur est dans le groupe 4 (adm)
|
||||
Si login='', prend l'utilisateur loggué """
|
||||
return '4' in groups(login) or '0' in groups(login)
|
||||
return u'Nounou' in groups(login) or '0' in groups(login)
|
||||
|
||||
def isdeconnecteur(login='') :
|
||||
""" Retourne True si l'utilisateur est dans le groupe 611 (bureau)
|
||||
Si login='', prend l'utilisateur loggué """
|
||||
return isadm(login) or '611' in groups(login)
|
||||
return isadm(login) or u'Bureau' in groups(login)
|
||||
|
||||
def iscableur(login='') :
|
||||
def iscableur(login=''):
|
||||
""" Retourne True si l'utilisateur est dans le groupe 604 (respbat)
|
||||
Si login='', prend l'utilisateur loggué """
|
||||
return isadm(login) or '604' in groups(login)
|
||||
return isadm(login) or u'Cableur' in groups(login)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue