/**
  * @param Request       $request
  * @param UserInterface $user
  * @param boolean       $selfEdit
  *
  * @return Response
  */
 protected function renderForm(Request $request, UserInterface $user, $selfEdit)
 {
     $action = $this->generateUrl('open_orchestra_user_admin_user_form', array('userId' => $user->getId()));
     $editGroups = true;
     if ($selfEdit) {
         $action = $this->generateUrl('open_orchestra_user_admin_user_self_form');
         $editGroups = false;
     }
     $form = $this->createForm('oo_user', $user, array('action' => $action, 'edit_groups' => $editGroups, 'self_editing' => $selfEdit, 'validation_groups' => array('Profile', 'UpdatePassword', 'Default')));
     $form->handleRequest($request);
     if ($form->isValid()) {
         if ('' != $user->getPlainPassword()) {
             $userManager = $this->get('fos_user.user_manager');
             $userManager->updatePassword($user);
             $this->dispatchEvent(UserEvents::USER_CHANGE_PASSWORD, new UserEvent($user));
         }
         $this->handleForm($form, $this->get('translator')->trans('open_orchestra_user_admin.update.success'));
         $this->dispatchEvent(UserEvents::USER_UPDATE, new UserEvent($user));
     }
     $title = 'open_orchestra_user_admin.form.title';
     $title = $this->get('translator')->trans($title);
     return $this->renderAdminForm($form, array('title' => $title));
 }