После использования аутентификации amnah серверная часть пользовательского модуля показывает пользовательский модуль Yii2, а не пользовательский CRUD.

Мы работали над проектом с расширенным приложением Yii2 с настраиваемым шаблоном начальной загрузки. Я сгенерировал хлам с помощью gii. Все остальные CRUD работают нормально. Но пользовательский crud отображает пользовательский модуль Yii2, а не CRUD.

Я просмотрел полную документацию amnah и не смог найти никаких решений ни в каких других местах. Я даже пробовал документацию Yii2, и это тоже не помогло.

Это моя конфигурация бэкэнда

<?php
$params = array_merge(
require(__DIR__ . '/../../common/config/params.php'),
require(__DIR__ . '/../../common/config/params-local.php'),
require(__DIR__ . '/params.php'),
require(__DIR__ . '/params-local.php')
);

use \yii\web\Request;
$baseUrl = str_replace('/frontend/web', '', (new Request)->getBaseUrl());

return [
'id' => 'app-backend',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'backend\controllers',
'defaultRoute' => 'sahasa/index',
'bootstrap' => ['log'],
'components' => [
    'urlManager' => [
        'class' => 'yii\web\UrlManager',
        // Disable index.php
        'showScriptName' => false,
        // Disable r= routes
        'enablePrettyUrl' => true,
        'rules' => array(
                '<controller:\w+>/<id:\d+>' => '<controller>/view',
                '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
                '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
        ),
    ],
    'request' => [
        'baseUrl' => $baseUrl,
    ],
    'user' => [
        'class' => 'amnah\yii2\user\components\User',
    ],
    // 'user' => [
    //     'identityClass' => 'common\models\User',
    //     'enableAutoLogin' => true,
    // ],
    'log' => [
        'traceLevel' => YII_DEBUG ? 3 : 0,
        'targets' => [
            [
                'class' => 'yii\log\FileTarget',
                'levels' => ['error', 'warning'],
            ],
        ],
    ],
    'errorHandler' => [
        'errorAction' => 'site/error',
    ],
],
'params' => $params,
'modules' => [
    'user' => [
        'class' => 'amnah\yii2\user\Module',
        // set custom module properties here ...
    ],
    'debug' => [
        'class' => 'yii\debug\Module',
    ],
],
];

Вот что я получаю, когда иду к localhost/app/backend/web/index.php?r=user

введите здесь описание изображения

Я хочу, чтобы он отображал CRUD, подобный этому

введите здесь описание изображения

Я застрял там. Без CRUD будет сложно управлять ПОЛЬЗОВАТЕЛЯМИ. Любая помощь приветствуется. Заранее спасибо.


person Cameron    schedule 08.05.2015    source источник
comment
Как я вижу на скриншоте, есть маршрут /user/admin, который, по его описанию, должен отображать crud-страницу. Вы пробовали?   -  person Tony    schedule 08.05.2015
comment
Да, я пробовал это. Затем я получаю # 403 Запрещено, вам не разрешено выполнять это действие (хотя я вошел в систему как администратор)   -  person Cameron    schedule 08.05.2015
comment
Из документации модуля: Log in as admin using neo/neo (change it!). Я пробовал это на демонстрационной странице модуля и странице /user/admin. стал доступен после того, как я вошел в систему с этими учетными данными   -  person Tony    schedule 08.05.2015


Ответы (3)


Я думаю, что вам нужно переопределить контроллер тоже. Вам нужен новый контроллер, производный от исходного контроллера, для правильной адресации нового элемента CRUD.

Я предполагаю, что ваш контроллер находится в бэкэнде и называется user, в противном случае измените правильно следующий пример (часть config/main.php):

'user' => [
    ...     

    'controllerMap' => [
        'user'  => 'backend\controllers\user', 
    ],
],
person scaisEdge    schedule 08.05.2015

Вы можете добавить этот код в контроллер в бэкэнде

public function init()
{
     $user_id = Yii::$app->getUser()->id;
     if($user_id){
        $user = \amnah\yii2\user\models\User::findOne($user_id);
         if ($user->can("admin")) {
             // do something
         }else{
             throw new HttpException(403, 'You are not allowed to perform this action.');
            }
        }else{
            throw new HttpException(403, 'You are not allowed to perform this action.');
        }
      parent::init();
}
person user2899477    schedule 05.05.2016

Просто нажмите на ссылку /user/admin

Вы получите CRUD для пользователей.

person De Wibawanto    schedule 18.05.2018