public function process($confirmation = false) { $user = $this->createUser(); $this->form->setData($user); if ('POST' === $this->request->getMethod()) { $this->form->bind($this->request); //var_dump($this->form->getErrorsAsString(10));die; if ($this->form->isValid()) { $tmp = $user->getId(); //Si es update if (empty($tmp)) { $user->setAuditUserIns($this->auditUser); $user->setAuditDateIns(new \DateTime()); $tmp = $this->entId; if (!empty($tmp)) { $entidadDao = new EntidadDao($this->container->get("doctrine")); $entidad = $entidadDao->getEntidad($this->entId); $user->setEntidad($entidad); } //Si es Insert } else { $userDao = new UserDao($this->container->get("doctrine")); //Se obtiene el registro de la BD $tmp = $userDao->getUserEspecifico($user->getId()); //Se le asigna al Formulario $this->form->setData($tmp); //Se realiza un merge con lo que se envio en el Request $this->form->bindRequest($this->request); $user = $tmp; $tmp->setAuditUserUpd($this->auditUser); $tmp->setAuditDateUpd(new \DateTime()); } $rolDao = new RolDao($this->container->get("doctrine")); //Se asignan roles dependiendo del usuario interno if ($this->userInterno == 'false') { $user->setRols($rolDao->getRolesEspecificos($user->getEntidad()->getEntImportador(), $user->getEntidad()->getEntProductor(), $user->getEntidad()->getEntComprador(), $user->getEntidad()->getEntCompVend(), $user->getUserTipo(), $user->getUserInterno(), $user->getUserInternoTipo())); } else { $user->setRols($rolDao->getRolesEspecificos(false, false, false, false, $user->getUserTipo(), $user->getUserInterno(), $user->getUserInternoTipo())); } //Hacer busqueda de los roles segun los campos de tipos y obtener el listado de objetos. $this->onSuccess($user, $confirmation); // do your custom logic here return true; } } return false; }
private function updateAction($request) { $opciones = $request->getSession()->get('opciones'); $userInterno = $request->get("userInterno"); $id = $request->get("fos_user_registration_form"); $auditUser = $this->container->get('security.context')->getToken()->getUser(); $confirmationEnabled = $this->container->getParameter('fos_user.registration.confirmation.enabled'); $entId = ''; $entNombre = ''; if ($userInterno == 'false') { $entId = $request->get("entId"); $entidadDao = new EntidadDao($this->container->get("doctrine")); //fos_user.user_manager $entNombre = $entidadDao->getEntidad($entId)->getEntNombre(); } $user = new User(); $userDao = new UserDao($this->container->get("doctrine")); $user = $userDao->getUserEspecifico($id['id']); $form = $this->container->get('fos_user.registration.form'); //$form = $this->createForm(new RegistrationFormType(), $usuario); $form->setData($user); $form->bindRequest($request); if ($form->isValid()) { $rolDao = new RolDao($this->container->get("doctrine")); //Se asignan roles dependiendo del usuario interno if ($userInterno == 'false') { $user->setRols($rolDao->getRolesEspecificos($user->getEntidad()->getEntImportador(), $user->getEntidad()->getEntProductor(), $user->getEntidad()->getEntComprador(), $user->getEntidad()->getEntCompVend(), $user->getUserTipo(), $user->getUserInterno(), $user->getUserInternoTipo())); } else { $user->setRols($rolDao->getRolesEspecificos(false, false, false, false, $user->getUserTipo(), $user->getUserInterno(), $user->getUserInternoTipo())); } $this->onSuccess($user, $confirmationEnabled); $user = $userDao->updateUsuario($user, $auditUser->getUsername()); $this->container->get('session')->setFlash('notice', '#### El usuario "' . $user->getUsername() . '" ha actualizado ####'); $route = 'MinSalSCAUsersBundle_mantMostrarUsuarios'; $url = $this->container->get('router')->generate($route, array('userInterno' => $userInterno, 'entId' => $entId, 'entNombre' => $entNombre, 'opciones' => $opciones)); return new RedirectResponse($url); } //FOSUserBundle:Registration:register.html return $this->container->get('templating')->renderResponse('MinSalSCAUsersBundle:Registration:register.html.' . $this->getEngine(), array('form' => $form->createView(), 'userInterno' => $userInterno, 'entId' => $entId, 'entNombre' => $entNombre, 'opciones' => $opciones)); }