Files
crm-server/app/admin/middleware/PermissionCheck.php
T
2025-04-09 16:26:44 +08:00

30 lines
833 B
PHP

<?php
namespace app\admin\middleware;
use Webman\MiddlewareInterface;
use Webman\Http\Response;
use Webman\Http\Request;
class PermissionCheck implements MiddlewareInterface
{
public function process(Request $request, callable $handler): Response
{
$user = $request->user();
$route = $request->route;
// 检查角色
$roles = $route->param('roles');
if ($roles && !$user->roles()->whereIn('name', (array)$roles)->exists()) {
return json(['code' => 403, 'msg' => '需要特定角色才能访问']);
}
// 检查权限
$permission = $route->param('permission');
if ($permission && !$user->hasPermission($permission)) {
return json(['code' => 403, 'msg' => '无权访问']);
}
return $handler($request);
}
}