私は、globaladmin、エディタなどの複数のユーザーロールを持つコントロールパネルアプリケーションで作業しています。これらのロールを単一のUserControllerリソースで使用します。単一のリソースコントローラでEntrustの役割を使用する際の提案が必要です。-Laravel5
たとえば、グローバル管理者はすべてのRestfulメソッドを実行できる必要がありますが、エディタはユーザーの表示と更新のみ可能です。
私が知っているのは、ミドルウェアが箱から出ていることがわかります。これは、必要なものに最適です。しかし、それはルートでのみ動作します(この場合、各役割ごとに別々のコントローラが必要です)。
私のUserControllerは次のようになります。
Class UserController extends BaseController
{
$protected $viewfolder;
public function __construct
{
// Checking for role and then assigning the folder name of the views
$role = User::getRole();
switch($role)
case 'globaladmin':
$this->viewfolder = 'globaladmin';
break;
case 'editor':
$this->viewfolder = 'editor';
break;
default:
abort(401, 'Access Denied');
break;
}
public function index(){
if(Entrust::can('view-all-users')){
$users = User:all();
}
return view($this->viewfolder.'.users.viewuser', compact('users'));
}
public function create()
public function update()
public function delete()
}
私は、ユーザーロールをチェックして、唯一の役割は、それを使用する権限を持っている場合にのみ、この方法を使用することができるようになるコンストラクタでミドルウェアを必要としています。しかし、これは他のコントローラでも同様に使用されるので、ハッキングのないまともな方法で行うべきです。
ありがとうございました。私は、アプリケーションの複雑さのために、それぞれの役割ごとに個別のコントローラを持っている別のルートを下ってきましたが。しかし、私は本当にこのアイデアが好きです。誰かが新たな視点を思い付くかどうかを待ってみましょう。 –