Lc_ldap pour chsh
This commit is contained in:
parent
7e072aca3c
commit
9485236f2f
1 changed files with 16 additions and 15 deletions
|
@ -10,29 +10,28 @@
|
|||
import os, sys
|
||||
|
||||
from gestion.affich_tools import prompt
|
||||
from gestion.ldap_crans import crans_ldap
|
||||
|
||||
db = crans_ldap()
|
||||
from lc_ldap import shortcuts
|
||||
|
||||
ldap = shortcuts.lc_ldap_admin()
|
||||
uid = os.getenv('SUDO_UID')
|
||||
if not uid :
|
||||
print "Impossible de déterminer l'utilisateur"
|
||||
sys.exit(1)
|
||||
|
||||
s = db.search('uidNumber=%s' % os.getenv('SUDO_UID'),'w')
|
||||
adh = ldap.search(u'uidNumber=%s' % uid,mode='w')
|
||||
|
||||
# On vérifie que c'est pas un club
|
||||
club = s['club']
|
||||
if len(club) == 1 :
|
||||
print 'Pas de changement de shell pour les clubs'
|
||||
sys.exit(2)
|
||||
|
||||
# On regarde si on a des résultats dans les adhérents
|
||||
adh = s['adherent']
|
||||
if len(adh) != 1 :
|
||||
try:
|
||||
adh = adh[0]
|
||||
except IndexError:
|
||||
print 'Erreur fatale lors de la consultation de la base LDAP'
|
||||
sys.exit(3)
|
||||
|
||||
adh = adh[0]
|
||||
# On vérifie que c'est pas un club
|
||||
if unicode(adh.ldap_name)!=u"adherent":
|
||||
print 'Pas de changement de shell pour les clubs'
|
||||
sys.exit(2)
|
||||
|
||||
shell = prompt(u'Nouveau shell :')
|
||||
fd=open('/etc/shells')
|
||||
lines=fd.readlines()
|
||||
|
@ -45,7 +44,9 @@ if not shell in shells:
|
|||
print '\n'.join(shells)
|
||||
sys.exit(4)
|
||||
|
||||
adh.chsh(shell)
|
||||
adh.save()
|
||||
with adh as ad:
|
||||
ad['loginShell']=shell
|
||||
ad.save()
|
||||
|
||||
# A cause de nscd
|
||||
print "La modification sera prise en compte dans l'heure suivante."
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue