我想在我的SF2 / FOSUserBundle应用程序中实现以下功能。
我们的想法是让用户使用标准注册表单进行注册。然后他们会收到一封确认链接的电子邮件。当用户打开链接时,它会验证他们的电子邮件地址(重要)。但我希望用户尚未启用。它需要管理员的操作才能启用用户。
我设法收到电子邮件确认部分,这很不错,但是当用户打开确认链接时,他们会立即启用...有没有办法改变这种行为。
最好的方法是什么(我打赌我不是第一个尝试的人)?
答案 0 :(得分:2)
您可以覆盖默认UserChecker
,将其作为参数:
// ACME/YourBundle/Resources/Config/services.yml
parameters:
security.user_checker.class: ACME\YourBundle\Security\Core\User\UserChecker
并写下你的课程:
// ACME/YourBundle/Security/Core/User/UserChecker.php
namespace ACME\YourBundle\Security\Core\User\UserChecker;
use Symfony\Component\Security\Core\User\UserChecker as BaseCode;
use Symfony\Component\Security\Core\User\UserInterface;
class UserChecker extends BaseCode
{
public function checkPreAuth(UserInterface $user)
{
// Your Business logic
parent::checkPreAuth($user);
}
}