I am using Laravel 5.4. I want to assign all authority to 'Admin' role. But Employee cannot delete or edit records. I'm using Entrust Package for Role based permission.
I've written routes for this but unfortunately Its not working for employee.
Route::group(['prefix' => 'admin', 'middleware' => 'auth'], function () {
// Route::resource('plotsize', 'plotSizeController');
Route::group(['middleware' => 'role:Employee'], function () {
Route::resource('plotsize', 'plotSizeController', ['except' => 'edit', 'update', 'delete']);
});
Route::group(['middleware' => 'role:Admin'], function () {
Route::resource('plotsize', 'plotSizeController');
}); });
This is another approach that I had tried but unfortunately Its also not working.
protected $user;
public function __construct()
{
$this->middleware(function ($request, $next) {
if(Auth::user()->hasRole('Admin')){
$this->middleware('role:Admin');
return $next($request);
}
if(Auth::user()->hasRole('Employee')){
$this->middleware('role:Employee', ['only' => ['edit', 'update', 'destroy']]);
return $next($request);
}
});
}
If you're giving me suggestion to use Policy in Laravel. I've tried that but I'm not getting what's the issue on this. Can you provide me any example for this? Thanks