Skip to content

Commit 69b29f8

Browse files
committed
Make BaseRolePermissionSerializer._get_role abstract
1 parent 4b97ee4 commit 69b29f8

File tree

1 file changed

+7
-2
lines changed

1 file changed

+7
-2
lines changed

api/serializers.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
from abc import abstractmethod
12
from datetime import datetime
23
from typing import Literal, Optional, Union
34
from uuid import UUID
@@ -112,14 +113,15 @@ class BaseRolePermissionSerializer(serializers.Serializer):
112113
role = serializers.SerializerMethodField()
113114
permissions = serializers.SerializerMethodField()
114115

116+
@abstractmethod
115117
def _get_role(self, obj: Union[User, TigaUser]) -> Role:
116-
return obj.get_role()
118+
raise NotImplementedError
117119

118120
def get_role(self, obj: Union[User, TigaUser]) -> Role:
119121
if isinstance(obj, User):
120122
obj = UserStat.objects.filter(user=obj).first()
121123
if not obj:
122-
return TigaUser().get_role()
124+
return self._get_role(obj=TigaUser())
123125
return self._get_role(obj=obj)
124126

125127
@extend_schema_field(PermissionsSerializer)
@@ -139,6 +141,9 @@ class UserPermissionSerializer(serializers.Serializer):
139141
class GeneralPermissionSerializer(BaseRolePermissionSerializer):
140142
is_staff = serializers.BooleanField()
141143

144+
def _get_role(self, obj: Union[User, TigaUser]) -> Role:
145+
return obj.get_role()
146+
142147
class CountryPermissionSerializer(BaseRolePermissionSerializer):
143148
def __init__(self, *args, **kwargs):
144149
self.country = kwargs.pop('country', None)

0 commit comments

Comments
 (0)