Laravel маршруты с доверием

Я пытаюсь верить в мой код Laravel.
На данный момент у меня есть пользователи, разрешения и роли.

создать панель администратора, где вы хотите получить доступ к «разрешения» == «админ — панель»

Я хотел бы, чтобы это было сделано с помощью файла rout.php

Мои файлы:
Промежуточный / EntrustMiddleware.php

class EntrustMiddleware
{
/**
* Handle an incoming request.
*
* @param  \Illuminate\Http\Request  $request
* @param  \Closure  $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!Entrust::can('admin-panel')) {
return Redirect::to('home');
}
return $next($request);
}
}

routes.php

Route::get('admin-panel', ['middleware' => ['auth', 'Entrust'], function () {

}]);

Я перепробовал много методов, но все равно не работает. Может кто-нибудь подсказать, как настроить файл «rout.php», чтобы доступ к «admin — панель /» был только тогда, когда «permissions» == «admin-панель»

—Редактировать—

Когда я использую этот метод, я получаю сообщение об ошибке:

Route::group(['middleware' => ['Entrust']], function () {
//put your routes here
Route::get('/admin', 'Admin\AdminController@index');
});

ErrorException в строке Pipeline.php 136: call_user_func_array () ожидает, что параметр 1 является допустимым обратным вызовом, класс ‘Zizaco \ Entrust \ EntrustFacade’ не имеет метода ‘handle’

—edit2—

['middleware' => ['permission:NAME']]

Теперь я понимаю 🙂

Должен ли Contoller добавить дополнительную безопасность или нет?

1

Решение

Если вы используете entrustдля всех тех routes который вы хотите разрешить доступ для конкретных roles, вам просто нужно поместить это в группу, которая будет выполнять работу, как говорится, вот как это будет выглядеть,

Route::group(['middleware' => ['add roles name here']], function () {
//put your routes here
});
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]