From 4b7bd135bbaaf187d255b209d4e5ee1c793d5e1b Mon Sep 17 00:00:00 2001 From: Nicolas Dandrimont Date: Tue, 27 May 2008 00:39:13 +0200 Subject: [PATCH] =?UTF-8?q?Utilisation=20directe=20de=20Crans=5FLDAP=20pou?= =?UTF-8?q?r=20r=C3=A9cup=C3=A9rer=20les=20groupes=20d'un=20utilisateur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ça devrait corriger le bug "tiens, le script Crans ne trouve pas mes droits..." darcs-hash:20080526223913-ffbb2-da7247d005fe602a70f8d59f2e3b3eb27fdf0020.gz --- gestion/user_tests.py | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/gestion/user_tests.py b/gestion/user_tests.py index cab0af7f..0c72e55c 100755 --- a/gestion/user_tests.py +++ b/gestion/user_tests.py @@ -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)