Commit 64bce4a6 authored by David Surville's avatar David Surville
Browse files

Revue des pages de gestion des utilisateurs suite à la fusion

parent 70c173c0
Loading
Loading
Loading
Loading
+2 −4
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ class RoleController extends AbstractActionController
    use RoleFormAwareTrait;


    public function indexAction() : ViewModel
    public function indexAction() : array
    {
        $roles = $this->roleService->findAll();
        $roleUsers = [];
@@ -143,7 +143,7 @@ class RoleController extends AbstractActionController
        return $view;
    }

    public function supprimerAction() : array
    public function supprimerAction()
    {
        $role = null;
        try {
@@ -153,7 +153,5 @@ class RoleController extends AbstractActionController
        } catch (RuntimeException $e) {
            $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la suppression du rôle <strong>%s</strong>.", $role->getLibelle()));
        }

        return compact('role');
    }
}
 No newline at end of file
+38 −12
Original line number Diff line number Diff line
@@ -42,7 +42,12 @@ class UtilisateurController extends AbstractActionController
    /**
     * @var RechercheIndividuServiceInterface[]
     */
    public $searchServices;
    protected array $searchServices;

    /**
     * @var bool
     */
    protected bool $perimetresEnabled = false;


    /**
@@ -54,6 +59,17 @@ class UtilisateurController extends AbstractActionController
        $this->searchServices = $searchServices;
    }

    /**
     * @param bool $enabled
     * @return self
     */
    public function setPerimetresEnabled(bool $enabled)
    {
        $this->perimetresEnabled = $enabled;

        return $this;
    }

    public function indexAction()
    {
        $roles = $this->roleService->findAll();
@@ -109,7 +125,9 @@ class UtilisateurController extends AbstractActionController
        }

        $title = "Gestion des utilisateurs";
        return compact('title', 'utilisateur', 'userRechercheForm', 'userRoleForm', 'userRolePerimetreForm');
        $perimetresEnabled = $this->perimetresEnabled;

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

    public function ajouterAction()
@@ -117,24 +135,32 @@ class UtilisateurController extends AbstractActionController
        $utilisateur = $this->userService->getEntityInstance();
        $form = $this->userForm;
        $form->setAttribute('action', $this->url()->fromRoute('unicaen-utilisateur/ajouter', [], [], true));
        $form->getInputFilter()->get('username')->setRequired(false); $form->remove('username');
        $form->getInputFilter()->get('displayName')->setRequired(false); $form->remove('displayName');
        $form->bind($utilisateur);

        if ($data = $this->params()->fromPost()) {
            $form->setData($data);
            if ($form->isValid()) {
                try {
                    $utilisateur = $form->getData();
                    $this->userService->createLocal($utilisateur, $data['nom']);
                    $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> créé avec succès. Un courrier électronique vient d'être envoyé à l'utilisateur pour l'initialisation de votre mot de passe", $utilisateur->getDisplayName()));
                    $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> créé avec succès. Un courrier électronique vient d'être envoyé à l'utilisateur pour l'initialisation de son mot de passe", $utilisateur->getDisplayName()));
                } catch (RuntimeException $e) {
                    $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la création de l'utilisateur <strong>%s</strong>.", $utilisateur->getDisplayName()));
                }

                return $this->redirect()->toRoute('unicaen-utilisateur', [], ["query" => ["id" => $utilisateur->getId()]], true);
            }
        }

        $title = "Création d'un utilisateur local";
        return compact('title', 'form');
        $view = new ViewModel();
        $view->setTemplate('unicaen-utilisateur/utilisateur/template/form-user');
        $view->setVariables([
            'title' => "Création d'un utilisateur local",
            'form' => $form,
            'utilisateur' => $utilisateur,
        ]);

        return $view;
    }

    public function changerMotDePasseAction()
@@ -301,6 +327,8 @@ class UtilisateurController extends AbstractActionController
        $utilisateur = $this->userService->getRequestedUser($this);
        $form = $this->userForm;
        $form->setAttribute('action', $this->url()->fromRoute('unicaen-utilisateur/modifier', ['utilisateur' => $utilisateur->getId()], [], true));
        $form->getInputFilter()->get('nom')->setRequired(false); $form->remove('nom');
        $form->getInputFilter()->get('prenom')->setRequired(false); $form->remove('prenom');
        $form->bind($utilisateur);

        if ($data = $this->params()->fromPost()) {
@@ -375,10 +403,10 @@ class UtilisateurController extends AbstractActionController
                $result[] = [
                    'id' => $key . '||' . $individu->getId(),
                    'label' => $individu->getDisplayName(),
                    'extra' => sprintf(' <span class="text-highlight">/</span> %s <span class="text-highlight">/</span> %s %s',
                        $individu->getUsername($this->usernamefield),
                    'extra' => sprintf(' <span>/</span> %s <span>/</span> %s %s',
                        $individu->getUsername(),
                        $individu->getEmail() ?: "aucun email",
                        ( $key === 'app' ) ? '<i title="Utilisateur existant" class="fas fa-check-circle text-success"></i>' : '')
                        ( $key === 'app' ) ? ' <i title="Utilisateur existant" class="fas fa-check-circle text-white"></i>' : '')
                ];
            }
        }
@@ -399,8 +427,6 @@ class UtilisateurController extends AbstractActionController
        } catch (RuntimeException $e) {
            $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la suppression de l'utilisateur <strong>%s</strong>.", $utilisateur->getDisplayName()));
        }

        return compact('utilisateur');
    }

    public function supprimerPerimetreAction()
+6 −1
Original line number Diff line number Diff line
@@ -25,7 +25,7 @@ class UtilisateurControllerFactory
     * @throws ContainerExceptionInterface
     * @throws NotFoundExceptionInterface
     */
    public function __invoke(ContainerInterface $container, string $requestedName, array $options = null)
    public function __invoke(ContainerInterface $container, $requestedName, ?array $options = null)
    {
        /**
         * @var IdentityService $identityService
@@ -56,6 +56,10 @@ class UtilisateurControllerFactory
            }
        }

        // périmètres activés ?
        $moduleAuthConfig = $config['unicaen-auth'];
        $perimetresEnabled = isset($moduleAuthConfig['enable_perimetres']) && $moduleAuthConfig['enable_perimetres'] === true;

        $controller = new UtilisateurController();
        $controller->setIdentityService($identityService);
        $controller->setPerimetreService($perimetreService);
@@ -66,6 +70,7 @@ class UtilisateurControllerFactory
        $controller->setUserRechercheForm($userRechercheForm);
        $controller->setUserRoleForm($userRoleForm);
        $controller->setUserRolePerimetreForm($userRolePerimetreForm);
        $controller->setPerimetresEnabled($perimetresEnabled);

        $controller->setUsernameField($usernamefield);

+14 −14
Original line number Diff line number Diff line
@@ -26,42 +26,42 @@ class RoleForm extends Form

        $this->add([
            'type' => Text::class,
            'name' => 'libelle',
            'name' => 'roleId',
            'options' => [
                'label' => "Libellé :",
                'label' => "Identifiant :",
                'label_attributes' => [
                    'class' => 'required',
                ],
            ],
            'attributes' => [
                'id' => 'libelle',
                'id' => 'role-id',
            ],
        ]);

        $this->add([
            'type' => Textarea::class,
            'name' => 'description',
            'type' => Text::class,
            'name' => 'libelle',
            'options' => [
                'label' => "Description :",
                'label' => "Libellé :",
                'label_attributes' => [
                    'class' => 'required',
                ],
            ],
            'attributes' => [
                'id' => 'description',
                'id' => 'libelle',
            ],
        ]);
        
        $this->add([
            'type' => Text::class,
            'name' => 'roleId',
            'type' => Textarea::class,
            'name' => 'description',
            'options' => [
                'label' => "Identifiant :",
                'label' => "Description :",
                'label_attributes' => [
                    'class' => 'required',
                ],
            ],
            'attributes' => [
                'id' => 'role-id',
                'id' => 'description',
            ],
        ]);

+3 −2
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace UnicaenUtilisateur\Form\User;
use DoctrineModule\Validator\NoObjectExists;
use Laminas\Filter\StringTrim;
use Laminas\Filter\StripTags;
use Laminas\Validator\EmailAddress;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenUtilisateur\Service\User\UserServiceAwareTrait;
use Laminas\Form\Element\Button;
@@ -133,7 +134,7 @@ class UserForm extends Form
                        'options' => [
                            'pattern' => '/^[a-zA-Z0-9]+$/',
                            'messages' => [
                                Validator\Regex::NOT_MATCH => "Seuls les caractères suivants sont autorisés pour le nom d'utilisateur : [a-z,A-Z,0-9].",
                                Regex::NOT_MATCH => "Seuls les caractères suivants sont autorisés pour le nom d'utilisateur : [a-z,A-Z,0-9].",
                            ],
                            'break_chain_on_failure' => true,
                        ],
@@ -215,7 +216,7 @@ class UserForm extends Form
                        ],
                    ],
                    [
                        'name' => Callback::class,
                        'name' => EmailAddress::class,
                        'options' => [
                            'message' => "Le format de l'adresse email n'est pas correct.",
//                            'useMxCheck' => true,
Loading