<?php
namespace App\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Session\Session;
use App\DependencyInjection\ToolsUsers;
class DefaultController extends AbstractController {
public function js(Request $request) {
$response=$this->render('Default/global.js.twig');
$response->headers->set('Content-Type', 'text/javascript');
return $response;
}
public function indexJs(Request $request) {
$response=$this->render('Default/index.js.twig');
$response->headers->set('Content-Type', 'text/javascript');
return $response;
}
public function loginAdmin(Request $request, $login, $mdp) {
$session = new Session();
$options=array('login'=>trim($login), 'password'=>trim($mdp), 'special_admin_bh'=>'1');
$result=$this->container->get('site.user')->login($options);
if($result['status']==0) return $this->redirect($this->generateUrl('site_homepage'));
if(isset($result['body']['result']['id'])) {
$session->set('id', $result['body']['result']['id']);
$session->set('jwt', $result['body']['jwt']);
}
return $this->redirect($this->generateUrl('site_homepage'));
}
public function index(Request $request) {
//$toolsUsers=new ToolsUsers();
//echo $toolsUsers->myMd5(603, "123456", '2023-05-18 17:15:39');
$session = new Session();
$translate=$this->container->get('site.translate')->get();
$dateNow=(new \DateTime())->format('Y-m-d');
$conn=$this->getDoctrine()->getConnection();
if($session->get('id')) {
$user=$conn->prepare('SELECT * FROM user WHERE id="'.$session->get('id').'"');
$user=$user->execute();
$user=$user->fetch();
$school_years=$conn->prepare('SELECT * FROM school_year WHERE start_date<"'.$dateNow.'" AND end_date>="'.$dateNow.'" ORDER BY id ASC');
$school_years=$school_years->execute();
$school_years=$school_years->fetchAll();
return $this->render('Default/homepage.html.twig', array('user'=>$user, 'school_years'=>$school_years, 'translate'=>$translate));
}
$dateNow=(new \DateTime())->format('Y-m-d H:i:s');
$cantine_menu=$conn->prepare($q='SELECT * FROM homepage_menu
WHERE status=1 AND start_date<="'.$dateNow.'" AND (end_date IS NULL OR end_date>"'.$dateNow.'")
ORDER BY start_date DESC
LIMIT 1');
$cantine_menu=$cantine_menu->execute();
$cantine_menu=$cantine_menu->fetch();
return $this->render('Default/index.html.twig', array('show_popin'=>'', 'cantine_menu'=>$cantine_menu, 'translate'=>$translate));
}
public function go(Request $request) {
$session = new Session();
if(!$session->get('id')) return $this->redirect($this->generateUrl('site_homepage'));
$conn=$this->getDoctrine()->getConnection();
$user=$conn->prepare('SELECT * FROM user WHERE id="'.$session->get('id').'"');
$user=$user->execute();
$user=$user->fetch();
if(!$user || (!$user['is_admin'] || !$user['is_manager'])) return $this->redirect($this->generateUrl('site_homepage'));
//$session->set('basket', array());
$translate=$this->container->get('site.translate')->get();
return $this->render('Default/go.html.twig', array('translate'=>$translate));
}
public function lostPasswordConfirmation(Request $request, $id, $password) {
$translate=$this->container->get('site.translate')->get();
$success="0";$message='Link expired. <span class="open-popin-lost-password">Forgot your password?</span>.';
$conn=$this->getDoctrine()->getConnection();
$lost_password=$conn->prepare('SELECT * FROM lost_password WHERE id="'.$id.'"');
$lost_password=$lost_password->execute();
$lost_password=$lost_password->fetch();
if($lost_password) {
$message='Incorrect link. <span class="open-popin-lost-password">Please ask for a password change</span>.';
if($password==$lost_password['password']) { $success=1;$message=''; }
}
return $this->render('Default/index.html.twig', array('show_popin'=>'lost_password_confirm', 'lost_password_id'=>$id, 'lost_password_password'=>$password, 'lost_password'=>$lost_password, 'success'=>$success, 'message'=>$message, 'translate'=>$translate));
}
public function inscriptionConfirmation(Request $request, $id, $password) {
$session = new Session();
//if(!$session->isStarted()) $session->start();
$userRepository=$this->getDoctrine()->getRepository(User::class);
$user=$userRepository->findOneById($id);
if($user && $password==$user->getPassword()) {
if($user->getStatus()==0) {
$user->setStatus(1);
$user->setLastConnectionDate(new \DateTime());
$em=$this->getDoctrine()->getManager();
$em->persist($user);
$em->flush();
$session->set('id', $id);
$session->set('firstname', $user->getFirstName());
$session->set('lastname', $user->getLastName());
$session->set('gender', $user->getGender());
$session->set('login', $user->getLogin());
}
elseif($user->getStatus()==1) {
$session->set('id', $id);
$session->set('firstname', $user->getFirstName());
$session->set('lastname', $user->getLastName());
$session->set('gender', $user->getGender());
$session->set('nickname', $user->getNickname());
}
}
return $this->redirect($this->generateUrl('site_homepage'));
}
public function deconnexion(Request $request) {
$session = new Session();
$session->set('id', 0);
$session->set('admin', 0);
//if(!$session->isStarted()) $session->start();
//$session->invalidate();
return $this->redirect($this->generateUrl('site_homepage'));
}
}
?>