From 5e52386233a0a017e005370602268a0700f48d94 Mon Sep 17 00:00:00 2001 From: Charles Date: Thu, 4 Sep 2025 10:17:24 +0200 Subject: [PATCH] activate/deactivate organizations --- assets/styles/app.css | 4 +++ src/Controller/OrganizationController.php | 31 ++++++++++++++++++++ templates/organization/show.html.twig | 35 ++++++++++++++--------- 3 files changed, 56 insertions(+), 14 deletions(-) diff --git a/assets/styles/app.css b/assets/styles/app.css index 47efae3..581547f 100644 --- a/assets/styles/app.css +++ b/assets/styles/app.css @@ -128,4 +128,8 @@ body { background: var(--secondary-dark); color : #FFFFFF; border: var(--secondary); +} + +.btn-warning{ + border-radius: 1rem; } \ No newline at end of file diff --git a/src/Controller/OrganizationController.php b/src/Controller/OrganizationController.php index 3d8f509..5dd9c81 100644 --- a/src/Controller/OrganizationController.php +++ b/src/Controller/OrganizationController.php @@ -177,6 +177,8 @@ class OrganizationController extends AbstractController $actions = $this->entityManager->getRepository(Actions::class)->findBy(['Organization' => $organization]); $activities = $this->actionService->formatActivities($actions); + + $this->actionService->createAction("View Organization", $actingUser, $organization, $organization->getName()); return $this->render('organization/show.html.twig', [ 'organization' => $organization, 'newUsers' => $newUsers, @@ -206,5 +208,34 @@ class OrganizationController extends AbstractController return $this->redirectToRoute('organization_index'); } + #[Route(path: '/deactivate/{id}', name: 'deactivate', methods: ['POST'])] + public function deactivate($id){ + $this->denyAccessUnlessGranted("ROLE_SUPER_ADMIN"); + $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); + $organization = $this->entityManager->getRepository(Organizations::class)->find($id); + if (!$organization) { + throw $this->createNotFoundException(self::NOT_FOUND); + } + $organization->setIsActive(false); + $this->userOrganizationService->deactivateAllUserOrganizationLinks($actingUser, null, $organization); + $this->entityManager->persist($organization); + $this->actionService->createAction("Deactivate Organization", $actingUser, $organization, $organization->getName()); + return $this->redirectToRoute('organization_index'); + } + + #[Route(path: '/activate/{id}', name: 'activate', methods: ['POST'])] + public function activate($id){ + $this->denyAccessUnlessGranted("ROLE_SUPER_ADMIN"); + $actingUser = $this->userService->getUserByIdentifier($this->getUser()->getUserIdentifier()); + $organization = $this->entityManager->getRepository(Organizations::class)->find($id); + if (!$organization) { + throw $this->createNotFoundException(self::NOT_FOUND); + } + $organization->setIsActive(true); + $this->entityManager->persist($organization); + $this->actionService->createAction("Activate Organization", $actingUser, $organization, $organization->getName()); + return $this->redirectToRoute('organization_index'); + } + } diff --git a/templates/organization/show.html.twig b/templates/organization/show.html.twig index 0ec62ee..66fa9b9 100644 --- a/templates/organization/show.html.twig +++ b/templates/organization/show.html.twig @@ -18,13 +18,20 @@ onsubmit="return confirm('Vous allez supprimer cette organisation, êtes vous sûre?');" style="display: inline-block;"> -{# {% if organization.active %}#} -{# Désactiver l'organisation#} -{# {% else %}#} -{# Activer l'organisation#} -{# {% endif %}#} + + {% if organization.active %} +
+ +
+ {% else %} +
+ +
+ {% endif %} {% elseif is_granted("ROLE_ADMIN") %} Gérer mon organisation @@ -52,13 +59,13 @@ } %} -{#
#} - {% include 'user/userList.html.twig' with { - title: 'Mes utilisateurs', - organizationId: organization.id, - empty_message: 'Aucun utilisateurs trouvé.' - } %} -{#
#} + {#
#} + {% include 'user/userList.html.twig' with { + title: 'Mes utilisateurs', + organizationId: organization.id, + empty_message: 'Aucun utilisateurs trouvé.' + } %} + {#
#} {# APPLICATION ROW #}
{% for application in applications %}