|
|
|
@ -6,7 +6,6 @@ use App\Entity\Profil;
|
|
|
|
|
use App\Form\ProfilType;
|
|
|
|
|
use App\Repository\PostRepository;
|
|
|
|
|
use Doctrine\ORM\EntityManager;
|
|
|
|
|
use SebastianBergmann\Environment\Console;
|
|
|
|
|
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
|
|
|
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
|
|
|
use Symfony\Component\Routing\Attribute\Route;
|
|
|
|
@ -20,19 +19,14 @@ class ProfilController extends AbstractController
|
|
|
|
|
#[Route(path: "/profil", name: "profil_perso", methods: ["GET"])]
|
|
|
|
|
public function baseProfil(): Response
|
|
|
|
|
{
|
|
|
|
|
try {
|
|
|
|
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED');
|
|
|
|
|
} catch (\Exception $e) {
|
|
|
|
|
return $this->redirectToRoute('app_login');
|
|
|
|
|
}
|
|
|
|
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED');
|
|
|
|
|
return $this->redirectToRoute('profil_show', ['id' => $this->getUser()->getId()]);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[Route('/profil/{id}', name: 'profil_show', requirements: ['page' => '\d+'])]
|
|
|
|
|
#[Route('/profil/{id}', name: 'profil_show', requirements: ['id' => '\d+'])]
|
|
|
|
|
public function profil(int $id): Response
|
|
|
|
|
{
|
|
|
|
|
$connected = $this->isGranted('ROLE_USER');
|
|
|
|
|
// $connected = $this->isGranted('ROLE_USER') != false;
|
|
|
|
|
|
|
|
|
|
$profil = $this->mgr->find(Profil::class, $id);
|
|
|
|
|
$posts = $profil->getPosts();
|
|
|
|
@ -48,11 +42,7 @@ class ProfilController extends AbstractController
|
|
|
|
|
#[Route('/profil/post/follow', name: 'profil_post_follow')]
|
|
|
|
|
public function postProfilfollow(): Response
|
|
|
|
|
{
|
|
|
|
|
try{
|
|
|
|
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED');
|
|
|
|
|
}catch (\Exception $e){
|
|
|
|
|
return $this->redirectToRoute('app_login');
|
|
|
|
|
}
|
|
|
|
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED');
|
|
|
|
|
$profil = $this->getUser();
|
|
|
|
|
$posts = $this->postRepository->getPostFromFollowed($profil);
|
|
|
|
|
return $this->render('post/all.html.twig', [
|
|
|
|
@ -64,12 +54,7 @@ class ProfilController extends AbstractController
|
|
|
|
|
#[Route('/profil/{id}/unfollow', name: 'profil_unfollow', requirements: ['page' => '\d+'])]
|
|
|
|
|
public function unfollowProfil(int $id): Response
|
|
|
|
|
{
|
|
|
|
|
try{
|
|
|
|
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED');
|
|
|
|
|
}catch (\Exception $e){
|
|
|
|
|
return $this->redirectToRoute('app_login');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED');
|
|
|
|
|
$profil = $this->mgr->find(Profil::class, $id);
|
|
|
|
|
if ($profil instanceof Profil) {
|
|
|
|
|
$profil->removeFollower($this->getUser());
|
|
|
|
@ -130,11 +115,7 @@ class ProfilController extends AbstractController
|
|
|
|
|
#[Route('/profil/{id}/follow', name: 'profil_follow', requirements: ['page' => '\d+'])]
|
|
|
|
|
public function followProfil(int $id): Response
|
|
|
|
|
{
|
|
|
|
|
try{
|
|
|
|
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED');
|
|
|
|
|
}catch (\Exception $e){
|
|
|
|
|
return $this->redirectToRoute('app_login');
|
|
|
|
|
}
|
|
|
|
|
$this->denyAccessUnlessGranted('IS_AUTHENTICATED');
|
|
|
|
|
$profil = $this->mgr->find(Profil::class, $id);
|
|
|
|
|
|
|
|
|
|
if ($profil instanceof Profil) {
|
|
|
|
@ -151,21 +132,24 @@ class ProfilController extends AbstractController
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
#[Route('/profil/{id}/delete', name: 'profil_delete', methods: ['POST'], requirements: ['id' => '\d+'])]
|
|
|
|
|
public function delete(int $id, Request $request): Response
|
|
|
|
|
#[Route('/profil/delete', name: 'profil_delete', methods: ['POST'])]
|
|
|
|
|
public function delete(): Response
|
|
|
|
|
{
|
|
|
|
|
$profil = $this->mgr->find(Profil::class, $id);
|
|
|
|
|
$profil = $this->mgr->find(Profil::class, $this->getUser()->getId());
|
|
|
|
|
|
|
|
|
|
if (!$profil) {
|
|
|
|
|
throw $this->createNotFoundException('The profile does not exist');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if ($this->isCsrfTokenValid('delete' . $profil->getId(), $request->request->get('_token'))) {
|
|
|
|
|
if ($this->getUser()->getId() === $profil->getId())
|
|
|
|
|
{
|
|
|
|
|
$this->container->get('security.token_storage')->setToken(null);
|
|
|
|
|
//$this->getUser()->eraseCredentials();
|
|
|
|
|
$this->mgr->remove($profil);
|
|
|
|
|
$this->mgr->flush();
|
|
|
|
|
$this->addFlash('success', 'Profile deleted successfully');
|
|
|
|
|
return $this->redirectToRoute('app_logout');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return $this->redirectToRoute('app_login');
|
|
|
|
|
return $this->redirectToRoute('app_logout');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|