Skip to content

Commit 29a44ab

Browse files
committed
Accommodate the UserSerializer as well
1 parent 1afc1d4 commit 29a44ab

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

dojo/api_v2/serializers.py

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -536,13 +536,13 @@ def to_representation(self, instance):
536536
return ret
537537

538538
def update(self, instance, validated_data):
539+
permissions_in_payload = None
539540
new_configuration_permissions = None
540541
if (
541542
"user_permissions" in validated_data
542543
): # This field was renamed from "configuration_permissions" in the meantime
543-
new_configuration_permissions = set(
544-
validated_data.pop("user_permissions"),
545-
)
544+
permissions_in_payload = validated_data.pop("user_permissions")
545+
new_configuration_permissions = set(permissions_in_payload)
546546

547547
instance = super().update(instance, validated_data)
548548

@@ -563,6 +563,10 @@ def update(self, instance, validated_data):
563563
)
564564
instance.user_permissions.set(new_permissions)
565565

566+
# Clear all configuration permissions if an empty list is provided
567+
if isinstance(permissions_in_payload, list) and len(permissions_in_payload) == 0:
568+
instance.user_permissions.clear()
569+
566570
return instance
567571

568572
def create(self, validated_data):

0 commit comments

Comments
 (0)