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:
Nicolas Dandrimont 2008-05-27 00:39:13 +02:00
parent 07b1b08e80
commit 4b7bd135bb

View file

@ -17,22 +17,41 @@ def getuser() :
return user return user
def groups(login='') : def groups(login='') :
""" Retourne liste des groupes (gid) auquels appartient l'utilisateur """ Retourne la liste des droits qu'a l'utilisateur fourni, si aucun
fourni, si aucun utilisateur est founit prend l'utilisateur loggué """ utilisateur n'est fourni prend l'utilisateur loggué """
if login == '' : login = getuser()
return commands.getoutput('id -G %s' % login).split() 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='') : def isadm(login='') :
""" Retourne True si l'utilisateur est dans le groupe 4 (adm) """ Retourne True si l'utilisateur est dans le groupe 4 (adm)
Si login='', prend l'utilisateur loggué """ 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='') : def isdeconnecteur(login='') :
""" Retourne True si l'utilisateur est dans le groupe 611 (bureau) """ Retourne True si l'utilisateur est dans le groupe 611 (bureau)
Si login='', prend l'utilisateur loggué """ 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) """ Retourne True si l'utilisateur est dans le groupe 604 (respbat)
Si login='', prend l'utilisateur loggué """ Si login='', prend l'utilisateur loggué """
return isadm(login) or '604' in groups(login) return isadm(login) or u'Cableur' in groups(login)