@@ -28,10 +28,11 @@ def get_user(self, username: str) -> Optional[CurrentUserSchema]:
2828 with db_session_scope () as session :
2929 user : models .AuthUser = (
3030 session .query (models .AuthUser )
31- .filter (models .AuthUser .username == username )
32- .one_or_none ()
31+ .filter (models .AuthUser .username == username )
32+ .one_or_none ()
3333 )
34- return CurrentUserSchema .from_orm (user ) if user is not None else None
34+ return CurrentUserSchema .from_orm (
35+ user ) if user is not None else None
3536
3637 def authenticate_request (self , request : Request ):
3738 authorization_header = request .headers .get ("authorization" )
@@ -68,7 +69,8 @@ def get_climsoft_role_for_username(self, username: str):
6869 role = None
6970
7071 try :
71- user_role = session .query (climsoft_models .ClimsoftUser ).filter_by (userName = username ).one_or_none ()
72+ user_role = session .query (climsoft_models .ClimsoftUser ).filter_by (
73+ userName = username ).one_or_none ()
7274 role = user_role .userRole
7375 except Exception as e :
7476 pass
@@ -77,6 +79,11 @@ def get_climsoft_role_for_username(self, username: str):
7779
7880 return role
7981
82+ def has_required_role (self , username , required_role ):
83+ return self .get_climsoft_role_for_username (
84+ username
85+ ) in required_role
86+
8087 async def __call__ (self , scope : Scope , receive : Receive , send : Send ):
8188 def extract_resource_from_path (string , sep , start , end ):
8289 string = string .split (sep )
@@ -98,14 +105,9 @@ def extract_resource_from_path(string, sep, start, end):
98105 request .method .lower ()
99106 )
100107
101- has_required_role = (
102- self .get_climsoft_role_for_username (user .username ) in required_role
103- )
104- if (not required_role ) or has_required_role :
108+ if (not required_role ) or self .has_required_role (
109+ user .username , required_role
110+ ):
105111 await self .app (scope , receive , send )
106112 else :
107113 raise HTTPException (status_code = 403 )
108-
109-
110-
111-
0 commit comments