mirror of
https://github.com/mediacms-io/mediacms.git
synced 2026-01-20 07:12:58 -05:00
wtv
This commit is contained in:
@@ -263,14 +263,23 @@ def apply_lti_roles(user, platform, lti_roles, rbac_group):
|
|||||||
memberships = RBACMembership.objects.filter(user=user, rbac_group=rbac_group)
|
memberships = RBACMembership.objects.filter(user=user, rbac_group=rbac_group)
|
||||||
|
|
||||||
if memberships.exists():
|
if memberships.exists():
|
||||||
# Update all existing memberships to the correct role
|
# Check if any membership already has the correct role
|
||||||
for membership in memberships:
|
if not memberships.filter(role=group_role).exists():
|
||||||
if membership.role != group_role:
|
# None have the correct role, update the first one
|
||||||
membership.role = group_role
|
first_membership = memberships.first()
|
||||||
membership.save()
|
first_membership.role = group_role
|
||||||
|
try:
|
||||||
|
first_membership.save()
|
||||||
|
except Exception:
|
||||||
|
# Save failed (e.g., uniqueness constraint), skip
|
||||||
|
pass
|
||||||
else:
|
else:
|
||||||
# No existing membership, create new one
|
# No existing membership, create new one
|
||||||
RBACMembership.objects.create(user=user, rbac_group=rbac_group, role=group_role)
|
try:
|
||||||
|
RBACMembership.objects.create(user=user, rbac_group=rbac_group, role=group_role)
|
||||||
|
except Exception:
|
||||||
|
# Creation failed (e.g., uniqueness constraint), skip
|
||||||
|
pass
|
||||||
|
|
||||||
return global_role, group_role
|
return global_role, group_role
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user