1

在 Yii2 高级模板中,他们在前端有新用户的注册组件。

我想将该注册过程放入 /backend 以便只有管理员用户可以创建其他新用户。

因此,在移动 SignupForm、注册视图、将注册操作添加到后端/SiteController 时,我收到 403 错误“您不允许执行此操作”。

有没有人能把注册过程放到 Yii2 高级模板的后端?

我想要做的是让管理员用户创建新用户并将登录详细信息提供给外部方。然后将建议外部方运行密码重置,以设置他们自己的密码。但实际上,它锁定了注册/注册过程。

4

1 回答 1

3

没有什么可以阻止您完成这项工作。但在此过程中需要改变一些事情。

首先,我猜您的错误消息来自后端 SiteController 具有的 AccessControl:

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'actions' => ['login', 'error'],
                    'allow' => true,
                ],
                [
                    'actions' => ['logout', 'index'],
                    'allow' => true,
                    'roles' => ['@'],
                ],
            ],
        ],
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'logout' => ['post'],
            ],
        ],
    ];
}

将其更改为:

public function behaviors()
{
    return [
        'access' => [
            'class' => AccessControl::className(),
            'rules' => [
                [
                    'actions' => ['login', 'error'],
                    'allow' => true,
                ],
                [
                    'actions' => ['logout', 'index', 'signup'],
                    'allow' => true,
                    'roles' => ['@'],
                ],
            ],
        ],
        'verbs' => [
            'class' => VerbFilter::className(),
            'actions' => [
                'logout' => ['post'],
            ],
        ],
    ];
}

Orelse 这将导致错误消息:

Forbidden (#403)
You are not allowed to perform this action.

请记住,注册功能是为客人注册而设计的,并且它会在创建帐户时自动开箱即用地让用户登录。您必须删除此功能,并且您可能会在此过程中遇到一些其他错误。

祝你好运。

于 2015-03-15T17:04:05.127 回答