/** * @param Request $request * @param Application $app * @param int $id * * @return mixed|RedirectResponse */ public function editar(Request $request, Application $app, $id) { // Se adquiere el encoder $encoder = $app['security.encoder.digest']; // Se adquiere el token $token = $app['security']->getToken(); // Se adquiere el usuario if (is_object($token)) { $user = $token->getUser(); } $usuarioModelo = new UsuarioModelo($app['db']); $usuario = $usuarioModelo->getPorId($id); if (!empty($usuario)) { $perfilModelo = new Perfil($app['db']); $perfiles = $perfilModelo->getTodo(); foreach ($perfiles as $perfil) { $options[$perfil['id']] = $perfil['nombre']; } $initial_data = array('nombre' => $usuario['nombre'], 'correo' => $usuario['correo'], 'alias' => $usuario['alias']); $form = $app['form.factory']->createBuilder('form', $initial_data); $form = $form->add('id_perfil', 'choice', array('choices' => $options, 'data' => $usuario['id_perfil'], 'required' => true)); $form = $form->add('nombre', 'text', array('required' => true)); $form = $form->add('correo', 'text', array('required' => true)); $form = $form->add('alias', 'text', array('required' => true)); $form = $form->add('nueva_clave', 'password', array('required' => false)); $form = $form->getForm(); if ("POST" == $request->getMethod()) { $form->handleRequest($request); if ($form->isValid()) { $data = $form->getData(); if (!empty($data['nueva_clave'])) { // codificar la clave $nueva_clave = $encoder->encodePassword($data['nueva_clave'], $user->getSalt()); $filasAfectadas = $usuarioModelo->modificar($id, $data['id_perfil'], $data['nombre'], $data['correo'], $data['alias'], $nueva_clave); } else { $filasAfectadas = $usuarioModelo->modificar($id, $data['id_perfil'], $data['nombre'], $data['correo'], $data['alias']); } if ($filasAfectadas == 1) { $app['session']->getFlashBag()->add('info', array('message' => '¡Usuario editado!')); } return $app->redirect($app['url_generator']->generate('usuario_edit', array("id" => $id))); } } } else { $app['session']->getFlashBag()->add('warning', array('message' => '¡Usuario no encontrado!')); return $app->redirect($app['url_generator']->generate('usuario_list')); } return $app['twig']->render('backend/usuario/edit.html.twig', array("form" => $form->createView(), "id" => $id)); }
/** * @param Request $request * @param Application $app * @param int $id * * @return RedirectResponse */ public function eliminar(Request $request, Application $app, $id) { $perfilModelo = new PerfilModelo($app['db']); $perfil = $perfilModelo->getPorId($id); if (!empty($perfil)) { $perfilesImportantes = $perfilModelo->getPerfilesImportantes(); if (in_array($id, $perfilesImportantes)) { $app['session']->getFlashBag()->add('warning', array('message' => '¡Perfil importante! No puede ser eliminado.')); } else { $filasAfectadas = $perfilModelo->eliminar($id); if ($filasAfectadas == 1) { $app['session']->getFlashBag()->add('info', array('message' => '¡Perfil eliminado!')); } } } else { $app['session']->getFlashBag()->add('warning', array('message' => '¡Perfil no encontrado!')); } return $app->redirect($app['url_generator']->generate('perfil_list')); }