scripts/gestion/user_tests.py
Stephane Glondu eae0d21f83 [debian/*.py] remove trailing whitespaces
Ignore-this: f62e84c258c847013d307d12acdf489e

darcs-hash:20090309212356-0445d-d8338d06f968f316fcd085446023123be87040f7.gz
2009-03-09 22:23:56 +01:00

57 lines
1.5 KiB
Python
Executable file

#!/usr/bin/env python
# -*- coding: utf-8 -*-
""" Fonctions de tests sur l'utilisateur
Copyright (C) Frédéric Pauget
Licence : GPLv2
"""
import os, commands, pwd
def getuser() :
""" Retourne l'utilisateur lancant les scripts """
user = os.getenv('SUDO_USER')
if not user :
user = pwd.getpwuid(os.getuid())[0]
return user
def groups(login='') :
""" 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 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 u'Bureau' in groups(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 u'Cableur' in groups(login)