我试图定义一个Middleware FederationMiddleware:
public function handle($request, Closure $next)
{
dd($request->request); // prints null
if (Auth::check()) {
$userLogged = Auth::user();
if (!$userLogged->isSuperAdmin()) {
throw new UnauthorizedException;
}
}
return $next($request);
}
在Kernel.php中
protected $routeMiddleware = array(
...
'federation' => Middleware\FederationMiddleware::class,
在我的控制器中,我有:
public function __construct()
{
$this->middleware('federation');
}
我基本上需要的是允许联盟的所有者编辑他自己的信息,因此,我需要解析URL以了解URL是否包含联盟/ {federationID}和federationID == user-> federation() - > id,grant access
答案 0 :(得分:0)
除非您需要更高级的内容,否则您只需从当前网址解析它并进行检查。
$path = $request->path();
if (preg_match('@^federation/(\d+)/edit$@', $path, $match)) {
$federationId = $match[1];
// compare with the user's federation id here
}
这将匹配sitename.xyz/federation/[somedigits]/edit
而不匹配其他地址。