/** * @param Request $request * @param Application $app * * @return Response|JsonResponse */ public function miCuenta(Request $request, Application $app) { if (is_array($app['user'])) { if ($request->isXmlHttpRequest() && $request->isMethod('POST')) { $nombre = $request->get('nombre'); $correo = $request->get('correo'); $alias = $request->get('alias'); $clave = $request->get('clave'); $usuarioModelo = new UsuarioModelo($app['db']); if ($clave) { //$filasAfectadas = $usuarioModelo->modificar($app['user']['id'], $app['user']['id_perfil'], $nombre, $correo, $alias, $app['user']['clave']); } else { $filasAfectadas = $usuarioModelo->modificar($app['user']['id'], $app['user']['id_perfil'], $nombre, $correo, $alias); } if ($filasAfectadas == 1) { return new JsonResponse('Actualizada mi cuenta', 200); } else { return new JsonResponse('Nada que actualizar', 202); } } elseif ($request->isXmlHttpRequest() && $request->isMethod('GET')) { return $app['twig']->render('frontend/usuario/micuenta.html.twig'); } } else { return new Response('Forbiden', 403); } }
/** * @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)); }