This commit is contained in:
2025-09-18 22:01:50 +02:00
parent bcdf788be3
commit 589a2eacb9
13 changed files with 139 additions and 5 deletions

View File

@@ -45,6 +45,7 @@ class GroupController extends AbstractController
$group = new Group();
$group->addUser($this->getUser());
$group->setStatus(Group::ACTIVE);
$group->setOpen(true);
$this->denyAccessUnlessGranted(GroupVoter::SUBMIT, $group);
@@ -130,6 +131,25 @@ class GroupController extends AbstractController
return $this->redirectToRoute($isAdmin ? 'app_admin_group' : 'app_user_group_view', ['id' => $group->getId()]);
}
#[Route('/admin/group/subscribe/{id}', name: 'app_admin_group_subscribe')]
#[Route('/user/group/subscribe/{id}', name: 'app_user_group_subscribe')]
public function subscribe(int $id, Request $request, GroupRepository $groupRepository, EntityManagerInterface $em): Response
{
$group = $groupRepository->find($id);
if (!$group) {
throw new NotFoundHttpException('La ressource demandée est introuvable.');
}
$this->denyAccessUnlessGranted(GroupVoter::CANSUBSCRIBE, $group);
$group->addUser($this->getUser());
$em->flush();
$isAdmin = str_starts_with($request->attributes->get('_route'), 'app_admin');
return $this->redirectToRoute($isAdmin ? 'app_admin_group' : 'app_user_group_view', ['id' => $group->getId()]);
}
#[Route('/admin/group/delete/{id}', name: 'app_admin_group_delete')]
#[Route('/user/group/delete/{id}', name: 'app_user_group_delete')]
public function delete(int $id, Request $request, GroupRepository $groupRepository, EntityManagerInterface $em): Response
@@ -174,6 +194,7 @@ class GroupController extends AbstractController
'routecancel' => $isAdmin ? 'app_admin_group' : 'app_home',
'routedelete' => $isAdmin ? 'app_admin_group_delete' : 'app_user_group_delete',
'routemove' => $isAdmin ? 'app_admin_group_move' : 'app_user_group_move',
'routesubscribe' => $isAdmin ? 'app_admin_group_subscribe' : 'app_user_group_subscribe',
'group' => $group,
]);
}