11
11
12
12
from commons .data_access_layer .cosmos_db import CosmosDBDao
13
13
from commons .data_access_layer .database import EventContext
14
- from time_tracker_api .security import current_user_id , current_user_tenant_id
14
+ from time_tracker_api .security import current_user_id , current_user_tenant_id , current_role_user , roles
15
15
16
16
17
17
class CRUDDao (abc .ABC ):
@@ -37,10 +37,11 @@ def delete(self, id):
37
37
38
38
39
39
class ApiEventContext (EventContext ):
40
- def __init__ (self , container_id : str , action : str , description : str = None ,
41
- user_id : str = None , tenant_id : str = None , session_id : str = None ):
40
+ def __init__ (self , container_id : str , action : str , description : str = None , user_id : str = None ,
41
+ tenant_id : str = None , session_id : str = None , user_role : str = None ):
42
42
super (ApiEventContext , self ).__init__ (container_id , action , description )
43
43
self ._user_id = user_id
44
+ self ._user_role = user_role
44
45
self ._tenant_id = tenant_id
45
46
self ._session_id = session_id
46
47
@@ -50,6 +51,10 @@ def user_id(self) -> str:
50
51
self ._user_id = current_user_id ()
51
52
return self ._user_id
52
53
54
+ @property
55
+ def user_role (self ) -> str :
56
+ return self ._user_role if self ._user_role else current_role_user ()
57
+
53
58
@property
54
59
def tenant_id (self ) -> str :
55
60
if self ._tenant_id is None :
@@ -60,6 +65,10 @@ def tenant_id(self) -> str:
60
65
def session_id (self ) -> str :
61
66
return self ._session_id
62
67
68
+ @property
69
+ def is_admin (self ):
70
+ return True if self .user_role == roles .get ("admin" ).get ("name" ) else False
71
+
63
72
64
73
class APICosmosDBDao (CosmosDBDao ):
65
74
def create_event_context (self , action : str = None , description : str = None ):
0 commit comments