Как правильно наследовать модуль dektrium/yii2-user?

254
26 декабря 2017, 17:53

Всем привет! Использую модуль Yii2-user. Нужно было сделать так, чтобы при входе неавторизованного пользователя не было никакого меню, а только форма ввода логина и пароля. Для этого сделал следующие вещи. Создал модуль users.

namespace app\modules\users;
class Module extends \dektrium\user\Module
{
    public $controllerMap = [
        'admin'    => 'dektrium\user\controllers\AdminController',
        'registration' => 'dektrium\user\controllers\RegistrationController',
        'security'     => 'app\modules\users\controllers\SecurityController',// Переопределенный контроллер
        'recovery'     => 'dektrium\user\controllers\RecoveryController',
        'settings'     => 'dektrium\user\controllers\SettingsController',
        'profile'      => 'dektrium\user\controllers\ProfileController',
    ];
}

В котором переопределил контроллер SecurityController на свой

namespace app\modules\users\controllers;
use dektrium\user\controllers\SecurityController as BaseSecurityController;
class SecurityController extends BaseSecurityController
{
    public function actionLogin()
    {
        $this->layout = 'main-login';
        return parent::actionLogin();
    }
}

В своем модуле переопределил основную вьюху, всю выводить не буду, только покажу проблемный участок.

<div class="row">
            <div class="col-xs-12">
                <?= Html::a(
                    Yii::t('user', 'Forgot password?'),
                    ['/user/recovery/request']
                ) ?>
            </div>
        </div>

Как видно, ссылка ведет на '/user/recovery/request', но при нажатии на ссылку попадаю на '/user/forgot', что приводит к 404 ошибке. Как я понял это происходит по той причине, что у самого модуля dektrium/yii2-user прописано

public $urlRules = [
        '<id:\d+>'                               => 'profile/show',
        '<action:(login|logout|auth)>'           => 'security/<action>',
        '<action:(register|resend)>'             => 'registration/<action>',
        'confirm/<id:\d+>/<code:[A-Za-z0-9_-]+>' => 'registration/confirm',
        'forgot'                                 => 'recovery/request',// Тут правило которое меняет маршрут
        'recover/<id:\d+>/<code:[A-Za-z0-9_-]+>' => 'recovery/reset',
        'settings/<action:\w+>'                  => 'settings/<action>'
    ];

Теперь вопрос: как правильно исправить эту ситуацию, чтобы не возникала ошибка 404?

READ ALSO
Какой API лучше использовать (С++)

Какой API лучше использовать (С++)

Имею задачу: написать программу, страющую маршрут БПЛ (беспилотника) по заданным точкам (долгота и широта)Причем лучше, если бы все это работало...

222
Подключение cpp файла к clr проекту

Подключение cpp файла к clr проекту

Хочу создать приложение clr(чтобы были формы в приложении)ПОлучаю примерно такой код:

253
Матрица c++ Подсчёт элементов

Матрица c++ Подсчёт элементов

Доброго времени сутокНе могу разобраться с заданием по c++

230
Подключение музыки и сборка через CMake

Подключение музыки и сборка через CMake

Пытаюсь подключить SFML/Audiohpp к программе, но сборка через CMake не работает в данном случае - требует подключение и там

190