provisionning: protect against missing role (#52482)

This commit is contained in:
Emmanuel Cazenave 2021-03-30 11:54:04 +02:00
parent e4ef124480
commit 0132005608
1 changed files with 5 additions and 3 deletions

View File

@ -157,9 +157,11 @@ class Provisionning(threading.local):
Through = Role.members.through
qs = Through.objects.filter(role__members__in=users).values_list('user_id', 'role_id')
for u_id, r_id in qs:
user_roles.setdefault(u_id, set()).add(roles[r_id])
for p_id in parents.get(r_id, []):
user_roles[u_id].add(roles[p_id])
# unkwon r_id can happen
if r_id in roles:
user_roles.setdefault(u_id, set()).add(roles[r_id])
for p_id in parents.get(r_id, []):
user_roles[u_id].add(roles[p_id])
if roles_with_attributes:
for ou, users in ous.items():