symfony2 - FOS UserBundle error on profile change -
symfony2 - FOS UserBundle error on profile change -
i'm using symfony 2.0 fos user bundle , when comes profile alter unusual behavior:
in user entity im using fosvalidator this:
@fosvalidator\unique(property="usernamecanonical", message="fos_user.username.already_used", groups={"facebook", "profile_username"})
an in profilecontroller
the form validated via
$form = $this->container->get('form.factory')->create(new profilesimpleformtype(array($field)), $user); $session = $this->container->get("session"); if ($this->container->get('request')->getmethod() == 'post') { $form->bindrequest($this->container->get('request')); if ($form->isvalid()) { $this->container->get('fos_user.user_manager')->updateuser($user); homecoming $this->container->get('templating')->renderresponse('fosuserbundle:profile:show_field.html.' . $this->container->getparameter('fos_user.template.engine'), array( 'field' => $field, 'user' => $user )); // } }else{ $user2 = $this->container->get('security.context')->gettoken()->getuser(); } }
but unusual behavior:
if form not valid because username exists $user2 set user existing username can hijack other business relationship changing username.
i tried debug view kind of listeners cant find point existing username set secury token.
i solved problem myself. solution tell usermanager reload user via:
$this->container->get('fos_user.user_manager')->reloaduser($user);
symfony2 fosuserbundle
Comments
Post a Comment