使用amnah身份验证后,用户模块的后端增删改查显示Yii2用户模块而不是用户CRUD

问题描述 投票:0回答:3

我们一直在使用 Yii2 Advanced App 开发一个带有自定义引导模板的项目。我已经使用gii生成了crud。所有其他 CRUD 都工作正常。但是用户增删改查显示的是 Yii2 用户模块而不是增删改查。

我已经浏览了 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,将很难管理用户。 任何帮助表示赞赏。 预先感谢。

php yii2 yii2-advanced-app yii2-user
3个回答
0
投票

我认为你也需要重新定义控制器。您需要一个从原始控制器派生的新控制器,以便正确寻址新的 CRUD 元素。

我想你的控制器位于后端并且名为

user
,否则请正确更改以下示例(
config/main.php
的一部分):

'user' => [
    ...     

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

0
投票

您可以将此代码添加到后端的Controller中

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();
}

0
投票

只需点击链接

/user/admin

您将为用户获得 CRUD。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.