如何在FOS Userbundle上更改寄存器的行为

时间:2013-10-07 17:42:21

标签: symfony doctrine-orm fosuserbundle

问题很简单。我正在使用FOS UserBundle来处理我的应用程序用户。

我有三个角色(superadmin,cm,user),我希望superadmin可以通过注册表单创建用户,并为这些用户添加角色(cm或用户)。

当注册表正常时,应用程序会重定向到注册/确认的URL,并在创建新用户的情况下记录。我们的想法是保持superadmin登录并重定向到另一个页面 我怎么能改变这种行为?

可能有事件吗? REGISTRATION_CONFIRMED

感谢所有人。

1 个答案:

答案 0 :(得分:0)

最简单的方法是创建自己的安全控制器,这样只有superadmin才能访问它。在控制器中,创建一个表单来创建新用户并执行以下操作:

$user = $this->get('fos_user.user_manager')->createUser();
$form = ;// create a form or look at the FOSUserBundle:Register controller to see how they use the form factory
$form->handleRequest($request)
if ($form->isValid) {
    $user->setEnabled(true); // allows user to login without needing to confirm
    $this->get('fos_user.user_manager')->updateUser($user);
}