Commit 6d5f1ccc authored by Jean-Philippe Metivier's avatar Jean-Philippe Metivier
Browse files

Ajout des roles automatiques à l'index

parent 190cf6d8
Loading
Loading
Loading
Loading
Loading
+1 −0
Changes for config/merged/utilisateur.config.php: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -252,6 +252,7 @@ return [
                        'options' => [
                            'route' => '/ajouter-role/:utilisateur[/:role]',
                            'defaults' => [
                                /** @see UtilisateurController::ajouterRoleAction() */
                                'controller' => UtilisateurController::class,
                                'action' => 'ajouter-role',
                            ],
+52 −15
Changes for src/UnicaenUtilisateur/Controller/UtilisateurController.php: 52 added lines, 15 removed lines.
Original line number Diff line number Diff line
@@ -140,7 +140,16 @@ class UtilisateurController extends AbstractActionController
        $title = "Gestion des utilisateurs";
        $perimetresEnabled = $this->perimetresEnabled;

        return compact('title', 'utilisateur', 'allRoles', 'userRechercheForm', 'userRoleForm', 'userRolePerimetreForm', 'perimetresEnabled');
        $rolesAutomatiques = [];
        if ($utilisateur) {
            $rolesAutomatiques = $this->getIdentityService()->getUserRoles($utilisateur);
            $rolesAutomatiques = array_filter($rolesAutomatiques, function (RoleInterface $role) {
                return $role->isAuto();
            });
            $a=1;
        }

        return compact('title', 'utilisateur', 'allRoles', 'rolesAutomatiques', 'userRechercheForm', 'userRoleForm', 'userRolePerimetreForm', 'perimetresEnabled');
    }

    public function ajouterAction()
@@ -289,24 +298,37 @@ class UtilisateurController extends AbstractActionController
        ]);
    }

    public function ajouterRoleAction()
    public function ajouterRoleAction(): JsonModel
    {
        $utilisateur = $this->userService->getRequestedUser($this);
        $roleId = $this->params()->fromPost('role');
        $role = $this->roleService->find($roleId);

        if ($utilisateur !== null && $role !== null) {
        if ($utilisateur === null)  {
            return new JsonModel([
                'result' => false,
                'message' => "Aucun·e utilisateur·trice",
            ]);
        }
        if ($role === null) {
            return new JsonModel([
                'result' => false,
                'message' => "Aucun rôle",
            ]);
        }

        try {
            $this->userService->addRole($utilisateur, $role);
                $this->flashMessenger()->addSuccessMessage(
                    sprintf("Ajout du rôle <strong>%s</strong> à l'utilisateur <strong>%s</strong>.", $role->getLibelle(), $utilisateur->getDisplayName()));
            return new JsonModel([
                'result' => true,
                'message' => "Ajout effectué",
            ]);
        } catch (RuntimeException $e) {
                $this->flashMessenger()->addErrorMessage(
                    sprintf("Erreur lors de l'ajout du rôle <strong>%s</strong> à l'utilisateur <strong>%s</strong>.", $role->getLibelle(), $utilisateur->getDisplayName()));
            }
            return new JsonModel([
                'result' => false,
                'message' => $e->getMessage(),
            ]);
        }

        exit;
    }

    public function changerStatutAction()
@@ -639,24 +661,39 @@ class UtilisateurController extends AbstractActionController
        ]);
    }

    public function supprimerRoleAction()
    public function supprimerRoleAction(): JsonModel
    {
        $utilisateur = $this->userService->getRequestedUser($this);
        $roleId = $this->params()->fromRoute("role");
        $role = $this->roleService->find($roleId);

        if ($utilisateur !== null && $role !== null && !$role->isAuto()) {
        if ($utilisateur === null) {
            return new JsonModel([
                'result' => false,
                'message' => "Aucun·e utilisateur·trice",
            ]);
        }
        if ($role === null) {
            return new JsonModel([
                'result' => false,
                'message' => "Aucun rôle",
            ]);
        }


        try {
            $this->userService->removeRole($utilisateur, $role);

            $this->flashMessenger()->addSuccessMessage(
                sprintf("Suppression du rôle <strong>%s</strong> de l'utilisateur <strong>%s</strong>.", $role->getLibelle(), $utilisateur->getDisplayName()));
        } catch (RuntimeException $e) {
            $this->flashMessenger()->addErrorMessage(
                sprintf("Erreur lors de la suppression du rôle <strong>%s</strong> de l'utilisateur <strong>%s</strong>.", $role->getLibelle(), $utilisateur->getDisplayName()));
        }
        }

        exit;
        return new JsonModel([
            'result' => true,
            'message' => "Retrait effectué",
        ]);
    }

    public function flashMessageAction()