0
ユーザーがルートのアクセス許可を持っている場合、Entrustで確認する方法を教えてください。Entrustを使用したLaravel ACL、ルートを保護する方法、コントローラのメソッド
私は私の権限テーブルにルートフィールドを持っていると私は私が試したよりも、それぞれにprivillegesを追加している役割を持つよりも例
can_update_profile, can_delete_profile, can_see_profile
のためのアクション
の名前ユーザがコントローラメソッドにアクセスする能力を有するが失敗するかどうかをルート上でチェックするミドルウェアを実装する。
エントラストcan
は、アクセスここ
用として自由の要求のすべてを解釈し、私のミドルウェア
<?php
namespace App\Http\Middleware;
use Closure;
use App\Permission;
use Illuminate\Contracts\Auth\Guard;
use Route;
class AuthorizeRoute
{
public function __construct(Guard $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
$user = $this->auth->user();
$permissions = Permission::all();
//dd($user);
$uri = $request->route()->uri();
foreach ($permissions as $permission) {
if (!$user->can($permission->name) && $permission->route === $uri) {
//var_dump($user->can($permission->name));
abort(403);
}
}
return $next($request);
}
}