<?php
namespace App\Controller;
// begin token-guard ---------------------------------------------------------------------------------
use Symfony\Component\Security\Csrf\CsrfTokenManagerInterface;
use Symfony\Component\Security\Csrf\CsrfToken;
use Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException;
use Symfony\Component\Security\Guard\Authenticator\AbstractFormLoginAuthenticator;
// end token-guard ---------------------------------------------------------------------------------
// begin mochel meyer products --------------------------------------------------------------
use App\Service\LOGDEFService;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Component\HttpFoundation\Request;
use Doctrine\Persistence\ManagerRegistry;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
use App\Entity\usr;
use App\Entity\usl;
class DefaultController extends AbstractController
{
// some services, begin token-guard ---------------------------------------------------------------------------------
private $csrfTokenManager;
private $parambag;
public function __construct
(
CsrfTokenManagerInterface $csrfTokenManager,
ParameterBagInterface $parambag
)
{
$this->csrfTokenManager = $csrfTokenManager;
$this->parambag = $parambag;
}
// end some services, token-guard ---------------------------------------------------------------------------------
#[Route(path: '/', name: 'indexRedirect')]
public function indexRedirect(Request $request)
{
return $this->redirect($this->generateUrl('pageaccueil'));
}
#[Route(path: '/accueil', name: 'pageaccueil')]
public function index
(
Request $request,
ManagerRegistry $doctrine,
LOGDEFService $logdefservice
): Response
{
$em = $doctrine->getManager();
$user = $this->getUser();
$usrid = $user->getUsrid();
$prfid = $user->getPrfid()->getPrfid();
$prflib = $user->getPrfid()->getPrflib();
// vérif statu du compte (0,1,2)
$cptok=true;
$usr = $em->getRepository(usr::class)->findOneBy(array('usrid'=>$usrid));
if(($usr->getUsrstatut()==2)||($usr->getUsrstatut()==0)){
if($usr->getUsrstatut()==2){
$msg = "Votre compte est actuellement bloqué (nac)"; // non actif
}else{
$msg = "Votre compte est en attente de validation (ava)"; // attente validation
}
$this->get('session')->getFlashBag()->add(
"Erreur",
$msg
);
// renvoi page erreur
return $this->render('default\noaccess.html.twig',
array(
)
);
$cptok = false;
}else{
if($usr->getUsrdatchgpwd()!=null){ // vérification de la validité du pwd
$search_now = time();
$datchglimit = date('Y-m-d', mktime(0,0,0,date('m', $search_now),date('d', $search_now),date('Y', $search_now)-1));
if($usr->getUsrdatchgpwd()->format('Y-m-d')<=$datchglimit){
$pwdok = false;
}
}else{
$cptok = false;
}
if($cptok==false){ // modif pwd oblig
return $this->render('usr\pwdoubli.html.twig', array(
'msgcplt' => '',
'pwdchgoblig' => 1
));
}
}
// =============== SUIVI LOGIN'S =====================
//var_dump($_SERVER);
if($cptok==true){
if(isset($_SERVER['HTTP_CACHE_CONTROL'])){ // variable temporaire, login réussi, mémo
if($_SERVER['HTTP_CACHE_CONTROL']=="max-age=0"){ // indicateur démarrage session
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
}else{
$ip = $_SERVER['REMOTE_ADDR']; // en général 127.0.0.1
}
$cook = '';
if(isset($_SERVER['HTTP_COOKIE'])){
$cook = str_replace('PHPSESSID=','',$_SERVER['HTTP_COOKIE']);
$pos = strpos($cook, ";");
if($pos>1){
$cook = substr($cook, 0, $pos-1);
}else{
$cook = substr($cook, 0, 254);
}
}
// enrgt dde : IP + Heure + login
$datdde = new \DateTime();
$usl = new usl;
$usl->setUslip($ip);
$usl->setUsldat($datdde);
$usl->setUsllogin($user->getUsername());
$usl->setUslctx('login');
$usl->setUslcook($cook);
$em->persist($usl);
$em->flush();
}
}
// =============================================
// màj usr ->date dernier log
$usrdatlog = new \DateTime();
$usrdatlog->createFromFormat("Y m d ", time());
$usr = $em->getRepository(usr::class)->findOneBy(array('usrid'=>$user->getUsrid()));
$usr->setUsrchgpwdtok(null);
$usr->setUsrdatddechgpwd(null);
$usr->setUsrdatlog($usrdatlog);
$em->persist($usr);
$em->flush();
// a) les infobulles de la page
$lesdefs = array('ppiplus','modplus','pfiplus');
$deflog = array();
foreach($lesdefs as $ladef){
$deflog[$ladef] = $logdefservice->get_unedef($ladef);
}
// expérience pour une mise en cache supplémentaire (10/24), voir aussi
// config\packages\framework.yaml, rubrique when@dev....
// $response = new Response(
// $this->render('default\index.html.twig', array(
// 'base_dir' => realpath($this->parambag->get('kernel.project_dir').'/..').DIRECTORY_SEPARATOR,
// 'help_dir' => $this->parambag->get('dochelp_web_path'),
// 'prfid' => $prfid,
// 'prflib' => $prflib,
// 'deflog' => $deflog
// ))
// );
// $response->setSharedMaxAge(3600);
// return $response;
// Affichage index
return $this->render('default\index.html.twig', array(
'base_dir' => realpath($this->parambag->get('kernel.project_dir').'/..').DIRECTORY_SEPARATOR,
'help_dir' => $this->parambag->get('dochelp_web_path'),
'prfid' => $prfid,
'prflib' => $prflib,
'deflog' => $deflog
));
}
}
#[Route(path: '/savplus', name: 'savoirplus')]
public function ensavoirplus
(
Request $request,
ManagerRegistry $doctrine,
): Response
{
// affichage d'une page neutre : explications sur un des utilitaires
$em = $doctrine->getManager();
$user = $this->getUser();
if($user!=null){ // protection ACL contre les lectures intempestives extérieures (saisie url directe)
if(isset($_GET['wich'])){ // quel outil ?
switch($_GET['wich']){
case 'ppiplus':
return $this->render('default\ppiplus.html.twig', array());
break;
case 'modplus':
return $this->render('default\modplus.html.twig', array());
break;
case 'pfiplus':
return $this->render('default\pfiplus.html.twig', array());
break;
default:
$this->get('session')->getFlashBag()->add(
'error',
"Impossible d'accéder à la fonction demandée !"
);
return $this->redirect($this->generateUrl('pageaccueil')); // renvoi caval
break;
}
}else{ // protection ACL contre les lectures intempestives extérieures (saisie url directe)
$this->get('session')->getFlashBag()->add(
'Erreur',
"Impossible d'accéder à la fonction demandée !"
);
return $this->redirect($this->generateUrl('pageaccueil')); // renvoi caval
}
}else{ // protection ACL contre les lectures intempestives extérieures (saisie url directe)
$this->get('session')->getFlashBag()->add(
'Erreur',
"Impossible d'accéder à la fonction demandée !"
);
return $this->redirect($this->generateUrl('pageaccueil')); // renvoi caval
}
}
// ===============================================================
// utilitaires iltu
// ===============================================================
/**
* 2020...
* suppression des comptes vides créés avant 31-12-2014 (ok si exec après ouv.session)
* 2022-07-15
* suppression des comptes vides créés avant 31-12-2016 (ok si exec après ouv.session)
* suppression des simu prosper, fusion, cif vides
*/
#[Route(path: '/supUsrVide', name: 'supUsrVide')]
public function supUsrVide(Request $request)
{
// ATTENTION : à ne pas utilier ou mettre à niveau avec PRB...
$em = $doctrine->getManager();
$user = $this->getUser();
if($user->getusrid() == 11){ // vérif me
$nb_usr_supp=0;$nb_pro_supp=0;$nb_fu_supp=0;$nb_cif_supp=0;
$query = $em->getRepository(usr::class)->createQueryBuilder('usr');
$query
->select('usr')
->where('usr.usrdatcre <= :datcrelimit')
// ->setParameter('datcrelimit' , '2014-12-31')
->setParameter('datcrelimit' , '2016-12-31')
->orderBy('usr.usrdatcre', 'ASC')
;
$usrs = $query->getQuery()->getResult();
foreach($usrs as $usr){
$usrasupp = true;
// =================================== PROSPER
$pros = $em->getRepository(pro::class)->createQueryBuilder('pro')
->select('pro')
->where('pro.usrid = :usrid')
->setParameter('usrid' , $usr->getusrid())
->orderBy('pro.proid', 'ASC')
->getQuery()->getResult()
;
foreach($pros as $pro){
$proan = $em->getRepository(proan::class)->createQueryBuilder('proan')
->select('SUM(proan.PROAN_T1_a01+proan.PROAN_T1_a02+proan.PROAN_T1_a03+proan.PROAN_T1_a04+proan.PROAN_T1_a05+proan.PROAN_T1_a51+proan.PROAN_T1_b01+proan.PROAN_T1_b02+proan.PROAN_T1_b03+proan.PROAN_T1_b04+proan.PROAN_T1_b05+proan.PROAN_T1_c01+proan.PROAN_T1_c02+proan.PROAN_T1_c51+proan.PROAN_T1_x51+proan.PROAN_T1_x52+proan.PROAN_T2_a01+proan.PROAN_T2_a02+proan.PROAN_T2_a03+proan.PROAN_T2_a04+proan.PROAN_T2_a51+proan.PROAN_T2_a52+proan.PROAN_T2_a56+proan.PROAN_T2_a57+proan.PROAN_T3_a01+proan.PROAN_T3_a02+proan.PROAN_T3_a03+proan.PROAN_T3_a04+proan.PROAN_T3_a05+proan.PROAN_T3_a06+proan.PROAN_T3_a51+proan.PROAN_T3_b01+proan.PROAN_T3_b02+proan.PROAN_T3_b03+proan.PROAN_T3_b04+proan.PROAN_T3_b05+proan.PROAN_T3_b06+proan.PROAN_T3_b07+proan.PROAN_T3_b08+proan.PROAN_T3_b51+proan.PROAN_T3_x51+proan.PROAN_T4_a01+proan.PROAN_T4_a02+proan.PROAN_T4_a03+proan.PROAN_T4_a04+proan.PROAN_T4_a51+proan.PROAN_T4_a52) AS TOTO')
->where('proan.proid = :proid')
->setParameter('proid',$pro->getproid())
->groupBy('proan.proid')
->getQuery()
;
if($proan->getSingleScalarResult()==0){ // PRO à supprimer
foreach($pro->getPROANS() as $proan_a_sup){
$pro->removePROAN($proan_a_sup);
}
$em->persist($pro);
$em->flush();
$pro_a_supp = $em->getRepository(pro::class)->findOneBy(array('proid'=>$pro->getproid()));
$em->remove($pro_a_supp);
$em->flush();
$nb_pro_supp++;
}else{
$usrasupp = false; // USR à maintenir
}
}
// =================================== FUSION
$fus = $em->getRepository(fu_sim::class)->createQueryBuilder('fusim')
->select('fusim')
->where('fusim.usrid = :usrid')
->setParameter('usrid' , $usr->getusrid())
->orderBy('fusim.SIMID', 'ASC')
->getQuery()->getResult()
;
foreach($fus as $fu){
$fucomm = $em->getRepository(fu_comm::class)->createQueryBuilder('fucomm')
->select('SUM(fucomm.COMTHBAS+fucomm.COMTHPRO+fucomm.COMFBBAS+fucomm.COMFBPRO+fucomm.COMFNBBAS+fucomm.COMFNBPRO+fucomm.COMCFEBAS+fucomm.COMCFEPRO+fucomm.COMCVAE+fucomm.COMIFER+fucomm.COMTAFNB+fucomm.COMTASCOM+fucomm.COMDCRTP+fucomm.COMFNGIR+fucomm.COMCPS+fucomm.COMACNE) AS TOTO')
->where('fucomm.SIMID = :SIMID')
->setParameter('SIMID',$fu->getSIMID())
->groupBy('fucomm.SIMID')
->getQuery()
;
$totcomm = $fucomm->getOneOrNullResult();
if($totcomm==null){
$totcomm = 0;
}
$fuepci = $em->getRepository(fu_epci::class)->createQueryBuilder('fuepci')
->select('SUM(fuepci.EPCDGFPOP+fuepci.EPCCOMNBR+fuepci.EPCDGFHAB+fuepci.EPCCIF+fuepci.EPCTHTXDPT+fuepci.EPCTHBAS+fuepci.EPCTHPRO+fuepci.EPCTHPROC+fuepci.EPCFBBAS+fuepci.EPCFBPRO+fuepci.EPCFBPROC+fuepci.EPCFNBBAS+fuepci.EPCFNBPRO+fuepci.EPCFNBPROC+fuepci.EPCCFEBAS+fuepci.EPCCFEPRO+fuepci.EPCCFEPROC+fuepci.EPCCFEZBAS+fuepci.EPCCFEZPRO+fuepci.EPCCFEEBAS+fuepci.EPCCFEEPRO+fuepci.EPCCVAE+fuepci.EPCIFER+fuepci.EPCTAFNB+fuepci.EPCTASCOM+fuepci.EPCDCRTP+fuepci.EPCFNGIR+fuepci.EPCCPS+fuepci.EPCACNE+fuepci.EPCCOMCVAE+fuepci.EPCCOMIFER+fuepci.EPCCOMTAFNB+fuepci.EPCCOMTASCOM+fuepci.EPCCOMCPS+fuepci.EPCCOMACTP+fuepci.EPCCOMCT+fuepci.EPCCOMARF+fuepci.EPCCOMCSC+fuepci.EPCCOMFNGIR+fuepci.EPCCOMDCRTP+fuepci.EPCOM+fuepci.EPCCOMOM+fuepci.EPCRASS+fuepci.EPCCOMRASS+fuepci.EPCCOMDS+fuepci.EPCDOTBAS+fuepci.EPCDOTPERE+fuepci.EPCBONIF+fuepci.EPCMAJOR+fuepci.EPCGARANT+fuepci.EPCECRET) AS TOTO')
->where('fuepci.SIMID = :SIMID')
->setParameter('SIMID',$fu->getSIMID())
->groupBy('fuepci.SIMID')
->getQuery()
;
$totepci = $fuepci->getOneOrNullResult();
if($totepci==null){
$totepci = 0;
}
if(($totcomm==0)&&($totepci==0)){ // SIM à supprimer
foreach($fu->getFUCOMMS() as $fucomm_a_sup){
$fu->removeFUCOMM($fucomm_a_sup);
}
foreach($fu->getFUEPCIS() as $fuepci_a_sup){
$fu->removeFUEPCI($fuepci_a_sup);
}
$em->persist($fu);
$em->flush();
$fu_a_supp = $em->getRepository(fu_sim::class)->findOneBy(array('SIMID'=>$fu->getSIMID()));
$em->remove($fu_a_supp);
$em->flush();
$nb_fu_supp++;
}else{
$usrasupp = false; // USR à maintenir
}
}
// =================================== CIF
$cifs = $em->getRepository(cif_sim::class)->createQueryBuilder('cifsim')
->select('cifsim')
->where('cifsim.usrid = :usrid')
->setParameter('usrid' , $usr->getusrid())
->orderBy('cifsim.SIMID', 'ASC')
->getQuery()->getResult()
;
foreach($cifs as $cif){
$cifcomm = $em->getRepository('App:CIF_COMM23')->createQueryBuilder('cifcomm')
->select('SUM(cifcomm.COMDCRTP+cifcomm.COMFNGIR+cifcomm.COMTHPX+cifcomm.COMFBPX+cifcomm.COMFNBPX+cifcomm.COMCVAE+cifcomm.COMTAFNB+cifcomm.COMCFE+cifcomm.COMIFER+cifcomm.COMTASCOM+cifcomm.COMRASS+cifcomm.COMTEOM) AS TOTO')
->where('cifcomm.SIMID = :SIMID')
->setParameter('SIMID',$cif->getSIMID())
->groupBy('cifcomm.SIMID')
->getQuery()
;
$totcomm = $cifcomm->getOneOrNullResult();
if($totcomm==null){
$totcomm = 0;
}
$repo = $em->getRepository('App:CIF_EPCI1'); // simu epci
$cifepci = $repo->createQueryBuilder('cifepci')
->select('SUM(cifepci.EPCDGFPOP+cifepci.EPCCIF) AS TOTO')
->where('cifepci.SIMID = :SIMID')
->setParameter('SIMID',$cif->getSIMID())
->groupBy('cifepci.SIMID')
->getQuery()
;
$totepci = $cifepci->getOneOrNullResult();
if($totepci==null){
$totepci = 0;
}
if(($totcomm==0)&&($totepci==0)){ // SIM à supprimer
foreach($cif->getCIFCOMM23S() as $cifcomm_a_sup){
$cif->removeCIFCOMM23($cifcomm_a_sup);
}
foreach($cif->getCIFEPCIS() as $cifepci_a_sup){
$cif->removeCIFEPCI($cifepci_a_sup);
}
$em->persist($cif);
$em->flush();
$cif_a_supp = $em->getRepository(cif_sim::class)->findOneBy(array('SIMID'=>$cif->getSIMID()));
$em->remove($cif_a_supp);
$em->flush();
$nb_cif_supp++;
}else{
$usrasupp = false; // USR à maintenir
}
}
if($usrasupp==true){
$usr_a_supp = $em->getRepository(usr::class)->findOneBy(array('usrid'=>$usr->getusrid()));
$em->remove($usr_a_supp);
$em->flush();
$nb_usr_supp++;
}
}
// Message d'information
$this->get('session')->getFlashBag()->add(
'success',
'Nb USR supp: '.$nb_usr_supp.' Nb PRO supp: '.$nb_pro_supp.' Nb FUSION supp: '.$nb_fu_supp.' Nb CIF supp: '.$nb_cif_supp
//'il faut activer la fonction en premier'
);
return $this->render('default\index.html.twig', array(
'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'help_dir' => $this->container->getParameter('dochelp_web_path'),
'prfid' => 0,
'prflib' => 'nondef',
));
}else{ // erreur réservé admin
$this->get('session')->getFlashBag()->add(
'error',
'La page demandée n\'existe pas ! (adm)'
);
// Affichage page inexistante
return $this->render('default\noway.html.twig',
array(
'width'=> 1200,
'height'=> 300
)
);
}
}
/**
* suppression des simulations PROSPER stériles (ok si exec après ouv.session)
* @Route("/supProSteril", name="supProSteril")
*/
public function supProSteril(Request $request)
{
$em = $this->getDoctrine()->getManager();
$user = $this->getUser();
if($user->getusrid() == 11){ // vérif me
$i=0;
$repo = $em->getRepository('App:PRO');
$pros = $repo->createQueryBuilder('pro')
->select('pro')
->orderBy('pro.proid', 'ASC')
->getQuery()
->getResult()
;
foreach($pros as $pro){
$repo = $em->getRepository('App:PROAN');
$proan = $repo->createQueryBuilder('proan')
->select('SUM(proan.PROAN_T1_a01+proan.PROAN_T1_a02+proan.PROAN_T1_a03+proan.PROAN_T1_a04+proan.PROAN_T1_a05+proan.PROAN_T1_a51+proan.PROAN_T1_b01+proan.PROAN_T1_b02+proan.PROAN_T1_b03+proan.PROAN_T1_b04+proan.PROAN_T1_b05+proan.PROAN_T1_c01+proan.PROAN_T1_c02+proan.PROAN_T1_c51+proan.PROAN_T1_x51+proan.PROAN_T1_x52+proan.PROAN_T2_a01+proan.PROAN_T2_a02+proan.PROAN_T2_a03+proan.PROAN_T2_a04+proan.PROAN_T2_a51+proan.PROAN_T2_a52+proan.PROAN_T2_a56+proan.PROAN_T2_a57+proan.PROAN_T3_a01+proan.PROAN_T3_a02+proan.PROAN_T3_a03+proan.PROAN_T3_a04+proan.PROAN_T3_a05+proan.PROAN_T3_a06+proan.PROAN_T3_a51+proan.PROAN_T3_b01+proan.PROAN_T3_b02+proan.PROAN_T3_b03+proan.PROAN_T3_b04+proan.PROAN_T3_b05+proan.PROAN_T3_b06+proan.PROAN_T3_b07+proan.PROAN_T3_b08+proan.PROAN_T3_b51+proan.PROAN_T3_x51+proan.PROAN_T4_a01+proan.PROAN_T4_a02+proan.PROAN_T4_a03+proan.PROAN_T4_a04+proan.PROAN_T4_a51+proan.PROAN_T4_a52) AS TOTO')
->where('proan.proid = :proid')
->setParameter('proid',$pro->getproid())
->groupBy('proan.proid')
->getQuery()
;
if($proan->getSingleScalarResult()==0){ // PRO à supprimer
foreach($pro->getPROANS() as $proan_a_sup){
$pro->removePROAN($proan_a_sup);
}
$em->persist($pro);
$em->flush();
$pro_a_supp = $em->getRepository('App:PRO')->findOneBy(array('proid'=>$pro->getproid()));
$em->remove($pro_a_supp);
$em->flush();
}
}
// Message d'information
$this->get('session')->getFlashBag()->add(
'success',
'Les projets PROSPER sans données ont été supprimés avec succès'
//'il faut activer la fonction en premier'
);
return $this->render('default\index.html.twig', array(
'base_dir' => realpath($this->container->getParameter('kernel.root_dir').'/..').DIRECTORY_SEPARATOR,
'help_dir' => $this->container->getParameter('dochelp_web_path'),
'prfid' => 0,
'prflib' => 'nondef',
));
}else{ // erreur réservé admin
$this->get('session')->getFlashBag()->add(
'error',
'La page demandée n\'existe pas ! (adm)'
);
// Affichage page inexistante
return $this->render('default\noway.html.twig', array(
));
}
}
/**
* création des couples PRF, MEN manquants
* @Route("/prfMenAcc", name="crePrfMenAcc")
*/
public function crePrfMenAcc(Request $request)
{
$em = $this->getDoctrine()->getManager();
$user = $this->getUser();
if($user->getusrid() == 11){ // vérif me
$repo = $this->getDoctrine()->getManager()->getRepository('App:PRF');
$prfs = $repo->createQueryBuilder('prf')
->select('prf')
->orderBy('prf.prfid', 'ASC')
->getQuery()
->getResult()
;
$repo = $this->getDoctrine()->getManager()->getRepository('App:MEN');
$mens = $repo->createQueryBuilder('men')
->select('men')
->orderBy('men.MENID', 'ASC')
->getQuery()
->getResult()
;
$em = $this->getDoctrine()->getManager();
foreach($prfs as $prf){
$prfid_ec = $prf->getprfid();
foreach($mens as $men){
$repo = $this->getDoctrine()->getManager()->getRepository('App:PRF_MEN');
$prf_men = $repo->createQueryBuilder('prfmen')
->select('prfmen')
->where('prfmen.prfid = :prfid')
->setParameter('prfid',$prfid_ec)
->andwhere('prfmen.MENID = :MENID')
->setParameter('MENID',$men->getMENID())
->getQuery()
->getArrayResult()
;
if(count($prf_men)==0){ // ajouter le couple sans droit
/*
$PRF_MEN = new PRF_MEN;
$PRF_MEN->setprfid($prf);
$PRF_MEN->setMENID($men);
$PRF_MEN->setPRMACC(0);
$em->persist($PRF_MEN);
$em->flush();
*/
}
}
}
// Message d'information
$this->get('session')->getFlashBag()->add(
'success',
'Les couples PRF, MEN ont été ajoutés avec succès'
//'il faut activer la fonction en premier'
);
return $this->redirect($this->generateUrl('pageaccueil'));
}else{ // erreur réservé admin
$this->get('session')->getFlashBag()->add(
'error',
'La page demandée n\'existe pas ! (adm)'
);
// Affichage page inexistante
return $this->render('default\noway.html.twig', array(
));
}
}
/**
* cryptage des mots de passe des utilisateurs
* @Route("/usrLogPwd", name="doLogPwd")
*/
public function doLogPwd(Request $request)
{
$em = $this->getDoctrine()->getManager();
$user = $this->getUser();
if($user->getusrid() == 11){ // vérif me
$repo = $this->getDoctrine()->getManager()->getRepository('App:USR');
$usr = $repo->createQueryBuilder('usr')
->select('usr')
->orderBy('usr.username', 'ASC') // USRLOGIN
->where('usr.password is null')
->andwhere('usr.usrid = :usrid')
->setParameter('usrid', 11)
->getQuery()
->getResult()
;
foreach($usr as $u){
$hash = $this->get('security.password_encoder')->encodePassword($u, $u->getUSRPWD());
$u->setPassword($hash);
$em = $this->getDoctrine()->getManager();
$em->persist($u);
$em->flush();
}
// Message d'information
$this->get('session')->getFlashBag()->add(
'success',
'Les mots de passe des utilisateurs ont été cryptés avec succès'
);
//var_dump($this->get('session'));
return $this->redirect($this->generateUrl('pageaccueil'));
}else{ // erreur réservé admin
$this->get('session')->getFlashBag()->add(
'error',
'La page demandée n\'existe pas ! (adm)'
);
// Affichage page inexistante
return $this->render('default\noway.html.twig', array(
));
}
}
/**
* Récupération + mémorisation URL courante pour redirection après login
*/
#[Route(path: '/storeRedirect', name: 'storeRedirect')]
public function storeRedirect(Request $request)
{
$currentUrl = $request->query->get('uri');
if($currentUrl=='logout'){
return $this->redirect($this->generateUrl('app_logout'));
}else{
return $this->redirect($currentUrl); // à vérifier
}
}
/**
* Vérif statut de la session courante (Contrôle d'accès utilisateur), si pas OK retour login
*/
#[Route(path: '/isalive', name: 'isalive')]
public function isalive(Request $request)
{
$results = (session_status() === PHP_SESSION_ACTIVE) ? TRUE : FALSE;
$response = new Response(json_encode($results));
return $response;
}
}