mirror of
https://github.com/OCA/server-backend.git
synced 2025-02-18 09:52:42 +02:00
[FIX] base_user_role: ensure that the user's groups are updated when its last role line is removed
This commit is contained in:
@@ -50,7 +50,7 @@ class ResUsersRole(models.Model):
|
|||||||
def unlink(self):
|
def unlink(self):
|
||||||
users = self.mapped('user_ids')
|
users = self.mapped('user_ids')
|
||||||
res = super(ResUsersRole, self).unlink()
|
res = super(ResUsersRole, self).unlink()
|
||||||
users.set_groups_from_roles()
|
users.set_groups_from_roles(force=True)
|
||||||
return res
|
return res
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
@@ -98,5 +98,5 @@ class ResUsersRoleLine(models.Model):
|
|||||||
def unlink(self):
|
def unlink(self):
|
||||||
users = self.mapped('user_id')
|
users = self.mapped('user_id')
|
||||||
res = super(ResUsersRoleLine, self).unlink()
|
res = super(ResUsersRoleLine, self).unlink()
|
||||||
users.set_groups_from_roles()
|
users.set_groups_from_roles(force=True)
|
||||||
return res
|
return res
|
||||||
|
|||||||
@@ -32,12 +32,13 @@ class ResUsers(models.Model):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
@api.multi
|
@api.multi
|
||||||
def set_groups_from_roles(self):
|
def set_groups_from_roles(self, force=False):
|
||||||
"""Set (replace) the groups following the roles defined on users.
|
"""Set (replace) the groups following the roles defined on users.
|
||||||
If no role is defined on the user, its groups are let untouched.
|
If no role is defined on the user, its groups are let untouched unless
|
||||||
|
the `force` parameter is `True`.
|
||||||
"""
|
"""
|
||||||
for user in self:
|
for user in self:
|
||||||
if not user.role_line_ids:
|
if not user.role_line_ids and not force:
|
||||||
continue
|
continue
|
||||||
group_ids = []
|
group_ids = []
|
||||||
role_lines = user.role_line_ids.filtered(
|
role_lines = user.role_line_ids.filtered(
|
||||||
|
|||||||
Reference in New Issue
Block a user