1+ from abc import abstractmethod
12from datetime import datetime
23from typing import Literal , Optional , Union
34from 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