src/Noahtech/Sistemas/InterjamaBundle/Controller/UsuarioController.php line 167

Open in your IDE?
  1. <?php
  2. namespace Noahtech\Sistemas\InterjamaBundle\Controller;
  3. use Noahtech\Sistemas\InterjamaBundle\Handler\McUsuarioHandler;
  4. use Noahtech\Sistemas\InterjamaBundle\Handler\McPersonaHandler;
  5. use Noahtech\Sistemas\InterjamaBundle\Handler\McClienteHandler;
  6. use Noahtech\Sistemas\InterjamaBundle\Utils\Codes;
  7. use Exception;
  8. use Symfony\Component\HttpFoundation\Request;
  9. use Symfony\Component\HttpFoundation\Response;
  10. use Symfony\Component\Routing\Annotation\Route;
  11. use Symfony\Component\Security\Core\Exception\AccessDeniedException;
  12. class UsuarioController extends BaseController {
  13.     private function validarAdmin () {
  14.         $usuario $this->getUser();
  15.         $admin false;
  16.         foreach ($usuario->getRoles() as $rol) {            
  17.             if ($rol == 'ROLE_ADMIN'){
  18.                 $admin true;
  19.             }
  20.         }
  21.         if (!$admin){
  22.             throw new AccessDeniedException("No tiene permiso para acceder a esta pagina.");
  23.         }
  24.     }
  25.     /**
  26.      * @Route("/admin/usuarios", name="admin_usuarios_listado")
  27.      * @return type
  28.      */
  29.     public function usuarioListadoAction() {
  30.         $this->validarAdmin();        
  31.         $usuario $this->getUser();
  32.         $this->setTitle("Listado de usuarios | InterJama");
  33.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  34.         $this->addBreadCrumb("Usuarios"true);
  35.         $this->data['usuario'] = $usuario;
  36.         $this->data['data'] = null;
  37.         return $this->render(
  38.                         '@NoahtechSistemasInterjama/admin/usuarios/listado.html.twig'$this->data
  39.         );
  40.     }
  41.     /**
  42.      * @Route("/admin/usuarios/nuevo", name="admin_usuarios_nuevo")
  43.      * @return type
  44.      */
  45.     public function usuarioNuevoAction() {
  46.         $this->validarAdmin();
  47.         $this->setTitle("Nuevo Usuario");
  48.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  49.         $this->addBreadCrumb("Usuarios"false"admin_usuarios_listado");
  50.         $this->addBreadCrumb("Nuevo Usuario"true);
  51.         $roles $this->get(McUsuarioHandler::class)->getRoles();
  52.         $clientes $this->get(McClienteHandler::class)->getClientes();
  53.         $this->data['data'] = null;
  54.         $this->data['roles'] = $roles;
  55.         $this->data['clientes'] = $clientes;       
  56.         return $this->render(
  57.                         '@NoahtechSistemasInterjama/admin/usuarios/nuevo.html.twig'$this->data
  58.         );
  59.     }
  60.     /**
  61.      * @Route("/admin/usuarios/{id}", name="admin_usuarios_modificacion")
  62.      * @return type
  63.      */
  64.     public function usuarioModificacionAction($id) {
  65.         $this->validarAdmin();
  66.         $this->setTitle("Modificar Usuario");
  67.         $this->addBreadCrumb("Inicio - Admin"false"admin_home");
  68.         $this->addBreadCrumb("Usuarios"false"admin_usuarios_listado");
  69.         $this->addBreadCrumb("Modificar Usuario"true);
  70.         $roles $this->get(McUsuarioHandler::class)->getRoles();
  71.         $clientes $this->get(McClienteHandler::class)->getClientes();        
  72.         $this->data['data'] = $id;
  73.         $this->data['roles'] = $roles;
  74.         $this->data['clientes'] = $clientes;        
  75.         return $this->render(
  76.                         '@NoahtechSistemasInterjama/admin/usuarios/modificacion.html.twig'$this->data
  77.         );
  78.     }
  79.     /**
  80.      * consulta de usuarios
  81.      *
  82.      * @Route("/admin/ajax/usuarios/search", name="ajax_usuario_listado", methods={"POST"}, condition="request.isXmlHttpRequest()")
  83.      */
  84.     public function searchAction(Request $request) {
  85.         $this->validarAdmin();
  86.         $searchParam $request->request->all();
  87.         $currentPage $request->query->get('page');
  88.         $sortField $request->query->get('sort');
  89.         $sortDirection $request->query->get('direction');
  90.         $currentPage null == $currentPage $currentPage;
  91.         $offset = ($currentPage 1) * $this->getTamanioPagina();
  92.         $limit $this->getTamanioPagina();
  93.         try {
  94.             /** @var McUsuarioHandler $handler */
  95.             $handler $this->get(McUsuarioHandler::class);
  96.             $lp $handler->search($offset$limit$sortField$sortDirection$searchParam);
  97.             $lp->setCurrentPage($currentPage);
  98.             $lp->setPageSize($this->getTamanioPagina());
  99.             $this->response->setData($lp);
  100.             $this->response->setCode(Codes::OK);
  101.         } catch (Exception $e) {
  102.             $this->response->setCode(Codes::ERROR);
  103.             $this->response->setMessage($e->getMessage());
  104.         }
  105.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  106.         return new Response($serializedEntity);
  107.     }
  108.     /**
  109.      * consulta de una persona por cuil
  110.      *
  111.      * @Route("/admin/ajax/usuario/persona/dni/{dni}/exists", name="ajax_usuario_persona_dni_exists", methods={"GET"}, condition="request.isXmlHttpRequest()")
  112.      */
  113.     public function personaExistsAction($dni) {
  114.         $this->validarAdmin();
  115.         try {
  116.             $handler $this->get(McPersonaHandler::class);
  117.             $persona $handler->getPersonaByDni($dni);
  118.             $this->response->setData($persona);
  119.             $this->response->setCode(Codes::OK);
  120.         } catch (Exception $e) {
  121.             $this->response->setCode(Codes::ERROR);
  122.             $this->response->setMessage($e->getMessage());
  123.         }
  124.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  125.         return new Response($serializedEntity);
  126.     }
  127.     /**
  128.      * Guarda un usuario y una persona, si la misma no existe en la BD 
  129.      *
  130.      * @Route("/admin/ajax/usuarios", name="admin_usuario_save", methods={"POST"}, condition="request.isXmlHttpRequest()")
  131.      */
  132.     public function postSaveAction(Request $request) {
  133.         $this->validarAdmin();
  134.         $data $request->request->all();
  135.         try {
  136.             $result $this->container->get(McUsuarioHandler::class)->save($datanull,$request);
  137.             $this->response->setData($result);
  138.             $this->response->setCode(Codes::OK);
  139.         } catch (Exception $e) {
  140.             $this->response->setCode($e->getStatusCode());
  141.             $this->response->setMessage($e->getMessage());
  142.         }
  143.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  144.         return new Response($serializedEntity);
  145.     }
  146.     /**
  147.      * Devuelve un usuario
  148.      *
  149.      * @Route("/admin/ajax/usuarios/{id}", name="admin_ajax_usuario_get_by_id", methods={"GET"}, condition="request.isXmlHttpRequest()")
  150.      */
  151.     public function getUsuarioByIdAction($id) {
  152.         $this->validarAdmin();
  153.         try {
  154.             $handler $this->get(McUsuarioHandler::class);
  155.             $usuario $handler->getById($id);
  156.             $this->response->setData($usuario);
  157.             $this->response->setCode(Codes::OK);
  158.         } catch (Exception $e) {
  159.             $this->response->setCode(Codes::ERROR);
  160.             $this->response->setMessage($e->getMessage());
  161.         }
  162.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  163.         return new Response($serializedEntity);
  164.     }
  165.     /**
  166.      * Modifica un usuario 
  167.      *
  168.      * @Route("/admin/ajax/usuarios/{id}", name="admin_ajax_usuario_update", methods={"PUT"}, condition="request.isXmlHttpRequest()")
  169.      */
  170.     public function putUpdateAction(Request $request$id) {
  171.         $this->validarAdmin();
  172.         $data $request->request->all(); 
  173.         $currentUser $this->getUser();
  174.         try {
  175.             $result $this->container->get(McUsuarioHandler::class)->save($data$id$request$currentUser);                       
  176.             $this->response->setData($result);
  177.             $this->response->setCode(Codes::OK);
  178.         } catch (Exception $e) {
  179.             $this->response->setCode($e->getStatusCode());
  180.             $this->response->setMessage($e->getMessage());
  181.         }
  182.         $serializedEntity $this->container->get('serializer')->serialize($this->response'json');
  183.         return new Response($serializedEntity);
  184.     }
  185. }