diff --git a/gestion/gest_crans.py b/gestion/gest_crans.py index 98a36e9a..1c24a5c6 100755 --- a/gestion/gest_crans.py +++ b/gestion/gest_crans.py @@ -1360,9 +1360,11 @@ def modif_adher(adher) : arg+= u'"Mail" "Créer un compte ou changer l\'adresse mail de contact" ' arg+= u'"Alias" "Créer ou supprimer un alias mail" ' arg+= u'"Remarque" "Ajouter ou modifer un commentaire" ' - if isadm : - arg+= u'"Droits" "Modifier les droits alloués à cet adhérent" ' - arg+= u'"Shell" "Changer le shell de cet utilisateur" ' + if isadm: + if 'cransAccount' in adher._data['objectClass']: + 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 isdeconnecteur : arg+= u'"Blackliste" "Modifier la blackliste de cet adhérent" ' if isimprimeur : diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index dc449d91..be4425fd 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -1956,6 +1956,10 @@ class adherent(base_proprietaire): def droits(self, droits=None): """ droits est la liste des droits à donner à l'utilisateur """ + + if droits != None and 'cransAccount' not in self._data.get('objectClass', []): + raise EnvironmentError(u'Il faut avoir un compte pour avoir des droits.') + if droits == None: return map(decode, self._data.get('droits', [])) diff --git a/gestion/whos.py b/gestion/whos.py index 4de6f1f1..4fe42570 100755 --- a/gestion/whos.py +++ b/gestion/whos.py @@ -388,7 +388,7 @@ def adher_details(adher) : f += u" Euros\n" # Role dans l'assoce - d = adher.droits() + d = adher.droits() if d : f += coul(u"Droits sur les serveurs : ",'gras') + ', '.join(d) f += u'\n'