Sonata Admin Bundle + User Bundle:在允许访问用户之前检查管理员的注册

Sonata Admine Bundle + User Bundle : Check registration by admin before allowing access to user

我有一个基于 Symfony 2.8 的项目,我安装了 Sonata Admin Bundle 和 User Bundle,一切正常。

现在我要添加另一个约束。当我的用户注册时,我不想让他立即访问该应用程序。相反,管理员应该能够在之前检查用户数据,然后授予他访问权限。

示例:

PersonA 注册并提供了他的电子邮件和其他数据,但他应该无法登录。当管理员检查 PersonA 输入的数据并发现可以允许他访问该应用程序时,他可以授予他这种可能性,因此 PersonA 可以自由登录。

我不太习惯 Sonata bundle 的世界,所以我愿意接受你能给我的任何想法。

非常感谢!

在您的用户实体中添加以下内容:

public function __construct()
{
    parent::__construct();
    $this->enabled = false;
}

如果它不起作用,请将其添加到您的 Resources/config/doctrine/User.orm.xml

    <!-- ... -->
    <lifecycle-callbacks>
        <lifecycle-callback type="prePersist" method="disable" />
    </lifecycle-callbacks>

或者如果是 User.orm.yml :

lifecycleCallbacks:
    prePersist: [disable]

并在您的 User 实体中添加以下内容:

public function disable()
{
    $this->setEnabled(false);
}

希望有用。