• Jérome Perrin's avatar
    ERP5Security,erp5: simplify EncryptedPasswordMixin.setPassword · b7a60478
    Jérome Perrin authored
    For historical reasons, EncryptedPasswordMixin.setPassword was public
    and did its own security checks, this was the case since 7d0882ef (
    setPassword have to do explicit security checks…, 2007-11-12), this was
    because we wanted to support cases where user can edit the login ("Edit
    portal content" permission), but not changed the password ("Set own
    password" permission).
    
    Also, we wanted to support the case where login is edited through a view
    form, in that case we have a my_password field that is empty and we
    don't want to set the password to None in that case.
    
    For these two reasons the API to set password was very complex and
    behaving differently from other accessors: usually setSomething(None)
    just set something to None, ie. "unset" something, but for passwords it
    was not the case. Also we had to introduce _forceSetPassword method,
    which sets the password without security checks, so that it can be
    called from unrestricted code for cases...
    b7a60478
mixin.erp5.EncryptedPasswordMixin.py 5.63 KB