Роль администратора laravel 5.1 в промежуточном ПО с использованием Entrust

Я пытаюсь отфильтровать маршрут, используя промежуточное программное обеспечение ‘auth’ и ‘auth.admin’, которое должно быть похоже на Route :: filter в laravel 4.2. Но это не работает.
Вот мой маршрут

Route::group(['prefix' => 'admin', 'middleware' => ['auth', 'auth.admin']], function()
{
// ...
});

Kernel.php

protected $routeMiddleware = [
'auth' => \App\Http\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'auth.admin' => \App\Http\Middleware\RedirectIfAdmin::class,
'role' => Zizaco\Entrust\Middleware\EntrustRole::class,
'permission' => Zizaco\Entrust\Middleware\EntrustPermission::class,
'ability' => Zizaco\Entrust\Middleware\EntrustAbility::class,
];

RedirectIfAdmin.php

        <?php

namespace App\Http\Middleware;

use Closure;
use Entrust;
class RedirectIfAdmin
{
/**
* Handle an incoming request.
*
* @param  \Illuminate\Http\Request  $request
* @param  \Closure  $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (!Entrust::hasRole(config('customConfig.roles.admin'))) {
return redirect()->route('dashboard')
->with('error', 'Access Denied');
}
return $next($request);
}
}

0

Решение

Как ты сказал, что ты dashboard маршрут для аутентифицированного пользователя,
Но ты проверяешь, если пользователь не в admin role отправить на приборную панель, и когда он отправляется на приборную панель, он перенаправляется обратно, вероятно, из-за другого включения промежуточного программного обеспечения, и это отправляет обратно на вход в систему и снова из входа в систему на приборной панели, поэтому просто удалите ! от вашего состояния.

0

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

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

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