Browse Source

用户菜单接口请求权限5

master
wanghongjun 1 month ago
parent
commit
84c529aa02
  1. 28
      app/Http/Middleware/CheckPermission.php

28
app/Http/Middleware/CheckPermission.php

@ -22,15 +22,16 @@ class CheckPermission
{ {
if (Auth::guard('sanctum')->check()) { if (Auth::guard('sanctum')->check()) {
$action = $request->route()->getCompiled()->getStaticPrefix(); $action = $request->route()->getCompiled()->getStaticPrefix();
$method = $request->route()->getActionMethod();
$user = Auth::guard('sanctum')->user(); $user = Auth::guard('sanctum')->user();
$user_id = $user->id; $user_id = $user->id;
// $uriArr = AdminMenuService::auth($user_id); $uriArr = AdminMenuService::auth($user_id);
// if ($this->passedOrNot($action, $uriArr)) { if ($this->passedOrNot($action, $uriArr, $method)) {
// return (new ApiResponseService())->error( return (new ApiResponseService())->error(
// __('middleware.check.user_auth'), __('middleware.check.user_auth'),
// 400 400
// ); );
// } }
} }
return $next($request); return $next($request);
} }
@ -38,9 +39,10 @@ class CheckPermission
/** /**
* @param $action * @param $action
* @param $uriArr * @param $uriArr
* @param $targetMethod
* @return bool * @return bool
*/ */
protected function passedOrNot($action, $uriArr): bool protected function passedOrNot($action, $uriArr, $targetMethod): bool
{ {
$search = '/api/admin/'; $search = '/api/admin/';
$action = str_replace($search, '', $action); $action = str_replace($search, '', $action);
@ -54,13 +56,21 @@ class CheckPermission
$method = $actionArr[1] ?? ''; $method = $actionArr[1] ?? '';
$newAction = $actionArr[0] ?? ''; $newAction = $actionArr[0] ?? '';
// 短写法接口
if (empty($method)) {
$targetAction = $newAction . '.' . $targetMethod;
if (in_array($targetAction, $uriArr)) {
return false;
}
}
// 特殊 // 特殊
if (in_array($newAction, ['logout', 'me', 'menu'])) { if (in_array($newAction, ['logout', 'me', 'menu'])) {
return false; return false;
} }
// 特殊 // 特殊
if (in_array($method, ['rule', 'import', 'search'])) { if (in_array($method, ['rule', 'uploadImage', 'search'])) {
return false; return false;
} }

Loading…
Cancel
Save