我有一个基于 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/