Commit 4c3fe2bb authored by Fardale's avatar Fardale Committed by Hamza Dely

[upgrade_ancien] demande la raison aux vieux

parent f43e20ec
......@@ -12,17 +12,17 @@ import os, commands, sys, pwd
import gestion.mail as mail_module
import gestion.config as config
def upgrade(user, ldap, check=True):
def upgrade(user, ldap, answer, check=True):
"""Procède à l'upgrade des droits"""
ldap_conn = ldap
ldap_user = ldap_conn.search(u'uid=%s' % ldap_conn.current_login, mode='rw')
ldap_user = ldap_user[0]
if check and not bool('Ancien' in ldap_conn.droits):
mail_notif("l'utilisateur n'a pas les droits ancien !", user)
mail_notif("l'utilisateur n'a pas les droits ancien !", user, answer)
print("Vous n'avez pas les droits anciens")
return
if check and bool('Nounou' in ldap_conn.droits):
mail_notif("tocard qui a déjà les droits nounou ", user)
mail_notif("tocard qui a déjà les droits nounou ", user, answer)
print("Vous êtes déjà nounou !")
return
# C'est respbats qui fait la modif
......@@ -32,7 +32,7 @@ def upgrade(user, ldap, check=True):
ldap_user['droits'].append(u'Nounou')
ldap_user.history_gen()
ldap_user.save()
mail_notif("", user, success=True)
mail_notif("", user, answer, success=True)
print("Droits nounou restaurés")
return
......@@ -46,17 +46,30 @@ def question():
raise EnvironmentError
return
def mail_notif(reason, user, success=False):
def commentaire():
"""Demande une raison de vouloir retrouver des droits root"""
answer = None
while answer is None:
try:
print("Pourquoi voulez retrouver vos droits ?")
answer = raw_input()
except EOFError:
pass
return answer
def mail_notif(reason, user, answer, success=False):
# Génération d'un mail
From = 'roots@crans.org'
To = 'roots@crans.org'
To = 'fardale@crans.org'
if success:
mail = """From: Root <%s>
To: %s
Subject: Restauration des droits nounou par %s
L'utilisateur %s a restauré avec succès ses droits nounous.
""" % (From, To, user.encode(config.out_encoding), user.encode(config.out_encoding))
Voici la raison donnée : %s
""" % (From, To, user.encode(config.out_encoding), user.encode(config.out_encoding), answer)
else:
mail = """From: Root <%s>
To: %s
......@@ -64,7 +77,9 @@ Subject: Tentative de restauration des droits nounou par %s !
L'utilisateur %s a tenté d'utiliser le script de restauration des droits nounou.
La tentative n'a pas abouti : %s
""" % (From, To, user.encode(config.out_encoding), user.encode(config.out_encoding), reason)
Voici la raison donnée : %s
""" % (From, To, user.encode(config.out_encoding), user.encode(config.out_encoding), reason, answer)
# Envoi mail
with mail_module.ServerConnection() as conn:
......@@ -73,14 +88,18 @@ La tentative n'a pas abouti : %s
if __name__=="__main__":
ldap_conn = shortcuts.lc_ldap_admin()
user = ldap_conn.current_login
answer = commentaire()
if user:
try:
result = question()
except:
mail_notif("echec aux questions secretes", user)
except (EnvironmentError,EOFError):
mail_notif("echec aux questions secretes", user, answer)
print("Echec aux questions secrètes, l'incident a été reporté")
sys.exit(1)
upgrade(user, ldap=ldap_conn)
except Exception as e:
mail_notif("Exceptipon non rattrapé : %s" % e, user, answer)
print("Une erreur est survenu")
upgrade(user, ldap_conn, answer)
else:
mail_notif("évaluation de l'user impossible, abandon", user)
mail_notif("évaluation de l'user impossible, abandon", user, answer)
print("Evaluation de l'user impossible, abandon")
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment