<?php
namespace App\Controller;
use App\Entity\Utilisateurs ;
use App\Entity\AffectationUtililisateur ;
use App\Repository\AffectationUtililisateurRepository;
use App\Repository\UtilisateursRepository;
use App\Repository\NiveauUtilisateurRepository;
use App\Repository\AffectationDevicesRepository;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Session\Session;
use Symfony\Component\Routing\Annotation\Route;
class UtilisateursController extends AbstractController
{
private $accessToken ;
public function __construct()
{
$this->accessToken = $this->getTokenOpernicus() ;
}
function genererCode($length){
$chars = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$string = '';
for($i=0; $i<$length; $i++){
$string .= $chars[rand(0, strlen($chars)-1)];
}
return $string;
}
function makeSalt($mdp){
$salt1 = 'VaCg22Jy4';
$salt2 = '6V7dzJ6Cm' ;
$salt_mdp = sha1($salt1.$mdp.$salt2) ;
return $salt_mdp ;
}
public function connexion(Request $request , UtilisateursRepository $utilisateursRepository , AffectationDevicesRepository $affectationDevicesRepository): Response
{
$msg = '';
if($request->get('confirmer') == "confirmer" ){
if( ($request->get('login') != "" ) && ($request->get('mdp') != "" ) ){
$existence_compte = $utilisateursRepository->findOneBy(['login'=>$request->get('login')]) ;
if($existence_compte!=null){
$verif_data = $utilisateursRepository->findOneBy(['login'=>$request->get('login') , 'mdp'=> $this->makeSalt($request->get('mdp') ) ]) ;
if($verif_data!=null){
if($verif_data->getEtat() == 1 ){
$default_device = $affectationDevicesRepository->findOneBy(['utilisateur'=>$verif_data]) ;
$session= new session();
$session->set('user_connected_telma',$verif_data);
if($default_device != null){
$session->set('default_device',$default_device->getDevice()->getImei());
}
return $this->redirectToRoute('tb') ;
}
else{
$msg = 'Votre compte est inactif , veuillez contacter l\'administrateur .' ;
}
}
else{
$msg = 'Login ou mot de passe incorrecte .' ;
}
}
else{
$msg = 'Compte innexistant .';
}
}
}
return $this->render('utilisateurs/index.html.twig', [
'msg' => $msg ,
]);
}
public function utilisateurs(Request $request , NiveauUtilisateurRepository $niveauUtilisateurRepository): Response
{
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
if($session->get('user_connected_telma') == null){
return $this->redirectToRoute('connexion') ;
}
if( $session->get('user_connected_telma')->getNiveau()->getId() == 2 ){
$niveaux = $niveauUtilisateurRepository->findBy(['id'=>3 ]) ;
}
else if( $session->get('user_connected_telma')->getNiveau()->getId() == 1 ){
$niveaux = $niveauUtilisateurRepository->findBy(['id'=>[1,2] ]) ;
}
return $this->render('utilisateurs/utilisateurs.html.twig',['niveaux'=>$niveaux]);
}
public function clients(Request $request , NiveauUtilisateurRepository $niveauUtilisateurRepository): Response
{
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
if($session->get('user_connected_telma') == null){
return $this->redirectToRoute('connexion') ;
}
if( $session->get('user_connected_telma')->getNiveau()->getId() == 2 ){
$niveaux = $niveauUtilisateurRepository->findBy(['id'=>3 ]) ;
}
else if( $session->get('user_connected_telma')->getNiveau()->getId() == 1 ){
$niveaux = $niveauUtilisateurRepository->findBy(['id'=>[1,2] ]) ;
}
return $this->render('utilisateurs/clients.html.twig',['niveaux'=>$niveaux]);
}
public function getTokenOpernicus(){
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://identity.dataspace.copernicus.eu/auth/realms/CDSE/protocol/openid-connect/token',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'POST',
CURLOPT_POSTFIELDS => 'grant_type=client_credentials&client_id=sh-dee0a937-a3d7-4d36-bba6-5eef88554bbb&client_secret=cvauJQUX7X0itW432od6mEPNqpAUWTGv',
CURLOPT_HTTPHEADER => array(
'Content-Type: application/x-www-form-urlencoded',
'Cookie: SERVERID=keycloak002.waw2'
),
));
$response = curl_exec($curl);
curl_close($curl);
$jsonResponse = json_decode($response,true);
return $accessToken = $jsonResponse['access_token'] ;
}
public function tb(Request $request , UtilisateursRepository $utilisateursRepository): Response
{
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
if($session->get('user_connected_telma') == null){
return $this->redirectToRoute('connexion') ;
}
$entityManager = $this->getDoctrine()->getManager();
$user = $utilisateursRepository->find($session->get('user_connected_telma')) ;
$devices = $entityManager->createQuery(
'SELECT d.id as id_device , d.nom_device as nom_device , (SELECT c.altitude FROM App\Entity\ConfigDevice c WHERE c.device = a.device ) as altitude , (SELECT b.longitude FROM App\Entity\ConfigDevice b WHERE b.device = a.device ) as longitude
FROM App\Entity\AffectationDevices a
JOIN a.device d
WHERE 1=1 AND a.utilisateur = '.$user->getId().'
'
)
->getResult() ;
/*$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://sh.dataspace.copernicus.eu/api/v1/catalog/1.0.0/search?datetime=2023-12-01T00%3A00%3A00Z%2F2023-12-10T00%3A00%3A00Z&bbox=13%2C45%2C14%2C46&collections=sentinel-1-grd',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $this->accessToken"
),
));
$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_HTTP_CODE);
curl_close($curl);
if($httpcode == 401){
$this->accessToken = $this->getTokenOpernicus() ;
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => 'https://sh.dataspace.copernicus.eu/api/v1/catalog/1.0.0/search?datetime=2023-12-01T00%3A00%3A00Z%2F2023-12-10T00%3A00%3A00Z&bbox=13%2C45%2C14%2C46&collections=sentinel-1-grd',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => '',
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 0,
CURLOPT_FOLLOWLOCATION => true,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => 'GET',
CURLOPT_HTTPHEADER => array(
"Authorization: Bearer $this->accessToken"
),
));
$response = curl_exec($curl);
curl_close($curl);
}
$responseData = json_decode($response, true);
*/
return $this->render('utilisateurs/tb.html.twig',['devices'=>$devices , 'href'=> '' ]);
//$responseData['features'][0]['assets']['data']['href']
}
public function deconnexion(request $request){
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
$session->set('user_connected_telma',null);
$session->set('default_device',null);
return $this->redirectToRoute('connexion');
}
public function serverUtilisateurs(Request $request , UtilisateursRepository $utilisateursRepository , NiveauUtilisateurRepository $niveauUtilisateurRepository ): Response
{
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
if($session->get('user_connected_telma') != null){
$usr_connected = $utilisateursRepository->find($session->get('user_connected_telma')) ;
}
$entityManager = $this->getDoctrine()->getManager();
$sql_where='';
if( ($request->get('searchByEtat')!="all") && ($request->get('searchByEtat')!="") ){
$sql_where .= ' AND p.etat = '.$request->get('searchByEtat') ;
}
$columns = ['p.id','p.nom','p.prenom' , 'p.niveau' , 'p.date_creation','p.etat' , 'p.id'] ;
$orders = [] ;
for($i=0 ; $i<count($request->get('order')) ;$i++ ){
$orders[] = $columns[ $request->get('order')[$i]['column'] ].' '.$request->get('order')[$i]['dir'] ;
}
if( count($orders)>0){
$order = " ORDER BY ".implode(' , ',$orders) ;
}
else{
$order = "" ;
}
if( $usr_connected->getNiveau()->getId() == 1 ){
$existance = $entityManager->createQuery(
'SELECT p
FROM App\Entity\Utilisateurs p
WHERE 1=1 AND p.niveau != 3 '.$sql_where.'
'
)
->getResult() ;
}
else if( $usr_connected->getNiveau()->getId() == 2 ){
$existance = $entityManager->createQuery(
'SELECT p.id
FROM App\Entity\Utilisateurs p
WHERE 1=1 AND p.niveau = 3 '.$sql_where.'
'
)
->getResult() ;
}
$I_nbResultatsTotal = count( $existance ) ;
$limit = $request->get('length') ;
$offset = $request->get('start') ;
$array_search = array();
//->setParameter('nom', '%'.$request->get('searchByNom').'%')
//p.nom LIKE :nom
if( $usr_connected->getNiveau()->getId() == 1 ){
$utilisateurs = $entityManager->createQuery(
'SELECT p
FROM App\Entity\Utilisateurs p
WHERE 1=1 AND p.niveau != 3 '.$sql_where.' '.$order.'
'
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult() ;
}
else if( $usr_connected->getNiveau()->getId() == 2 ){
$utilisateurs = $entityManager->createQuery(
'SELECT a , p
FROM App\Entity\AffectationUtililisateur a
JOIN a.utilisateur p
WHERE 1=1 AND a.affecter_a = '.$usr_connected->getId().' '.$sql_where.' '.$order.'
'
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult() ;
}
$output =[] ;
foreach($utilisateurs as $utilisateur){
if( $usr_connected->getNiveau()->getId() == 2 ){
$utilisateur = $utilisateur->getUtilisateur();
}
$output[] = [
'nom'=>$utilisateur->getNom() ,
'prenom'=>$utilisateur->getPrenom() ,
'date_creation'=>$utilisateur->getDateCreation()!='' ? date('d/m/Y',strtotime($utilisateur->getDateCreation())) : '' ,
'niveau'=>$utilisateur->getNiveau()!=null ? $utilisateur->getNiveau()->getNiveau() : 'Aucun' ,
'etat'=>$utilisateur->getEtat() == 1 ? 'Actif' : 'Inactif' ,
'id'=>$utilisateur->getId(),
'token'=>$utilisateur->getToken(),
];
}
$JSON = json_encode($output);
$JSON = '{"draw": '.$request->get('draw').',"recordsTotal":'.$I_nbResultatsTotal.',"recordsFiltered":'.$I_nbResultatsTotal.',"data":'.$JSON.'}';
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
public function serverClients(Request $request , UtilisateursRepository $utilisateursRepository , NiveauUtilisateurRepository $niveauUtilisateurRepository ): Response
{
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
if($session->get('user_connected_telma') != null){
$usr_connected = $utilisateursRepository->find($session->get('user_connected_telma')) ;
}
$entityManager = $this->getDoctrine()->getManager();
$sql_where='';
if( ($request->get('searchByEtat')!="all") && ($request->get('searchByEtat')!="") ){
$sql_where .= ' AND p.etat = '.$request->get('searchByEtat') ;
}
$columns = ['p.id','p.nom','p.prenom' , 'p.niveau' , 'p.date_creation','p.etat' , 'p.id'] ;
$orders = [] ;
for($i=0 ; $i<count($request->get('order')) ;$i++ ){
$orders[] = $columns[ $request->get('order')[$i]['column'] ].' '.$request->get('order')[$i]['dir'] ;
}
if( count($orders)>0){
$order = " ORDER BY ".implode(' , ',$orders) ;
}
else{
$order = "" ;
}
$existance = $entityManager->createQuery(
'SELECT p
FROM App\Entity\Utilisateurs p
WHERE 1=1 AND p.niveau != 3 '.$sql_where.'
'
)
->getResult() ;
$I_nbResultatsTotal = count( $existance ) ;
$limit = $request->get('length') ;
$offset = $request->get('start') ;
$array_search = array();
$revendeur = $utilisateursRepository->findOneBy(['id'=>$request->get('id') , 'token'=>$request->get('token') ]) ;
//->setParameter('nom', '%'.$request->get('searchByNom').'%')
//p.nom LIKE :nom
$clients = $entityManager->createQuery(
'SELECT p
FROM App\Entity\AffectationUtililisateur p
WHERE 1=1 AND p.affecter_a='.$revendeur->getId().' '.$sql_where.' '.$order.'
'
)
->setMaxResults($limit)
->setFirstResult($offset)
->getResult() ;
$output =[] ;
foreach($clients as $client){
$output[] = [
'nom'=>$client->getUtilisateur()->getNom() ,
'prenom'=>$client->getUtilisateur()->getPrenom() ,
'date_creation'=>$client->getUtilisateur()->getDateCreation()!='' ? date('d/m/Y',strtotime($client->getUtilisateur()->getDateCreation())) : '' ,
'niveau'=>$client->getUtilisateur()->getNiveau()!=null ? $client->getUtilisateur()->getNiveau()->getNiveau() : 'Aucun' ,
'etat'=>$client->getUtilisateur()->getEtat() == 1 ? 'Actif' : 'Inactif' ,
'id'=>$client->getUtilisateur()->getId(),
'token'=>$client->getUtilisateur()->getToken(),
];
}
$JSON = json_encode($output);
$JSON = '{"draw": '.$request->get('draw').',"recordsTotal":'.$I_nbResultatsTotal.',"recordsFiltered":'.$I_nbResultatsTotal.',"data":'.$JSON.'}';
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
public function getDeviceClient(Request $request , UtilisateursRepository $utilisateursRepository , NiveauUtilisateurRepository $niveauUtilisateurRepository ): Response
{
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
if($session->get('user_connected_telma') != null){
$usr_connected = $utilisateursRepository->find($session->get('user_connected_telma')) ;
}
$entityManager = $this->getDoctrine()->getManager();
$user = $utilisateursRepository->findOneBy(['id'=>$request->get('id') , 'token'=>$request->get('token') ] ) ;
$output = [];
$info_sup = [];
if($user->getNiveau()->getId() == 3){
$devices = $entityManager->createQuery(
'SELECT p
FROM App\Entity\AffectationDevices p
JOIN p.utilisateur a
WHERE a.id = \''.$request->get('id').'\' AND a.token=\''.$request->get('token').'\'
'
)
->getResult() ;
$devices_online = $entityManager->createQuery(
'SELECT p
FROM App\Entity\AffectationDevices p
JOIN p.utilisateur a
JOIN p.device d
WHERE a.id = \''.$request->get('id').'\' AND a.token=\''.$request->get('token').'\' AND d.etat_cnx = 1
'
)
->getResult() ;
$info_sup = [
"client"=>$user->getPrenom().' '.$user->getNom() ,
"id"=>$user->getId() ,
"token"=>$user->getToken() ,
"devices"=>count($devices) ,
"devices_online"=> count($devices_online) ,
];
foreach($devices as $device ){
$output[] = [
'device'=>$device->getDevice()->getNomDevice() ,
'imei'=>$device->getDevice()->getImei() ,
'etat'=>$device->getDevice()->getEtatCnx() ,
'id'=>$device->getDevice()->getId(),
'token'=>$device->getDevice()->getToken(),
];
}
}
$JSON = json_encode($output);
$JSON2 = json_encode($info_sup);
$JSON = '{"info_sup":'.$JSON2.',"data":'.$JSON.'}';
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
public function getClients(Request $request , UtilisateursRepository $utilisateursRepository , NiveauUtilisateurRepository $niveauUtilisateurRepository ): Response
{
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
if($session->get('user_connected_telma') != null){
$usr_connected = $utilisateursRepository->find($session->get('user_connected_telma')) ;
}
$entityManager = $this->getDoctrine()->getManager();
$user = $utilisateursRepository->findOneBy(['id'=>$request->get('id') , 'token'=>$request->get('token') ] ) ;
$output = [];
$info_sup = [];
if($user->getNiveau()->getId() == 2){
$clients = $entityManager->createQuery(
'SELECT p
FROM App\Entity\AffectationUtililisateur p
JOIN p.affecter_a a
WHERE a.id = \''.$request->get('id').'\' AND a.token=\''.$request->get('token').'\'
'
)
->getResult() ;
$devices = $entityManager->createQuery(
'SELECT a.id
FROM App\Entity\AffectationDevices a
WHERE 1=1 AND a.utilisateur = '.$user->getId().'
'
)
->getResult() ;
$devices_affecte = $entityManager->createQuery(
'SELECT p.id
FROM App\Entity\Devices p
WHERE 1=1 AND ( SELECT count(af) FROM App\Entity\AffectationDevices af JOIN af.utilisateur uaf where p.id = af.device AND uaf.niveau = 3 AND uaf.id IN ( SELECT us.id FROM App\Entity\AffectationUtililisateur u JOIN u.utilisateur us WHERE u.affecter_a = '.$user->getId().' ) ) > 0
'
)
->getResult() ;
$info_sup = [
"revendeur"=>$user->getPrenom().' '.$user->getNom() ,
"id"=>$user->getId() ,
"token"=>$user->getToken() ,
"devices"=>count($devices) ,
"devices_affecte"=> count($devices_affecte) ,
];
foreach($clients as $client ){
$output[] = [
'nom'=>$client->getUtilisateur()->getNom() ,
'prenom'=>$client->getUtilisateur()->getPrenom() ,
'etat'=>$client->getUtilisateur()->getEtat() ,
'id'=>$client->getUtilisateur()->getId(),
'token'=>$client->getUtilisateur()->getToken(),
];
}
}
else if($user->getNiveau()->getId() == 3){
$clients = $entityManager->createQuery(
'SELECT p
FROM App\Entity\AffectationUtililisateur p
JOIN p.utilisateur a
WHERE a.id = \''.$request->get('id').'\' AND a.token=\''.$request->get('token').'\'
'
)
->getResult() ;
foreach($clients as $client ){
$output[] = [
'nom'=>$client->getAffecterA()->getNom() ,
'prenom'=>$client->getAffecterA()->getPrenom() ,
'etat'=>$client->getAffecterA()->getEtat() ,
'id'=>$client->getAffecterA()->getId(),
'token'=>$client->getAffecterA()->getToken(),
];
}
}
$JSON = json_encode($output);
$JSON2 = json_encode($info_sup);
$JSON = '{"info_sup":'.$JSON2.',"data":'.$JSON.'}';
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
public function getUtilisateur(Request $request , UtilisateursRepository $utilisateursRepository , NiveauUtilisateurRepository $niveauUtilisateurRepository ): Response
{
$entityManager = $this->getDoctrine()->getManager();
$utilisateur = $entityManager->createQuery(
'SELECT p
FROM App\Entity\Utilisateurs p
WHERE p.id = \''.$request->get('id').'\' AND p.token=\''.$request->get('token').'\'
'
)
->getOneOrNullResult() ;
$output = [];
if($utilisateur!=null){
$output = [
'nom'=>$utilisateur->getNom() ,
'prenom'=>$utilisateur->getPrenom() ,
'email'=>$utilisateur->getEmail() ,
'login'=>$utilisateur->getLogin() ,
'niveau'=>$utilisateur->getNiveau()!=null ? $utilisateur->getNiveau()->getId() : '' ,
'etat'=>$utilisateur->getEtat() ,
'id'=>$utilisateur->getId(),
'token'=>$utilisateur->getToken(),
];
}
$JSON = json_encode($output);
$response = new Response($JSON, 200, ['Content-Type' => 'application/json']);
return $response;
}
public function utilisateur_edit(Request $request , UtilisateursRepository $utilisateursRepository , NiveauUtilisateurRepository $niveauUtilisateurRepository ): Response
{
$entityManager = $this->getDoctrine()->getManager();
$utilisateur = $utilisateursRepository->findOneBy(['id'=>$request->get('id_edit') , 'token'=>$request->get('token_edit') ]) ;
$existance_utilisateur = $entityManager->createQuery(
'SELECT u
FROM App\Entity\Utilisateurs u
WHERE u.login = \''.$request->get('login_edit').'\' AND u.id != '.$utilisateur->getId().'
'
)
->getOneOrNullResult() ;
if($existance_utilisateur != null){
return new Response('KOO') ;
}
if($utilisateur!=null){
try{
$utilisateur->setNom($request->get('nom_edit')) ;
$utilisateur->setPrenom($request->get('prenom_edit')) ;
$utilisateur->setLogin($request->get('login_edit')) ;
$utilisateur->setEtat($request->get('etat_edit')) ;
$utilisateur->setNiveau( $niveauUtilisateurRepository->find($request->get('niveau_edit') ) ) ;
$utilisateur->setEmail($request->get('email_edit')) ;
if($request->get('mdp_edit')!=""){
$utilisateur->setMdp($this->makeSalt($request->get('mdp_edit') ) ) ;
}
$entityManager->persist($utilisateur) ;
$entityManager->flush() ;
return new Response('OK') ;
}
catch(Exception $e){
return new Response('KO') ;
}
}
else{
return new Response('KOO') ;
}
}
public function utilisateur_add(Request $request , UtilisateursRepository $utilisateursRepository , NiveauUtilisateurRepository $niveauUtilisateurRepository ): Response
{
if ($request->hasSession() && ($session = $request->getSession())) {
$session = $request->getSession() ;
}
else{
$session = new session();
}
if($session->get('user_connected_telma') != null){
$usr_connected = $utilisateursRepository->find($session->get('user_connected_telma')) ;
}
$entityManager = $this->getDoctrine()->getManager();
$existance_utilisateur = $utilisateursRepository->findBy(['login'=>$request->get('login')]) ;
if(count($existance_utilisateur) == 0){
$utilisateur = new Utilisateurs() ;
$token = $this->genererCode(20) ;
try{
$utilisateur->setNom($request->get('nom')) ;
$utilisateur->setPrenom($request->get('prenom')) ;
$utilisateur->setLogin($request->get('login')) ;
$utilisateur->setEtat($request->get('etat')) ;
$utilisateur->setNiveau( $niveauUtilisateurRepository->find($request->get('niveau') ) ) ;
$utilisateur->setEmail($request->get('email')) ;
$utilisateur->setMdp($this->makeSalt($request->get('mdp') ) ) ;
$utilisateur->setToken($token) ;
$utilisateur->setDateCreation(date('Y-m-d')) ;
$entityManager->persist($utilisateur) ;
$entityManager->flush() ;
if($usr_connected->getNiveau()->getId() == 2 ){
$affect_user = new AffectationUtililisateur() ;
$affect_user->setUtilisateur($utilisateur) ;
$affect_user->setAffecterA($usr_connected) ;
$entityManager->persist($affect_user) ;
$entityManager->flush() ;
}
return new Response('OK') ;
}
catch(Exception $e){
return new Response('KO') ;
}
}
else{
return new Response('KOO') ;
}
}
public function utilisateur_delete(Request $request , UtilisateursRepository $utilisateursRepository , NiveauUtilisateurRepository $niveauUtilisateurRepository ): Response
{
$entityManager = $this->getDoctrine()->getManager();
$utilisateur = $utilisateursRepository->findOneBy(['id'=>$request->get('id') , 'token'=>$request->get('token') ]) ;
if($utilisateur!=null){
try{
$entityManager->remove($utilisateur) ;
$entityManager->flush() ;
return new Response('OK') ;
}
catch(Exception $e){
return new Response('KO') ;
}
}
else{
return new Response('KOO') ;
}
}
}