管理员审核的Symfony2 / FosUSerBundle注册

时间:2014-09-12 15:48:21

标签: php symfony fosuserbundle

我想在我的SF2 / FOSUserBundle应用程序中实现以下功能。

我们的想法是让用户使用标准注册表单进行注册。然后他们会收到一封确认链接的电子邮件。当用户打开链接时,它会验证他们的电子邮件地址(重要)。但我希望用户尚未启用。它需要管理员的操作才能启用用户。

我设法收到电子邮件确认部分,这很不错,但是当用户打开确认链接时,他们会立即启用...有没有办法改变这种行为。

最好的方法是什么(我打赌我不是第一个尝试的人)?

1 个答案:

答案 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);
    }
}