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