File tree Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Expand file tree Collapse file tree 1 file changed +10
-1
lines changed Original file line number Diff line number Diff line change 3
3
from fastapi import Depends , Request
4
4
5
5
from backend .common .enums import MethodType , StatusType
6
+ from backend .common .exception import errors
6
7
from backend .common .exception .errors import AuthorizationError , TokenError
8
+ from backend .common .log import log
7
9
from backend .common .security .jwt import DependsJwtAuth
8
10
from backend .core .conf import settings
9
- from backend .plugin . casbin . utils .rbac import casbin_verify
11
+ from backend .utils .import_parse import import_module_cached
10
12
11
13
12
14
async def rbac_verify (request : Request , _token : str = DependsJwtAuth ) -> None :
@@ -67,6 +69,13 @@ async def rbac_verify(request: Request, _token: str = DependsJwtAuth) -> None:
67
69
if path_auth_perm not in allow_perms :
68
70
raise AuthorizationError
69
71
else :
72
+ try :
73
+ casbin_rbac = import_module_cached ('backend.plugin.casbin.utils.rbac' )
74
+ casbin_verify = getattr (casbin_rbac , 'casbin_verify' )
75
+ except (ImportError , AttributeError ) as e :
76
+ log .error (f'正在通过 casbin 执行 RBAC 权限校验,但此插件不存在: { e } ' )
77
+ raise errors .ServerError (msg = '权限校验失败,请联系系统管理员' )
78
+
70
79
await casbin_verify (request )
71
80
72
81
You can’t perform that action at this time.
0 commit comments