src/Controller/Seguridades/AdminController.php line 58

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Seguridades;
  3. use App\Controller\InformacionGeneralController;
  4. use App\Entity\Catalogos\Cantones;
  5. use App\Entity\Catalogos\Iconos;
  6. use App\Entity\Catalogos\Parroquias;
  7. use App\Entity\Persona\CargosRol;
  8. use App\Entity\Persona\Persona;
  9. use App\Entity\Seguridades\{GrupoGrupoCargoMailSalienteModuloPagina,PermisosGrupo,PermisosUsuarioSeccionesUsuarioUsuarioGrupo};
  10. use App\Form\Seguridades\Persona\{CargosRolTypePersonaType};
  11. use App\Form\Seguridades\EditProfileType;
  12. use App\Form\Seguridades\Entidades\{CamposTypeGruposTypeMailSalienteTypeModuleType,PagesType,SectionsType};
  13. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  14. use Symfony\Component\Routing\Annotation\Route;
  15. use Symfony\Component\Security\Core\User\UserInterface;
  16. use Symfony\Component\HttpFoundation\Request;
  17. use Doctrine\ORM\EntityManagerInterface;
  18. use App\Service\{CacheService,AdminService,LoginServiceRegistroService};
  19. use Exception;
  20. class AdminController extends AbstractController
  21. {
  22.     private $em;
  23.     private $cache;
  24.     public function __construct(EntityManagerInterface $emCacheService $cache){
  25.       $this->em $em;
  26.       $this->cache $cache;
  27.     }
  28.     public function home(UserInterface $user,AdminService $adminService){
  29.       if($user->getIdPersona() == null):
  30.         return $this->redirectToRoute('addPerson');
  31.       endif;
  32.       $adminService->addAccess($user,'home'$this->em);
  33.       $informacionGeneralController = new InformacionGeneralController($this->em);
  34.       /* $permissions =  $adminService->getPermissionsSec($user,$em,'profile');
  35.       dump($permissions); */
  36.       return $this->render('Seguridades/admin/home/index.html.twig',[ 
  37.         'informacionGeneral' => $informacionGeneralController->getData($user),
  38.       ]);
  39.     }
  40.     public function addPersonInUserGmail(UserInterface $user,AdminService $adminService){
  41.       $form $adminService->addPersonInUserGmailForm();
  42.       $informacionGeneralController = new InformacionGeneralController($this->em);
  43.       return $this->render('Seguridades/admin/perfil/addPerson.html.twig', [
  44.         'fecha'=> new \DateTime(),
  45.         'form'=> $form->createView(), 
  46.         'informacionGeneral' => $informacionGeneralController->getData($user),  
  47.       ]);
  48.     }
  49.  
  50.     public function addPersonExternal(AdminService $adminService){
  51.       $form $adminService->addPersonInUserGmailForm();
  52.       return $this->render('Seguridades/admin/addPerson/index.html.twig', [
  53.         'fecha'=> new \DateTime(),
  54.         'form'=> $form->createView(), 
  55.       ]);
  56.     }
  57.     public function menucliente() {
  58.       return $this->render('Administration/cliente/index.html.twig');
  59.     }
  60.     public function profile(UserInterface $userAdminService $adminServiceEntityManagerInterface $em)
  61.     {
  62.       if($user->getIdPersona() == null):
  63.         return $this->redirectToRoute('addPerson');
  64.       endif;
  65.       //$adminService->addAccess($user,'profile', $em);
  66.       //$informacionGeneralController = new InformacionGeneralController($em);
  67.       /*  $permissions =  $adminService->getPermissionsSec($user,$em,'profile');
  68.       if(count($permissions)==0): return $this->redirectToRoute('paginaRestringida'); endif; */
  69.       //Comprueba si necesita cambiar su password
  70.       if($adminService->checkPassChange($user)):return $this->redirectToRoute('change_pass');endif;
  71.       $form $adminService->addPersonInUserGmailForm($user);
  72.       $informacionGeneralController = new InformacionGeneralController($this->em);
  73.       return $this->render('Seguridades/admin/perfil/index.html.twig', [
  74.         'fecha'=> new \DateTime(),
  75.         'informacionGeneral' => $informacionGeneralController->getData($user),
  76.         'form'=> $form->createView(),
  77.       ]);
  78.     }
  79.     public function paginaRestringida(UserInterface $user){
  80.       return $this->render('Seguridades/admin/accesoDenegado.html.twig',[
  81.         'nombres' => $user->getIdPersona()->getNombres()
  82.       ]);
  83.     }
  84.     
  85.     //pantalla que obliga al usuario a cambiar su contraseña
  86.     public function changePass(UserInterface $userAdminService $adminService)
  87.     {
  88.       $form $adminService->formSetPass();         
  89.       return $this->render('Seguridades/usuario/changePass/setPass.html.twig',[
  90.         'form'=> $form->createView(),              
  91.       ]);
  92.         
  93.     }
  94.     public function changePassAdmin(UserInterface $user,AdminService $adminServiceEntityManagerInterface $em)
  95.     {
  96.         $adminService->addAccess($user,'changePassAdmin'$em);
  97.         $informacionGeneralController = new InformacionGeneralController($em);
  98.         $form $adminService->formeditPass($user);    
  99.         return $this->render('Seguridades/admin/changePass/index.html.twig',[
  100.           'form'=> $form->createView(),      
  101.           'informacionGeneral' => $informacionGeneralController->getData($user),
  102.         ]);
  103.     }
  104.     public function catalogs(UserInterface $userEntityManagerInterface $emAdminService $adminSer)
  105.     {
  106.       $adminSer->addAccess($user,'catalogsAdministration'$em);
  107.       $informacionGeneralController = new InformacionGeneralController($em);
  108.       $permissions $adminSer->getPermissionsSec($user,$em,'usersGroups');
  109.       return $this->render('Seguridades/admin/catalogs/index.html.twig',[
  110.         'permisos'=>$permissions,
  111.         'catalogos' =>(isset($permissions[0]) && $permissions[0]['section'] == 'Administración de Catálogos' && $permissions[0]['see'])?true:false,
  112.         'informacionGeneral' => $informacionGeneralController->getData($user),
  113.       ]);
  114.     }
  115.     public function usersGroups(UserInterface $userAdminService $adminSerEntityManagerInterface $em){
  116.       $adminSer->addAccess($user,'usersGroups'$em);
  117.       $informacionGeneralController = new InformacionGeneralController($em);
  118.       $permissions $adminSer->getPermissionsSec($user,$em,'usersGroups');
  119.       $groupForm $this->createForm(GruposType::class,new Grupo());
  120.       $personForm $this->createForm(PersonaType::class,new Persona());
  121.       $cargosForm $this->createForm(CargosRolType::class,new CargosRol());
  122.       $this->cache->delete('idCargo');
  123.       return $this->render('Seguridades/admin/usersGroups/usersGroups.html.twig',[ 
  124.         'fecha'=> new \DateTime(),
  125.         'informacionGeneral' => $informacionGeneralController->getData($user),
  126.         'groups'=> $groupForm->createView(),
  127.         'person'=> $personForm->createView(),
  128.         'cargosRol'=> $cargosForm->createView(),
  129.         'permisos'=>$permissions,
  130.         'grupos' =>(isset($permissions[0]) && $permissions[0]['section'] == 'Grupos' && $permissions[0]['see'])?true:false,
  131.         'cargos' =>(isset($permissions[1]) && $permissions[1]['section'] == 'Cargos' && $permissions[1]['see'])?true:false,
  132.         'usuarios' =>(isset($permissions[2]) && $permissions[2]['section'] == 'Usuarios' && $permissions[2]['see'])?true:false
  133.       ]);
  134.     }
  135.     public function system(UserInterface $userAdminService $adminSerEntityManagerInterface $em){
  136.       $adminSer->addAccess($user,'system'$em);
  137.       $informacionGeneralController = new InformacionGeneralController($em);
  138.       $permissions $adminSer->getPermissionsSec($user,$em,'system');
  139.       $moduleForm $this->createForm(ModuleType::class, new Modulo());
  140.       $pageForm $this->createForm(PagesType::class, new Pagina());
  141.       $sectionForm $this->createForm(SectionsType::class, new Secciones());
  142.       return $this->render('Seguridades/admin/system/system.html.twig',[
  143.         'moduleForm'=>$moduleForm->createView(), 
  144.         'pageForm'=>$pageForm->createView(),
  145.         'sectionForm'=>$sectionForm->createView(),
  146.         'fecha'=> new \DateTime(),
  147.         'informacionGeneral' => $informacionGeneralController->getData($user),
  148.         'paginaActual' => 'Sistema',
  149.         'permisos'=>$permissions,
  150.         'modules'=>(isset($permissions[0]) && $permissions[0]['section'] =='Módulos' && $permissions[0]['see'])?true:false,
  151.         'pages'=>(isset($permissions[1]) && $permissions[1]['section'] =='Páginas' && $permissions[1]['see'])?true:false,
  152.         'sections'=>(isset($permissions[2]) && $permissions[2]['section'] =='Secciones' && $permissions[2]['see'])?true:false
  153.       ]);
  154.     }
  155.     public function permissions(UserInterface $userEntityManagerInterface $emAdminService $adminSer){
  156.       $adminSer->addAccess($user,'permissions'$em);
  157.       $informacionGeneralController = new InformacionGeneralController($em);
  158.       $permissions $adminSer->getPermissionsSec($user,$em,'permissions');
  159.       return $this->render('Seguridades/admin/permissions/permissions.html.twig',[
  160.         'informacionGeneral' => $informacionGeneralController->getData($user),
  161.         'permisos'=>$permissions,
  162.         'grUs'=>(isset($permissions[0]) && $permissions[0]['section'] =='Grupo / Usuario' && $permissions[0]['see'])?true:false,
  163.         'per'=>(isset($permissions[1]) && $permissions[1]['section'] =='Permisos' && $permissions[1]['see'])?true:false,
  164.       ]);
  165.     }
  166.     
  167.     public function mailAdministration(UserInterface $userEntityManagerInterface $emAdminService $adminSer){
  168.       $adminSer->addAccess($user,'mailAdministration'$em);
  169.       $informacionGeneralController = new InformacionGeneralController($em);
  170.       $permissions $this->getPermissionsMailAdministration($user,$adminSer,$em);
  171.       $mailSalienteForm $this->createForm(MailSalienteType::class, new MailSaliente());
  172.       
  173.       return $this->render('Seguridades/admin/mailAdministration/mailAdministration.html.twig',[
  174.         'informacionGeneral' => $informacionGeneralController->getData($user),
  175.         'permisos'=>$permissions,
  176.         'parametersMail'=>$permissions[0]['see'],
  177.         'mailSalienteForm'=>$mailSalienteForm->createView(), 
  178.       ]);
  179.     }
  180.     private function getPermissionsMailAdministration(UserInterface $user,AdminService $adminSer,EntityManagerInterface $em){
  181.       $permissions =  $adminSer->getPermissionsSec($user,$em,'mailAdministration');
  182.       if(count($permissions)==0): return $this->redirectToRoute('paginaRestringida'); endif;
  183.       $parametersMail = ['see'=>false,'read'=>false,'edit'=>false];
  184.       foreach($permissions as $per){
  185.           switch ($per['section']){
  186.               case 'Parámetros Correo'$parametersMail $per;break;
  187.           }
  188.       }
  189.       return [$parametersMail];
  190.   }
  191.     /**
  192.      * @Route("/comprobChPss", name="setPass")
  193.      */
  194.     public function setPass(Request $requestEntityManagerInterface $emUserInterface $user){
  195.       $loginService = new LoginService();
  196.       $pass $request->request->get('pass');
  197.       try{
  198.         $us $em->getRepository(Usuario::class)->find($user->getId());
  199.         $newPass $loginService->encode($pass);
  200.         $us->setPassword($newPass);
  201.         $us->setNuevaClave(false);
  202.         $em->persist($us);$em->flush();
  203.         return $this->json(true);
  204.       }catch(Exception $e){
  205.         return $this->json(false);
  206.       }
  207.     }
  208.     /**
  209.      * @Route("/verifyPass", name="verifyPass")
  210.      */
  211.     public function verifyPass(Request $requestUserInterface $user){
  212.       $passAc $user->getPassword();
  213.       $passNw $request->request->get('passNw');
  214.       return $this->json(password_verify($passNw,$passAc));
  215.     }
  216.     /**
  217.      * @Route("/verifyOldPass", name="verifyOldPass")
  218.      */
  219.     public function verifyOldPass(Request $requestUserInterface $user){
  220.       $pass $request->request->get('pass');
  221.       $oldPass $user->getPassword();
  222.       return $this->json(password_verify($pass,$oldPass));
  223.     }
  224.     
  225.     /**
  226.      * @Route("/getIcons", name="getIcons")
  227.      */
  228.     public function getIcons(EntityManagerInterface $em){
  229.       return $this->json($em->getRepository(Iconos::class)->findBy(['activo'=>true],['id'=>'ASC']));
  230.     }
  231.     /**
  232.      * @Route("/validateCI", name="validateCI")
  233.      */
  234.     public function validateCI(Request $requestRegistroService $regroService){
  235.       $ci $request->request->get('ci');
  236.       return $this->json($regroService->ValidateCI($ci));
  237.     }
  238.     /**
  239.      * @Route("/getCantones", name="getCantones")
  240.      */
  241.     public function getCantones(Request $request){
  242.       $id $request->request->get('idProvincia');
  243.       $cantones $this->em->getRepository(Cantones::class)->findBy(['idProvincias' => $id],['nombre'=>'ASC']);
  244.       return $this->json($cantones??[]);
  245.     }
  246.     /**
  247.      * @Route("/getParroquias", name="getParroquias")
  248.      */
  249.     public function getParroquias(Request $request){
  250.       $id $request->request->get('idCanton');
  251.       $parroquias $this->em->getRepository(Parroquias::class)->findBy(['idCantones' => $id],['nombre'=>'ASC']);
  252.       return $this->json($parroquias??[]);
  253.     }
  254. }