Как сгенерировать ошибку, если роль пользователя не разрешена Laravel - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь использовать систему аутентификации Laravel и добавить логику, которая не позволяет вам входить в систему, если у вас есть роль пользователя user. Я хочу расширить аутентификацию пользователей.

protected function sendLoginResponse(Request $request)
{
    $user = $this->guard()->user();

    $request->session()->regenerate();
    if ($user->role != 'admin') {
        return redirect()->back()->with('error', 'You do not have permissions to view this page');

        $this->clearLoginAttempts($request);

        return $this->authenticated($request, $this->guard()->user())
            ?: redirect()->intended($this->redirectPath());
    }
}

Проблема в том, что он все еще регистрирует меня. Как я могу заставить эту логику работать?

1 Ответ

2 голосов
/ 05 ноября 2019

Добавьте эту функцию в свой LoginController, она переопределит функцию по умолчанию и добавит дополнительное ограничение для входа в систему:

/**
 * override to add check
 * 
 * @param \Illuminate\Http\Request $request
 * @return array
 */
protected function credentials(Request $request)
{
    $credentials = $request->only($this->username(), 'password');
    $credentials['role'] = 'admin'; //only login admin

    return $credentials;
}
...