if role of user changed, permissions change
This commit is contained in:
@@ -8,7 +8,6 @@ from apps.authorization.models import (
|
||||
Page
|
||||
)
|
||||
from apps.authentication.api.v1.serializers import serializer as auth_serializer
|
||||
from apps.authentication.models import Organization
|
||||
import itertools
|
||||
|
||||
|
||||
@@ -146,9 +145,16 @@ class UserRelationSerializer(serializers.ModelSerializer):
|
||||
def update(self, instance, validated_data):
|
||||
""" update user relation object """
|
||||
|
||||
instance.role = validated_data.get('role', instance.role)
|
||||
# if role of user changed, clear all permissions and set new role permissions for user
|
||||
if not instance.role == validated_data.get('role', instance.role):
|
||||
instance.role = validated_data.get('role', instance.role)
|
||||
instance.permissions.clear()
|
||||
instance.permissions.add(*instance.role.permissions.all())
|
||||
|
||||
instance.organization = validated_data.get('organization', instance.organization)
|
||||
instance.save()
|
||||
instance.permissions.clear()
|
||||
instance.permissions.add(*(validated_data.get('permissions', instance.permissions)))
|
||||
|
||||
if validated_data.get('permissions'):
|
||||
instance.permissions.clear()
|
||||
instance.permissions.add(*(validated_data.get('permissions', instance.permissions)))
|
||||
return instance
|
||||
|
||||
Reference in New Issue
Block a user