php - Sonata 管理员包 + 用户包 : Check registration by admin before allowing access to user

标签 php symfony sonata-admin sonata-user-bundle

我有一个基于 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);
}

希望它能起作用。

关于php - Sonata 管理员包 + 用户包 : Check registration by admin before allowing access to user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35164097/

相关文章:

php - 从各种语言的源代码中删除/剥离所有注释的通用实用程序?

security - Symfony 2 Security.yml 重定向循环和 LogicException 问题

Symfony 2.3.6 和 Sonata 管理包 : Empty dashboard and no errors

filtering - DataGrid 过滤器中的 Sonata Admin 高级过滤器自定义

php - 在php中将数据从新窗口发送到上一个窗口

php DB返回数组问题

php - Doctrine2 多对多关系不保存

php - Symfony2 中的类继承

string - Sonata Admin Bundle - 字符串验证

php - fatal error : Call to a member function prepare() on null