Перемещение сброса пароля в бэкэнд, Yii2

У меня есть авторизация пользователя только на бэкэнде (для администраторов), и я пытаюсь переместить функцию сброса пароля на бэкэнд.

\ Бэкенд \ вид \ сайт \ login.php

<?php $form = ActiveForm::begin(['id' => 'login-form']); ?>

//fields for username and password

<div class="form-group">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>

<?php ActiveForm::end(); ?>

<div style="color:#999;margin:1em 0">
If you forgot your password you can <?= Html::a('reset it', ['request-password-reset']) ?>.
</div>

\ бэкенд \ Контроллеры \ SiteController.php

public function actionLogin()
{
if (!\Yii::$app->user->isGuest) {
return $this->goHome();
}

$model = new LoginForm();
if ($model->load(Yii::$app->request->post()) && $model->login()) {
return $this->goBack();
} else {
//enters here instead
return $this->render('login', [
'model' => $model,
]);
}
}
public function actionRequestPasswordReset()
{
//not entering here
$model = new PasswordResetRequestForm(); //placed in \common\models
if ($model->load(Yii::$app->request->post()) && $model->validate()) {
if ($model->sendEmail()) {
Yii::$app->session->setFlash('success', 'Check your email for further instructions.');

return $this->goHome();
} else {
Yii::$app->session->setFlash('error', 'Sorry, we are unable to reset password for email provided.');
}
}

return $this->render('requestPasswordResetToken', [
'model' => $model,
]);
}

Проблема в том, когда я нажимаю reset it сайт перенаправляет меня на login.php опять так actionRequestPasswordReset() не уволен. Я новичок в Yii и был бы признателен за любую помощь.

0

Решение

Обновите свой контроллер Фильтр контроля доступа разрешить пользователям, не вошедшим в систему, доступ requestPasswordReset:

public function behaviors()
{
return [
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['request-password-reset'],
'allow' => true,
'roles' => ['?'],
],
...
1

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

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

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