From 3a9162cc17a6099d809b1c19d1f2b8c044341bdd Mon Sep 17 00:00:00 2001 From: walkor Date: Mon, 12 Dec 2022 15:33:32 +0800 Subject: [PATCH] save --- src/plugin/admin/api/Auth.php | 5 ++--- src/plugin/admin/app/middleware/AccessControl.php | 4 +++- src/plugin/admin/config/route.php | 10 ++++++---- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/plugin/admin/api/Auth.php b/src/plugin/admin/api/Auth.php index 0ab9666..fed477f 100644 --- a/src/plugin/admin/api/Auth.php +++ b/src/plugin/admin/api/Auth.php @@ -39,10 +39,9 @@ class Auth */ public static function canAccess(string $controller, string $action, int &$code = 0, string &$msg = ''): bool { + // 无控制器信息说明是函数调用,函数不属于任何控制器,鉴权操作应该在函数内部完成。 if (!$controller) { - $msg = '无法识别当前控制器'; - $code = 3; - return false; + return true; } // 获取控制器鉴权信息 $class = new \ReflectionClass($controller); diff --git a/src/plugin/admin/app/middleware/AccessControl.php b/src/plugin/admin/app/middleware/AccessControl.php index 5a6f531..4e95668 100644 --- a/src/plugin/admin/app/middleware/AccessControl.php +++ b/src/plugin/admin/app/middleware/AccessControl.php @@ -2,6 +2,8 @@ namespace plugin\admin\app\middleware; use plugin\admin\api\Auth; +use ReflectionException; +use support\exception\BusinessException; use Webman\Http\Request; use Webman\Http\Response; use Webman\MiddlewareInterface; @@ -12,7 +14,7 @@ class AccessControl implements MiddlewareInterface * @param Request $request * @param callable $handler * @return Response - * @throws \ReflectionException + * @throws ReflectionException|BusinessException */ public function process(Request $request, callable $handler): Response { diff --git a/src/plugin/admin/config/route.php b/src/plugin/admin/config/route.php index 9786aa7..ca57fd9 100644 --- a/src/plugin/admin/config/route.php +++ b/src/plugin/admin/config/route.php @@ -15,10 +15,12 @@ use plugin\admin\app\controller\AccountController; use plugin\admin\app\controller\DictController; use Webman\Route; +use support\Request; Route::any('/app/admin/account/captcha/{type}', [AccountController::class, 'captcha']); -Route::any('/app/admin', function () { - return redirect('/app/admin/'); -}); -Route::any('/app/admin/dict/get/{name}', [DictController::class, 'get']); \ No newline at end of file +Route::any('/app/admin/dict/get/{name}', [DictController::class, 'get']); + +Route::fallback(function (Request $request) { + return response($request->uri() . ' not found' , 404); +}, 'admin');