[gest_crans] Possible de désactiver un compte.
* En cas de corruption de mot de passe par exemple
This commit is contained in:
parent
21a4c968b9
commit
7a49298de5
3 changed files with 49 additions and 3 deletions
|
@ -115,6 +115,7 @@ def to_unicode(txt, enc=encoding):
|
|||
return txt.decode("UTF-8")
|
||||
except:
|
||||
# Sinon c'est surement de l'iso
|
||||
# donc on le décode en utf-8 \o/
|
||||
return txt.decode("UTF-8")
|
||||
|
||||
def to_encoding(txt, enc=encoding):
|
||||
|
|
|
@ -645,6 +645,35 @@ def set_droits(adher):
|
|||
dialog(arg)
|
||||
return 1
|
||||
|
||||
def set_actif(adher):
|
||||
u"""
|
||||
Définition de l'état d'activité du compte.
|
||||
"""
|
||||
# Initialisation des différentes checkbox
|
||||
inactif = on_off("0" in adher.active())
|
||||
|
||||
# Construction de la boîte de dialogue
|
||||
texte = []
|
||||
checklist = []
|
||||
|
||||
if state:
|
||||
checklist.append(u'"1" "Compte mail/serveur désactivé" "%s"' % (inactif))
|
||||
|
||||
# Il y a qqch de modifiable, on construit la checklist
|
||||
arg = u'--title "Statut du compte %s" ' % adher.Nom()
|
||||
arg += u'--separate-output '
|
||||
arg += u'--checklist "" 0 0 0 '
|
||||
arg += u' '.join(checklist)
|
||||
|
||||
annul, result = dialog(arg)
|
||||
if annul: return 1
|
||||
|
||||
# Traitement
|
||||
if '1\n' in result:
|
||||
adher.active(False)
|
||||
else:
|
||||
adher.active(True)
|
||||
|
||||
def del_adher(adher):
|
||||
u"""
|
||||
Destruction adhérent
|
||||
|
@ -1664,9 +1693,7 @@ def modif_adher(adher):
|
|||
arg += u'"Administratif" "Précâblage, carte d\'étudiant, études" '
|
||||
if not payant:
|
||||
arg += u'"Connexion" "Changer de type de connexion(gratuit->payant)" '
|
||||
if adher.compte(): changement_compte = u", compte sur zamok"
|
||||
else: changement_compte = u""
|
||||
arg += u'"Etat-civil" "Nom, prénom%s" ' % changement_compte
|
||||
arg += u'"Etat-civil" "Nom, prénom" '
|
||||
if adher.chbre() == 'EXT':
|
||||
arg += u'"Adresse" "Déménagement" '
|
||||
else:
|
||||
|
@ -1681,6 +1708,8 @@ def modif_adher(adher):
|
|||
if isadm or isbureau:
|
||||
if 'cransAccount' in adher._data['objectClass']:
|
||||
arg += u'"Droits" "Modifier les droits alloués à cet adhérent" '
|
||||
if 'shadowAccount' in adher._data['objectClass']:
|
||||
arg += u'"Etat" "Passer le compte à actif ou inactif" '
|
||||
if 'posixAccount' in adher._data['objectClass']:
|
||||
arg += u'"Shell" "Changer le shell de cet utilisateur" '
|
||||
if isdeconnecteur:
|
||||
|
@ -1796,6 +1825,9 @@ def modif_adher(adher):
|
|||
elif res[0] == 'GPGFingerprint':
|
||||
__prompt_input_menu(adher.gpgFingerprint, 'GPG Fingerprint', u"Entrez ou modifier une empreinte GPG que l'adhérent possède (tout abus sera sanctionné).\nPour ajouter une empreinte modifier le dernier de la liste.")
|
||||
|
||||
elif res[0] == "Etat":
|
||||
set_actif(adher)
|
||||
|
||||
elif res[0] == 'Shell':
|
||||
while 1:
|
||||
arg = u'--title "Nouveau shell pour %s" ' % adher.Nom()
|
||||
|
|
|
@ -2453,6 +2453,19 @@ class Adherent(BaseProprietaire):
|
|||
|
||||
return decode(login)
|
||||
|
||||
def active(self, status=None):
|
||||
"""Permet d'activer ou désactiver un compte"""
|
||||
if self.compte() == '':
|
||||
raise EnvironmentError("Can't deactivate non-existing account")
|
||||
if status == None:
|
||||
return not (self._data.get("setExpire", [""])[0] == "0")
|
||||
elif status == False:
|
||||
self._set('setExpire', ["0"])
|
||||
else:
|
||||
self._set('setExpire', [])
|
||||
|
||||
return not (self._data.get("setExpire", [""])[0] == "0")
|
||||
|
||||
def canonical_alias(self, new=None):
|
||||
""" Retourne ou défini l'alias canonique"""
|
||||
if new == None:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue