mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-01-20 07:12:58 -05:00
all
This commit is contained in:
@@ -259,8 +259,18 @@ def apply_lti_roles(user, platform, lti_roles, rbac_group):
|
|||||||
if role_group:
|
if role_group:
|
||||||
group_role = get_higher_privilege_group(group_role, role_group)
|
group_role = get_higher_privilege_group(group_role, role_group)
|
||||||
|
|
||||||
# Create or update RBAC membership
|
# Create or update RBAC membership (defensive: handle multiple memberships)
|
||||||
membership, created = RBACMembership.objects.update_or_create(user=user, rbac_group=rbac_group, defaults={'role': group_role})
|
memberships = RBACMembership.objects.filter(user=user, rbac_group=rbac_group)
|
||||||
|
|
||||||
|
if memberships.exists():
|
||||||
|
# Update all existing memberships to the correct role
|
||||||
|
for membership in memberships:
|
||||||
|
if membership.role != group_role:
|
||||||
|
membership.role = group_role
|
||||||
|
membership.save()
|
||||||
|
else:
|
||||||
|
# No existing membership, create new one
|
||||||
|
RBACMembership.objects.create(user=user, rbac_group=rbac_group, role=group_role)
|
||||||
|
|
||||||
return global_role, group_role
|
return global_role, group_role
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user