scripts/gestion/chsh.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

49 lines
1.1 KiB
Python
Executable file

#! /usr/bin/env python
# -*- coding: utf-8 -*-
""" Changement du shell de l'utilisateur lancant le programme
DOIT ETRE LANCE PAR SUDO
Copyright (C) Frédéric Pauget
Licence : GPLv2
"""
import os, sys
from affich_tools import prompt
from ldap_crans import crans_ldap
db = crans_ldap()
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')
# 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 :
print 'Erreur fatale lors de la consultation de la base LDAP'
sys.exit(3)
adh = adh[0]
shell = prompt(u'Nouveau shell :')
fd=open('/etc/shells')
lines=fd.readlines()
fd.close()
if not shell in map(str.strip,lines) :
print 'Shell invalide. Les shells valides sont :'
print ''.join(lines[1:])
sys.exit(4)
adh.chsh(shell)
adh.save()
# A cause de nscd
print "La modification sera prise en compte dans l'heure suivante."