Files
fdesk/app/middleware/PermissionMiddleware.php
T
2025-07-01 19:39:13 +08:00

34 lines
952 B
PHP

<?php
namespace app\middleware;
use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;
use app\service\AuthService;
class PermissionMiddleware implements MiddlewareInterface
{
protected $permission_code;
// 支持传参(如 "user:view"),可以在路由闭包里传入
public function __construct($permission_code = null)
{
$this->permission_code = $permission_code;
}
public function process(Request $request, callable $next): Response
{
// 假设有 auth() helper 方法能获取当前登录用户ID
$user_id = $request->session()->get('user_id');
if (!$user_id) {
return json(['code' => 401, 'msg' => '未登录']);
}
if ($this->permission_code && !AuthService::check($user_id, $this->permission_code)) {
return json(['code' => 403, 'msg' => '没有权限']);
}
return $next($request);
}
}