diff --git a/apps/authorization/api/v1/serializers.py b/apps/authorization/api/v1/serializers.py index 9e4d51d..e332f6d 100644 --- a/apps/authorization/api/v1/serializers.py +++ b/apps/authorization/api/v1/serializers.py @@ -20,7 +20,8 @@ class PageSerializer(serializers.ModelSerializer): fields = [ 'id', 'name', - 'code' + 'code', + 'is_active' ] def to_representation(self, instance): @@ -44,7 +45,8 @@ class PermissionSerializer(serializers.ModelSerializer): 'name', 'description', 'category', - 'page' + 'page', + 'is_active' ] def to_representation(self, instance): @@ -93,7 +95,7 @@ class RoleSerializer(serializers.ModelSerializer): representation = super().to_representation(instance) representation['type'] = auth_serializer.OrganizationTypeSerializer(instance.type).data if instance.permissions: # noqa - permissions = instance.permissions.all() + permissions = instance.permissions.filter(is_active=True) representation['permissions'] = PermissionSerializer().permissions_structure_output(permissions) return representation @@ -137,7 +139,7 @@ class UserRelationSerializer(serializers.ModelSerializer): if instance.permissions: # noqa # set permissions by a default structure like: # 'page permission':[element permissions] - permissions = instance.permissions.all() + permissions = instance.permissions.filter(is_active=True) representation['permissions'] = PermissionSerializer().permissions_structure_output(permissions) return representation diff --git a/apps/authorization/models.py b/apps/authorization/models.py index 65f2ae1..bd96777 100644 --- a/apps/authorization/models.py +++ b/apps/authorization/models.py @@ -10,6 +10,7 @@ class Page(BaseModel): code = models.CharField(max_length=100, unique=True) name = models.CharField(max_length=255) + is_active = models.BooleanField(default=True) def __str__(self): return f'{self.name}-{self.code}' @@ -41,6 +42,7 @@ class Permissions(BaseModel): related_name='permission_page', null=True ) + is_active = models.BooleanField(default=True) def __str__(self): return f'{self.name}-{self.description}'