/** * @Route("/updateUser/{id}", name="updateUser") * @Template() * @Security("has_role('ROLE_ADMIN')") */ public function updateAction(Request $request, $id) { #Recuperando o serviço do container $userRN = $this->get('rn_user'); $projetoRN = $this->get('rn_projeto'); $perfilRN = $this->get('rn_perfil'); $roleRN = $this->get('rn_role'); #Recuperando os projetos e perfís $projetos = $projetoRN->all(); $perfis = $perfilRN->all(); #Recuperando o Usuário $user = $userRN->find($id); $oldPassword = $user->getPassword(); $user->setPassword(""); #Criando o formulário $form = $this->createForm(new UserType(), $user); #Verifica a existência da foto do usuário if ($user->getFoto()) { $documentoOld = $user->getFoto(); $pathOld = $documentoOld->getAbsolutePath(); } #Verficando se é uma submissão if ($request->getMethod() === "POST") { #Repasando a requisição $form->handleRequest($request); #Verifica se os dados são válidos if ($form->isValid()) { #Recuperando os dados $user = $form->getData(); $user->clearRoles(); $user->clearPerfis(); #Trabalhando com a nova senha if ($user->getPassword() != "") { $encoder = $this->container->get('security.password_encoder'); $encoded = $encoder->encodePassword($user, $user->getPassword()); $user->setPassword($encoded); } else { $user->setPassword($oldPassword); } #Fazendo o upload da foto if (!is_null($user->getFoto()) && $user->getFoto()->getFile() !== null) { if (isset($documentoOld)) { $doctrine = $this->getDoctrine()->getManager(); $documentoOld->removeFile($pathOld); $doctrine->remove($documentoOld); $doctrine->flush(); } #Criando um novo nome para o arquivo $originalName = $user->getFoto()->getFile()->getClientOriginalName(); $arrayName = explode(".", $originalName); $newName = md5(uniqid(null, true)) . "." . $arrayName[count($arrayName) - 1]; $user->getFoto()->upload($newName); $user->getFoto()->setUser($user); $doctrine = $this->getDoctrine()->getManager(); $doctrine->persist($user->getFoto()); $doctrine->flush(); } else { if (!isset($documentoOld)) { $user->setFoto(null); } } #Recuperando os perfís e permissões $permissoes = $request->request->get("permissao"); $perfisRequest = $request->request->get("perfil"); $permissoes = $permissoes == null ? array() : $permissoes; $perfisRequest = $perfisRequest == null ? array() : $perfisRequest; #Perfís foreach ($perfisRequest as $perfil) { $objPerfil = $perfilRN->find($perfil); if ($objPerfil) { $user->addPerfi($objPerfil); } } #Permissões foreach ($permissoes as $permissao) { $role = $roleRN->findByRole($permissao); if ($role) { $user->addRole($role[0]); } else { $newRole = new \Serbinario\Bundles\SecurityBundle\Entity\Role(); $newRole->setNomeRole($permissao); $user->addRole($newRole); } } #Executando e recuperando o resultado $result = $userRN->update($user); if ($result) { #Messagem de retorno $this->get('session')->getFlashBag()->add('success', 'Dados cadastrado com sucesso'); } else { #Messagem de retorno $this->get('session')->getFlashBag()->add('danger', 'Erro ao cadastrado Dados'); } #Retorno return $this->redirectToRoute("gridUser"); } else { #Messagem de retorno $this->get('session')->getFlashBag()->add('danger', (string) $form->getErrors()); } } $rolesDoUser = array(); foreach ($user->listRoles()->toArray() as $role) { $rolesDoUser[] = $role->getNomeRole(); } $perfisDoUser = array(); foreach ($user->getPerfis()->toArray() as $perfil) { $perfisDoUser[] = $perfil->getNomePerfil(); } #Retorno return array("form" => $form->createView(), "perfis" => $perfis, "projetos" => $projetos, "perfisDoUser" => $perfisDoUser, "rolesDoUser" => $rolesDoUser, "logo" => $user->getFoto()); }
/** * @Route("updatePerfil/{id}", name="updatePerfil") * @Template() */ public function updateAction(Request $request, $id) { #Recuperando o serviço do container $perfilRN = $this->get('rn_perfil'); $projetoRN = $this->get('rn_projeto'); $roleRN = $this->get('rn_role'); #recuperando o perfil e os projetos $perfil = $perfilRN->find($id); $projetos = $projetoRN->all(); #Criando o formulário $form = $this->createForm(new PerfilType(), $perfil); #Verficando se é uma submissão if ($request->getMethod() === "POST") { #Repasando a requisição $form->handleRequest($request); #Recuperando os perfís e permissões $permissoes = $request->request->get("permissao"); #Verifica se os dados são válidos if ($form->isValid()) { #Recuperando os dados $perfil = $form->getData(); $perfil->clearRoles(); #Permissões foreach ($permissoes as $permissao) { $role = $roleRN->findByRole($permissao); if ($role) { $perfil->addRole($role[0]); } else { $newRole = new \Serbinario\Bundles\SecurityBundle\Entity\Role(); $newRole->setNomeRole($permissao); $perfil->addRole($newRole); } } #Executando e recuperando o resultado $result = $perfilRN->update($perfil); if ($result) { #Messagem de retorno $this->get('session')->getFlashBag()->add('success', 'Dados cadastrado com sucesso'); } else { #Messagem de retorno $this->get('session')->getFlashBag()->add('danger', 'Erro ao cadastrado Dados'); } #Retorno return $this->redirectToRoute("gridPerfil"); } else { #Messagem de retorno $this->get('session')->getFlashBag()->add('danger', (string) $form->getErrors()); } } $rolesDoPerfil = array(); foreach ($perfil->getRoles()->toArray() as $role) { $rolesDoPerfil[] = $role->getNomeRole(); } #Retorno return array("form" => $form->createView(), "projetos" => $projetos, "rolesDoPerfil" => $rolesDoPerfil); }