Quand mode='rw' mais que l'objet n'est pas modifiable, on fallback en ro

This commit is contained in:
Pierre-Elliott Bécue 2015-02-14 14:12:48 +01:00
parent fd85efa178
commit d0619adcf6

View file

@ -130,7 +130,7 @@ class CransLdapObject(object):
"""
Retourne les droits courant de l'utilisateur sur l'objet.
Ces droits sont égaux aux droits de l'utilisateur plus :
* soi si le dn de l'utilisateur est égale au dn de l'objet
* soit si le dn de l'utilisateur est égal au dn de l'objet
* parent si le dn de l'utilisateur est préfixe du dn de l'objet
la méthode est en anglais pour ne pas interférer avec les attributs droits et jinja2
les méthodes de l'objet et ses attributs sont appelé de la même manière
@ -185,7 +185,9 @@ class CransLdapObject(object):
if self.mode in ['w', 'rw']:
if not self.may_be(variables.modified):
raise EnvironmentError("Vous n'avez pas le droit de modifier cet objet. DEB(dn=%s,user=%s,rights=%s)" % (dn, self.conn.dn, self.rights()))
# On ne peut pas modifier l'objet, on droppe silencieusement ici, et
# on fera un raise quand la tentative de modif aura effectivement lieu.
self.mode = 'ro'
self.update_attribs()
@ -959,7 +961,6 @@ class proprio(CransLdapObject):
else:
raise EnvironmentError("L'adhérent n'a pas de compte crans")
def solde(self, operation, comment):
self['historique'].append(comment)
if self['solde']: