Как переопределить механизм забытых паролей по умолчанию в Laravel 5.6? - PullRequest
0 голосов
/ 28 июня 2018

Я хотел войти в систему пользователя, если его поле статуса таблицы пользователей было установлено в 1, в противном случае - нет. Таким образом, эта проблема была решена в этом вопросе, который я задал.

Как переопределить механизм входа по умолчанию в Laravel 5.6?

Но теперь у меня другая проблема. Когда пользователь со статусом 0 (не активен) нажимает на ссылку по умолчанию для забытого пароля на странице входа и вводит свой адрес электронной почты, а затем нажимает на ссылку сброса и заполняет новый пароль, он автоматически входит в систему, даже если его статус равен 0 (не активен).

Так, как я могу предотвратить механизм забытого пароля, если статус пользователя равен 0?

1 Ответ

0 голосов
/ 28 июня 2018

Перейдите в ForgotPasswordController и вставьте его. такой же механизм существует здесь . поэтому я не объясняю должным образом.

public function sendResetLinkEmail(Request $request)
    {
        $this->validateEmail($request);
        $userStatus=User::where('email','=',$request->email)->limit(1)->get();
            if (isset($userStatus)) {
                if ($userStatus[0]->role==0) {
                return redirect()->back()->with(['massage'=>'Please activate account first']);
            }
        }


        // We will send the password reset link to this user. Once we have attempted
        // to send the link, we will examine the response then see the message we
        // need to show to the user. Finally, we'll send out a proper response.
        $response = $this->broker()->sendResetLink(
            $request->only('email')
        );

        return $response == Password::RESET_LINK_SENT
                    ? $this->sendResetLinkResponse($response)
                    : $this->sendResetLinkFailedResponse($request, $response);
    }
...