@@ -64,10 +64,14 @@ async def authorized_userid(request: web.Request) -> Optional[str]:
6464 return user_id
6565
6666
67- async def permits (request : web .Request , permission : Union [str , enum .Enum ],
68- context : Any = None ) -> bool :
67+ def _validate_permission (permission : Union [str , enum .Enum ]) -> None :
6968 if not permission or not isinstance (permission , (str , enum .Enum )):
7069 raise ValueError ("Permission should be a str or enum value." )
70+
71+
72+ async def permits (request : web .Request , permission : Union [str , enum .Enum ],
73+ context : Any = None ) -> bool :
74+ _validate_permission (permission )
7175 identity_policy : _AIP = request .config_dict .get (IDENTITY_KEY )
7276 autz_policy : _AAP = request .config_dict .get (AUTZ_KEY )
7377 if identity_policy is None or autz_policy is None :
@@ -104,13 +108,14 @@ async def check_authorized(request: web.Request) -> str:
104108
105109async def check_permission (request : web .Request , permission : Union [str , enum .Enum ],
106110 context : Any = None ) -> None :
107- """Checker that passes only to authoraised users with given permission.
111+ """Checker that passes only to authorized users with given permission.
108112
109113 If user is not authorized - raises HTTPUnauthorized,
110114 if user is authorized and does not have permission -
111115 raises HTTPForbidden.
112116 """
113117
118+ _validate_permission (permission )
114119 await check_authorized (request )
115120 allowed = await permits (request , permission , context )
116121 if not allowed :
0 commit comments