我的用户模块使用Yii2-usuario。
我运行了“first step“中“Creating the first Administrator during a migration”(在迁移过程中创建第一个管理员)一节下的迁移,只将new \Da\User\Model\User()
更改为new \app\models\user\Model\User()
,如下所示
$user = new \app\models\user\Model\User([
'scenario' => 'create',
'email' => "admin@admin.com",
'firstname' => 'first',
'lastname' => 'last',
'password' => "verysecret" // >6 characters!
]);
它正确地填充了我的表。但是当我登录到后端并试图查看https://localhost/bla/backend/web/user/admin/index
时,我得到了一个403禁止错误
在我的后端main.php
中,我有这个
'components' => [
....
'authManager' => [
'class' => 'Da\User\Component\AuthDbManagerComponent',
'defaultRoles' => ['guest'],
],
],
'modules' => [
'user' => [
'class' => Da\User\Module::class,
'enableEmailConfirmation' => true,
'enableRegistration' => false,
'maxPasswordAge' => 90,
'enableGdprCompliance' => false,
'classMap' => [
'User' => 'app\models\user\Model\User',
],
'viewPath' => '@app/views/user',
'controllerMap' => [
//disable for backend
'profile' => [
'class' => Da\User\Controller\ProfileController::class,
'as access' => [
'class' => yii\filters\AccessControl::class,
'rules' => [['allow' => false]],
],
],
'recovery' => [
'class' => Da\User\Controller\RecoveryController::class,
'as access' => [
'class' => yii\filters\AccessControl::class,
'rules' => [['allow' => false]],
],
],
'Registration' => [
'class' => Da\User\Controller\RegistrationController::class,
'as access' => [
'class' => yii\filters\AccessControl::class,
'rules' => [['allow' => false]],
],
],
'Settings' => [
'class' => Da\User\Controller\SettingsController::class,
'as access' => [
'class' => yii\filters\AccessControl::class,
'rules' => [['allow' => false]],
],
],
'migrate' => [
'class' => \yii\console\controllers\MigrateController::class,
'migrationNamespaces' => [
'Da\User\Migration',
],
'migrationPath' => [
'@app/migrations',
'@yii/rbac/migrations',
],
],
],
],
我的backend\models\user\Model
中的User
模型看起来像这样
use Da\User\Model\User as BaseUser;
class User extends BaseUser
{
public static function tableName()
{
return '{{%admin}}';
}
...
...
..
}
the list的RBAC和管理操作不工作。我得到一个403。
你知道我错过了什么或者做错了什么吗谢谢。
1条答案
按热度按时间zvokhttg1#
在为迁移code的第一步提供的链接中,写入了next
在安装扩展并配置好一切之后,你需要用所有与用户相关的东西来设置你的应用程序,例如。
只有在完成here中提到所有安装步骤后,您才需要运行此迁移但仍然无法运行,因为将填充默认user表,该表是通过初始迁移创建此程序包将创建自己用户表,而且在安装步骤中有一个注意
注意:如果您使用的是Yii 2的高级应用程序模板,在开始使用数据库之前,请确保您已经删除了m130524_201442_init.php迁移文件,该文件来自默认安装,它位于%PROJECT_DIR%/console/migrations/m130524_201442_init.php路径。
步骤1
在您的情况下,我将执行
yii migrate/down 2
,这将恢复最后2个迁移(初始化迁移包含用户表描述)。仅在您没有添加更多迁移的情况下:)如果迁移失败,您可以运行几个SQL查询
然后删除
m130524_201442_init.php
和m190124_110200_add_verification_token_column_to_user_table.php
(第二个是可选的,但由您决定)文件步骤2
之后,根据文档,您需要同时运行
rbac
+Yii 2 Usuario
迁移,如本说明中所述注意事项:您仍然需要通过执行./yii migrate --migrationPath=@yii/rbac/migrations来应用Yii 2 RBAC迁移。记住您必须首先配置AuthManager组件。另外,命名空间迁移是在Yii 2. 0. 10中引入的,所以在使用它们之前请考虑更新您的框架安装版本。如果您使用的是2.0.10之前的Yii 2版本,您必须复制位于vendor/2amigos/yii 2-usuario/src/User/Migration的迁移文件,删除其命名空间并将其添加到您的@app/migrations文件夹中。
但在此之前,您需要将下面的代码从
backend/config/main.php
移动到%PROJECT_DIR%/console/config/main.php
并将
authManager
添加到rbac
控制台配置中最后,您
console/config/main.php
应该与下面类似步骤3
从注运行迁移
./yii migrate --migrationPath=@yii/rbac/migrations
个步骤4
在不更改示例中的模型的情况下,从first steps创建并运行迁移。
步骤5
从
backend/config/main.php
和frontend/config/main.php
中删除user
配置使用适当管理员选项将
authManager
和user module
应用于各自配置文件此数组应包含与您在步骤4中执行迁移中相同角色名称最后,您的前端和后端配置文件应该与以下内容类似
步骤6
我最喜欢的步骤:)
http://yourapp/index.php?r=user/admin
访问并输入您的迁移凭据。尽情享受吧!