This commit is contained in:
walkor 2022-12-12 15:33:32 +08:00
parent b37f360295
commit 3a9162cc17
3 changed files with 11 additions and 8 deletions

View File

@ -39,10 +39,9 @@ class Auth
*/ */
public static function canAccess(string $controller, string $action, int &$code = 0, string &$msg = ''): bool public static function canAccess(string $controller, string $action, int &$code = 0, string &$msg = ''): bool
{ {
// 无控制器信息说明是函数调用,函数不属于任何控制器,鉴权操作应该在函数内部完成。
if (!$controller) { if (!$controller) {
$msg = '无法识别当前控制器'; return true;
$code = 3;
return false;
} }
// 获取控制器鉴权信息 // 获取控制器鉴权信息
$class = new \ReflectionClass($controller); $class = new \ReflectionClass($controller);

View File

@ -2,6 +2,8 @@
namespace plugin\admin\app\middleware; namespace plugin\admin\app\middleware;
use plugin\admin\api\Auth; use plugin\admin\api\Auth;
use ReflectionException;
use support\exception\BusinessException;
use Webman\Http\Request; use Webman\Http\Request;
use Webman\Http\Response; use Webman\Http\Response;
use Webman\MiddlewareInterface; use Webman\MiddlewareInterface;
@ -12,7 +14,7 @@ class AccessControl implements MiddlewareInterface
* @param Request $request * @param Request $request
* @param callable $handler * @param callable $handler
* @return Response * @return Response
* @throws \ReflectionException * @throws ReflectionException|BusinessException
*/ */
public function process(Request $request, callable $handler): Response public function process(Request $request, callable $handler): Response
{ {

View File

@ -15,10 +15,12 @@
use plugin\admin\app\controller\AccountController; use plugin\admin\app\controller\AccountController;
use plugin\admin\app\controller\DictController; use plugin\admin\app\controller\DictController;
use Webman\Route; use Webman\Route;
use support\Request;
Route::any('/app/admin/account/captcha/{type}', [AccountController::class, 'captcha']); 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']); Route::any('/app/admin/dict/get/{name}', [DictController::class, 'get']);
Route::fallback(function (Request $request) {
return response($request->uri() . ' not found' , 404);
}, 'admin');