<?php
namespace App\Controller;
use Symfony\Component\Routing\Annotation\Route;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Security\Http\Authentication\AuthenticationUtils;
use Symfony\Component\HttpFoundation\JsonResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\RedirectResponse;
use App\Services\UserManager;
class UsersController extends AbstractController
{
/**
* @Route("/se-connecter", name="login")
*/
public function loginAction(Request $request, AuthenticationUtils $authUtils)
{
// get the login error if there is one
$error = $authUtils->getLastAuthenticationError();
// last username entered by the user
$lastUsername = $authUtils->getLastUsername();
return $this->render('login.html', array(
'last_username' => $lastUsername,
'error' => $error
));
}
/**
* @Route("/deconnexion", name="logout")
*/
public function logoutAction()
{
throw new \Exception('Erreur déconnection');
}
/**
* @Route("/users", name="liste-users", options = { "expose" = true })
*/
public function listeAction(Request $request)
{
$Users = $this->getDoctrine()
->getRepository(\App\Entity\Users::class)
->findUserByCriteres(['page' => 1,
'nbruserpage' => 100,
'search' => $request->query->get('search'),
'statut' => $request->query->get('statut')
],
['user.userValide'=>'DESC',
'user.userNom' => 'ASC',
'user.userPrenom' => 'ASC'
]);
$nbr = $this->getDoctrine()
->getRepository(\App\Entity\Users::class)
->findNombreUser(['search' => $request->query->get('search'),
'statut' => $request->query->get('statut')],
['user.userValide'=>'DESC', 'user.userNom' => 'ASC', 'user.userPrenom' => 'ASC']);
if($request->query->get('statut') == ''){
$statut = 'all';
}else{
$statut = $request->query->get('statut');
}
return $this->render('users/liste.html', [
'users' => $Users,
'pagination' => $nbr,
'search' => $request->query->get('search'),
'statut' => $statut
]);
}
/**
* @Route("/users/abus", name="liste-abus-users", options = { "expose" = true })
*/
public function listeAbusUsersAction(Request $request)
{
$abusUsers = $this->getDoctrine()
->getRepository(\App\Entity\UserAbus::class)
->findUsersAbusByCriteres(['page' => ($request->query->get('page') ? $request->query->get('page') : 1),
'nbruserpage' => 100,
'search' => $request->query->get('search'),
'statut' => $request->query->get('statut')
]);
$nbr = $this->getDoctrine()
->getRepository(\App\Entity\UserAbus::class)
->findNombreUsersAbus(['search' => $request->query->get('search'),
'statut' => $request->query->get('statut')]);
if($request->query->get('statut') == ''){
$statut = 'all';
}else{
$statut = $request->query->get('statut');
}
if( $request->isXmlHttpRequest()){
return $this->render('users/interieur-tab-liste-abus.html', [
'abusUsers' => $abusUsers,
'search' => $request->query->get('search'),
'pagination' => $nbr,
'statut' => $statut,
'pageActuel'=>$request->query->get('page')
]);
}else{
return $this->render('users/liste-abus.html', [
'abusUsers' => $abusUsers,
'search' => $request->query->get('search'),
'pagination' => $nbr,
'statut' => $statut,
//'pageActuel'=>$request->query->get('page')
]);
}
}
/**
* @Route("/load-users", options = { "expose" = true }, name="load-users")
*/
public function loadUsersAction(Request $request){
$Users = $this->getDoctrine()
->getRepository(\App\Entity\Users::class)
->findUserByCriteres(['search' => $request->query->get('search'),
'statut' => $request->query->get('statut'),
'page' => $request->query->get('page')],
['user.userValide'=>'DESC',
'user.userNom' => 'ASC',
'user.userPrenom' => 'ASC']);
$nbr = $this->getDoctrine()
->getRepository(\App\Entity\Users::class)
->findNombreUser(['search' => $request->query->get('search'),
'statut' => $request->query->get('statut')],
['user.userValide'=>'DESC', 'user.userNom' => 'ASC', 'user.userPrenom' => 'ASC']);
return $this->render('users/interieur-tab-liste.html', array(
'users' => $Users,
'pagination' => $nbr,
'pageActuel'=>$request->query->get('page')
));
}
/**
* @Route("/users/{id}", name="fiche-users")
*/
public function ficheAction($id)
{
$user = $this->getDoctrine()
->getRepository(\App\Entity\Users::class)
->find($id);
return $this->render('users/fiche.html', [
'user' => $user,
]);
}
/**
* @Route("/change-statut/{id}", options = { "expose" = true }, name="change-statut")
*/
public function changeStatutAction(Request $request,$id, UserManager $userManager)
{
$userManager->changeStatutUser($id, $request->query->get('statut'),$request->request->get('msg'));
return new JsonResponse(true);
}
/**
* @Route("/users/abus/{id}", name="fiche-users-abus", options = { "expose" = true })
*/
public function ficheAbusAction(Request $request, $id, UserManager $userManager)
{
$abusUsers = $this->getDoctrine()
->getRepository(\App\Entity\UserAbus::class)
->find($id);
if($request->isXmlHttpRequest()){
return $this->render('users/partial/fiche-abus-message.html', [
'echanges' => $userManager->messagesCoupable($request->query->get('idVictime'),$abusUsers->getUserAbusCoupable()->getId()),
]);
}else{
return $this->render('users/fiche-abus.html', [
'abusUsers' => $abusUsers,
'echanges' => $userManager->messagesCoupable($abusUsers->getUserAbusVictime()->getId(),$abusUsers->getUserAbusCoupable()->getId()),
'personnes' => $userManager->listePersonnesContact($abusUsers->getUserAbusCoupable())
]);
}
}
/**
* @Route("/suppressionAbusByAdmin/{id}", options = { "expose" = true }, name="suppression-abus")
*/
public function suppressionAbusByAdminAction(UserManager $UserManager,$id, Request $request){
return new JsonResponse($UserManager->suppressionAbus($id));
}
}