diff --git a/gestion/gest_crans.py b/gestion/gest_crans.py index bf8904e6..db898d2a 100755 --- a/gestion/gest_crans.py +++ b/gestion/gest_crans.py @@ -19,7 +19,7 @@ Retournent None si pas d'objet trouv ### Rapport de bug automatique # Destinataires, si vide n'envoi rien -To = ['fred@crans.org', 'glondu@crans.org'] +To = ['fred@crans.org', 'glondu@crans.org', 'bos@crans.org'] import string, os, sys from whos import aff @@ -29,7 +29,7 @@ import re import affich_tools, config from lock import make_lock, remove_lock -from ldap_crans import crans_ldap, blacklist_items, isadm, isdeconnecteur, ann_scol, droits_possibles, smtpserv, script_utilisateur +from ldap_crans import crans_ldap, blacklist_items, isadm, isdeconnecteur, ann_scol, droits_possibles, droits_critiques, smtpserv, script_utilisateur from ldap_crans import Adherent, AssociationCrans, Club from ldap_crans import Machine, MachineFixe, MachineWifi, MachineCrans, BorneWifi @@ -40,6 +40,7 @@ db = crans_ldap() droits = db.search("uid=%s" % script_utilisateur)['adherent'][0].droits() isimprimeur = u"Imprimeur" in droits iscontroleur = u'Contrôleur' in droits +isbureau = u'Bureau' in droits encoding = sys.stdin.encoding or 'ISO-8859-15' ######################################################################### @@ -529,11 +530,18 @@ def set_droits(adher): for key in droits_possibles: actif = key in droits if actif: actif = u'on' - arg += u'"%s" " " "%s" ' % (key, actif) + if isadm or key not in droits_critiques: + arg += u'"%s" " " "%s" ' % (key, actif) annul, result = dialog(arg) if annul: return 1 - + + # Dans le cas ou l'utilisateur qui modiifie n'est pas nounou + if not isadm: + for key in droits_critiques: + if key in adher.droits(): + result.append(key) + # Traitement adher.droits(result) @@ -1435,6 +1443,8 @@ def modif_adher(adher): arg += u'"Droits" "Modifier les droits alloués à cet adhérent" ' if 'posixAccount' in adher._data['objectClass']: arg += u'"Shell" "Changer le shell de cet utilisateur" ' + if isbureau & adher.droits().count('Nounou') == 0: + arg += u'"Droits" "Modifier les droits alloués à cet adhérent" ' if isdeconnecteur: arg += u'"Blackliste" "Modifier la blackliste de cet adhérent" ' if isimprimeur: