I have a function in helpers.php which I use in any blade to check if admin has a permission to view some buttons, and a it works also in Controllers, but it's not working in routes, the routes ignoring it.
This is my Function
function can($permission){
$userCheck = auth()->guard('admin')->check();
$user='';
if($userCheck==false)
{
return redirect('admin/login');
}else{
$user= auth()->guard('admin')->user();
}
if ($user->id == 1) {
return true;
}
$minutes = 5;
$permissions = Cache::remember('permissions_' . $user->id, $minutes, function () use ($user) {
return explode(',', $user->permission->permission);
});
$permissions = array_flatten($permissions);
return in_array($permission, $permissions);
}
I use it like this in Blades.
@if(can('admins'))
<a href="" class="nav-link nav-toggle">
@endif
But Routes just ignores the function and opens all the routes, I use the function in Routes like this.
if(can('admins')){
Route::get('home', 'Admin\AdminController@index')->name('admin.home');
Route::get('/admins/{id}/edit', 'Admin\AdminController@edit')->name('admins.edit');
}
Any Idea ?
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire