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

Merge branch 'laminas_migration_bs5' of https://git.unicaen.fr/lib/unicaen/utilisateur into HEAD

parents ee6cdff0 e4be0b20
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -9,6 +9,7 @@
    ],
    "require": {
        "unicaen/app": ">=5.0",
        "unicaen/mail": ">=5.0",
        "laminas/laminas-dependency-plugin": "^2.1"
    },
    "require-dev": {
+26 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

use UnicaenUtilisateur\Controller\UtilisateurController;
use UnicaenUtilisateur\Controller\UtilisateurControllerFactory;
use UnicaenUtilisateur\Form\User\InitCompteForm;
use UnicaenUtilisateur\Form\User\UserForm;
use UnicaenUtilisateur\Form\User\UserFormFactory;
use UnicaenUtilisateur\Form\User\UserHydrator;
@@ -31,6 +32,14 @@ return [
    'bjyauthorize' => [
        'guards' => [
            PrivilegeController::class => [
                [
                    'controller' => UtilisateurController::class,
                    'action' => [
                        'changer-mot-de-passe',
                    ],
                    'roles' => [
                    ],
                ],
                [
                    'controller' => UtilisateurController::class,
                    'action' => [
@@ -109,6 +118,16 @@ return [
                            ],
                        ],
                    ],
                    'changer-mot-de-passe' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/changer-mot-de-passe/:user/:token',
                            'defaults'    => [
                                'controller' => UtilisateurController::class,
                                'action' => 'changer-mot-de-passe',
                            ],
                        ],
                    ],
                    'exporter' => [
                        'type'          => Literal::class,
                        'options'       => [
@@ -184,12 +203,19 @@ return [
    'form_elements' => [
        'invokables' => [
            UserRechercheForm::class => UserRechercheForm::class,
            InitCompteForm::class => InitCompteForm::class,
        ],
        'factories' => [
            UserForm::class => UserFormFactory::class,
        ],
    ],

    'hydrators' => [
        'factories' => [
            UserHydrator::class => UserHydratorFactory::class,
        ]
    ],
    
    'controllers'     => [
        'factories' => [
            UtilisateurController::class => UtilisateurControllerFactory::class,
+5 −0
Original line number Diff line number Diff line
@@ -73,6 +73,11 @@ return [
//            'ldap'      => LdapService::class,
//            'octopus'   => IndividuService::class,
        ],
        /** 
         * Utilisateur par défaut qui valide les créations/modifications si aucun utilisateur de connecté.
         * Commenter si comportement non souhaité.
         */
        'default-user' => 1,
    ],

    'navigation' => [
+29 −1
Original line number Diff line number Diff line
@@ -8,6 +8,7 @@ use Exception;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenApp\View\Model\CsvModel;
use UnicaenUtilisateur\Entity\Db\UserInterface;
use UnicaenUtilisateur\Form\User\InitCompteFormAwareTrait;
use UnicaenUtilisateur\Form\User\UserFormAwareTrait;
use UnicaenUtilisateur\Form\User\UserRechercheFormAwareTrait;
use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuResultatInterface;
@@ -26,6 +27,7 @@ class UtilisateurController extends AbstractActionController
    use RoleServiceAwareTrait;
    use UserServiceAwareTrait;
    use EntityManagerAwareTrait;
    use InitCompteFormAwareTrait;
    use UserFormAwareTrait;
    use UserRechercheFormAwareTrait;

@@ -137,7 +139,7 @@ class UtilisateurController extends AbstractActionController
            if ($form->isValid()) {
                try {
                    $this->userService->createLocal($utilisateur);
                    $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> créé avec succès.", $utilisateur->getDisplayName()));
                    $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> créé avec succès. Un courrier életronique vient de vous être envoyé pour l'initialisation de votre mot de passe", $utilisateur->getDisplayName()));
                } catch (Exception $e) {
                    $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la création de l'utilisateur <strong>%s</strong>.", $utilisateur->getDisplayName()));
                }
@@ -150,6 +152,32 @@ class UtilisateurController extends AbstractActionController
        return compact('title', 'form');
    }

    public function changerMotDePasseAction()
    {
        $utilisateur = $this->userService->getRequestedUser($this, 'user');
        $token = $this->params()->fromRoute('token');
        $reset = $utilisateur->getPasswordResetToken();

        $form = $this->getInitCompteForm();
        $form->setAttribute('action', $this->url()->fromRoute('unicaen-utilisateur/changer-mot-de-passe', ['user' => $utilisateur->getId(), 'token' => $utilisateur->getPasswordResetToken()], ['force_canonical' => true], true));
        
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $this->userService->changerPassword($utilisateur,$data);
            $this->flashMessenger()->addSuccessMessage("Mot de passe changé avec succés");
            return $this->redirect()->toRoute('home', [], [], true);
        }

        return new ViewModel([
            'utilisateur' => $utilisateur,
            'token' => $token,
            'form' => $form,

        ]);
                
    }

    public function addRoleAction()
    {
        $utilisateur = $this->userService->getRequestedUser($this);
+3 −0
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace UnicaenUtilisateur\Controller;
use Interop\Container\ContainerInterface;
use Psr\Container\ContainerExceptionInterface;
use Psr\Container\NotFoundExceptionInterface;
use UnicaenUtilisateur\Form\User\InitCompteForm;
use UnicaenUtilisateur\Form\User\UserForm;
use UnicaenUtilisateur\Form\User\UserRechercheForm;
use UnicaenUtilisateur\Service\RechercheIndividu\RechercheIndividuServiceInterface;
@@ -32,6 +33,7 @@ class UtilisateurControllerFactory
        $moduleConfig = $config['unicaen-utilisateur'];
        $roleService = $container->get(RoleService::class);
        $userService = $container->get(UserService::class);
        $initCompte = $container->get('FormElementManager')->get(InitCompteForm::class);
        $userForm = $container->get('FormElementManager')->get(UserForm::class);
        $userRechercheForm = $container->get('FormElementManager')->get(UserRechercheForm::class);

@@ -57,6 +59,7 @@ class UtilisateurControllerFactory
        $controller->setUserService($userService);
        $controller->setSearchServices($rechercheServices);
        $controller->setIdentityProvider($identityProvider);
        $controller->setInitCompteForm($initCompte);
        $controller->setUserForm($userForm);
        $controller->setUserRechercheForm($userRechercheForm);

Loading