2015-05-08 2 views
0

Мы работаем над проектом с расширенным приложением Yii2 с настраиваемым шаблоном начальной загрузки. Я создал crud, используя gii. Все остальные CRUD работают нормально. Но пользователь crud отображает пользовательский модуль Yii2, а не CRUD.После использования аутентификации amnah бэкэнда 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

enter image description here

Я хочу, чтобы отобразить CRUD, подобное этому

enter image description here

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

+0

As я вижу, что на скриншоте есть маршрут _/user/admin_, который по его описанию должен отображать грубую страницу. Вы попробовали? – Tony

+0

Да, я пробовал это. Тогда я получаю запрет # 403, вам не разрешено выполнять это действие (даже если я зарегистрирован как администратор) – Cameron

+0

Из документации модуля: «Войдите в систему как администратор, используя neo/neo (изменение это!) '. Я пробовал это на [демонстрационной странице модуля] (http://yii2.amnahdev.com/user), а страница _/user/admin_ стала доступной после того, как я вошел в систему с этими учетными данными – Tony

ответ

0

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

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

'user' => [ 
    ...  

    'controllerMap' => [ 
     'user' => 'backend\controllers\user', 
    ], 
], 
0

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

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(); 
} 
Смежные вопросы