Pour que le bureau puisse modifier les droits non-Nounou

darcs-hash:20070221105746-c992d-18ae3538d0c4c8641ce6dada78eb8553b19e8247.gz
This commit is contained in:
bos 2007-02-21 11:57:46 +01:00
parent 429803a872
commit 96762414c4

View file

@ -19,7 +19,7 @@ Retournent None si pas d'objet trouv
### Rapport de bug automatique ### Rapport de bug automatique
# Destinataires, si vide n'envoi rien # 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 import string, os, sys
from whos import aff from whos import aff
@ -29,7 +29,7 @@ import re
import affich_tools, config import affich_tools, config
from lock import make_lock, remove_lock 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 Adherent, AssociationCrans, Club
from ldap_crans import Machine, MachineFixe, MachineWifi, MachineCrans, BorneWifi 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() droits = db.search("uid=%s" % script_utilisateur)['adherent'][0].droits()
isimprimeur = u"Imprimeur" in droits isimprimeur = u"Imprimeur" in droits
iscontroleur = u'Contrôleur' in droits iscontroleur = u'Contrôleur' in droits
isbureau = u'Bureau' in droits
encoding = sys.stdin.encoding or 'ISO-8859-15' encoding = sys.stdin.encoding or 'ISO-8859-15'
######################################################################### #########################################################################
@ -529,11 +530,18 @@ def set_droits(adher):
for key in droits_possibles: for key in droits_possibles:
actif = key in droits actif = key in droits
if actif: actif = u'on' 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) annul, result = dialog(arg)
if annul: return 1 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 # Traitement
adher.droits(result) adher.droits(result)
@ -1435,6 +1443,8 @@ def modif_adher(adher):
arg += u'"Droits" "Modifier les droits alloués à cet adhérent" ' arg += u'"Droits" "Modifier les droits alloués à cet adhérent" '
if 'posixAccount' in adher._data['objectClass']: if 'posixAccount' in adher._data['objectClass']:
arg += u'"Shell" "Changer le shell de cet utilisateur" ' 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: if isdeconnecteur:
arg += u'"Blackliste" "Modifier la blackliste de cet adhérent" ' arg += u'"Blackliste" "Modifier la blackliste de cet adhérent" '
if isimprimeur: if isimprimeur: