Example #1
0
 /**
  * @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));
 }
Example #2
0
 /**
  * @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'));
 }