Commit 135b1c6b authored by Bertrand Gauthier's avatar Bertrand Gauthier
Browse files

Possibilité pour le futur doctorant de se créer un compte utilisateur local...

Possibilité pour le futur doctorant de se créer un compte utilisateur local pour saisir un dossier d'admission.
parent 08c8840b
Loading
Loading
Loading
Loading
+1 −0
Changes for CHANGELOG.md: 1 added line, 0 removed lines.
Original line number Diff line number Diff line
@@ -10,6 +10,7 @@ Journal des modifications
- Formateur du nom de fichier pour la fusion PDC & manuscrit : séparateur 'underscore' car STEP-STAR n'aime pas le tiret du 6.
- Module Admission : Export vers Pégase -> concernant le sexe, M et Mme deviennent M et F
- Module Admission : Export vers Pégase -> export seulement des thèses dont l'individu n'est pas encore doctorant
- Possibilité pour le futur doctorant de se créer un compte utilisateur local pour saisir un dossier d'admission.
- [FIX] Le bouton de recherche/liaison de notice IdRef ne fonctionnait pas dans une modale (unicaen/idref 1.0.0 requis).
- [FIX] Synchro : plantage lors de la génération du diff (unicaen/db-import 6.1.3 nécessaire car nouvelle plateforme Doctrine\DBAL\Platforms\PostgreSQL120Platform).
- [FIX] Le menu Nos Thèses s'affichait à tort pour le rôle Doctorant (du fait que ce dernier est désormais tagué établissement-dépendant).
+1 −1
Changes for config/autoload/unicaen-auth.global.php: 1 added line, 1 removed line.
Original line number Diff line number Diff line
@@ -62,7 +62,7 @@ return [
        // Enable registration
        // Allows users to register through the website.
        // Accepted values: boolean true or false
        'enable_registration' => false,
        'enable_registration' => true,
    ],

    'service_manager' => [
+17 −1
Changes for module/Application/config/others/utilisateur.config.php: 17 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -14,13 +14,15 @@ use Application\Form\InitCompteForm;
use Application\Form\Validator\Factory\NewEmailValidatorFactory;
use Application\Form\Validator\NewEmailValidator;
use Application\Form\Validator\PasswordValidator;
use Application\Process\Utilisateur\UtilisateurProcess;
use Application\Process\Utilisateur\UtilisateurProcessFactory;
use Application\Provider\Privilege\UtilisateurPrivileges;
use Application\Service\Utilisateur\UtilisateurSearchService;
use Application\Service\Utilisateur\UtilisateurSearchServiceFactory;
use Application\Service\Utilisateur\UtilisateurService;
use Application\Service\Utilisateur\UtilisateurServiceFactory;
use Individu\View\Helper\IndividuUsurpationHelperFactory;
use Application\View\Helper\RoleHelper;
use Individu\View\Helper\IndividuUsurpationHelperFactory;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use UnicaenAuth\Guard\PrivilegeController;
@@ -72,6 +74,7 @@ return [
                [
                    'controller' => 'Application\Controller\Utilisateur',
                    'action'     => [
                        'register',
                        'init-compte',
                    ],
                    'roles' => [],
@@ -249,6 +252,18 @@ return [

                ],
            ],
            'zfcuser' => [
                'child_routes' => [
                    'register' => [
                        'options' => [
                            'defaults' => [
                                'controller' => 'Application\Controller\Utilisateur',
                                'action' => 'register',
                            ],
                        ],
                    ],
                ],
            ]
        ],
    ],
    'navigation'      => [
@@ -275,6 +290,7 @@ return [
        ],
        'factories' => [
            'UtilisateurService' => UtilisateurServiceFactory::class,
            UtilisateurProcess::class => UtilisateurProcessFactory::class,
            UtilisateurSearchService::class => UtilisateurSearchServiceFactory::class,
        ],
        'aliases' => [
+5 −0
Changes for module/Application/src/Application/Controller/Factory/UtilisateurControllerFactory.php: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -5,6 +5,7 @@ namespace Application\Controller\Factory;
use Application\Controller\UtilisateurController;
use Application\Form\CreationUtilisateurForm;
use Application\Form\InitCompteForm;
use Application\Process\Utilisateur\UtilisateurProcess;
use Application\Service\Notification\ApplicationNotificationFactory;
use These\Service\Acteur\ActeurService;
use Notification\Service\NotifierService;
@@ -115,6 +116,10 @@ class UtilisateurControllerFactory
        $controller->setUserMapper($userMapper);
        $controller->setSessionService($sessionService);

        /** @var UtilisateurProcess $utilisateurProcess */
        $utilisateurProcess = $container->get(UtilisateurProcess::class);
        $controller->setUtilisateurProcess($utilisateurProcess);

        /** @var \Application\Service\Notification\ApplicationNotificationFactory $applicationNotificationFactory */
        $applicationNotificationFactory = $container->get(ApplicationNotificationFactory::class);
        $controller->setApplicationNotificationFactory($applicationNotificationFactory);
+40 −12
Changes for module/Application/src/Application/Controller/UtilisateurController.php: 40 added lines, 12 removed lines.
Original line number Diff line number Diff line
@@ -4,8 +4,8 @@ namespace Application\Controller;

use Application\Entity\Db\Utilisateur;
use Application\Form\CreationUtilisateurForm;
use Application\Form\InitCompteForm;
use Application\Form\InitCompteFormAwareTrait;
use Application\Process\Utilisateur\UtilisateurProcessAwareTrait;
use Application\Search\Controller\SearchControllerInterface;
use Application\Search\Controller\SearchControllerTrait;
use Application\Search\SearchServiceAwareTrait;
@@ -68,6 +68,8 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
    use UserServiceAwareTrait;
    use TokenServiceAwareTrait;

    use UtilisateurProcessAwareTrait;

    use SessionServiceAwareTrait;

    use InitCompteFormAwareTrait;
@@ -87,10 +89,7 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
     */
    protected $shibService;

    /**
     * @var CreationUtilisateurForm
     */
    private $creationUtilisateurForm;
    private CreationUtilisateurForm $creationUtilisateurForm;

    /**
     * @param ModuleOptions $authModuleOptions
@@ -116,10 +115,7 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
        $this->shibService = $shibService;
    }

    /**
     * @param CreationUtilisateurForm $creationUtilisateurForm
     */
    public function setCreationUtilisateurForm(CreationUtilisateurForm $creationUtilisateurForm)
    public function setCreationUtilisateurForm(CreationUtilisateurForm $creationUtilisateurForm): void
    {
        $this->creationUtilisateurForm = $creationUtilisateurForm;
    }
@@ -226,7 +222,7 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
                    $individu = $this->individuService->newIndividuFromData($data->toArray());
                    $this->individuService->saveIndividu($individu);

                    $utilisateur = $this->utilisateurService->createFromIndividuAndFormData($individu, $data->toArray());
                    $utilisateur = $this->utilisateurService->createUtilisateurFromIndividuAndFormData($individu, $data->toArray());
                } else {
                    $utilisateur = $this->utilisateurService->createFromFormData($data->toArray());
                }
@@ -414,6 +410,33 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
        ]);
    }

    public function registerAction(): ViewModel
    {
        $request = $this->getRequest();
        if ($request->isPost()) {
            $data = $request->getPost();
            $this->creationUtilisateurForm->setData($data);
            if ($this->creationUtilisateurForm->isValid()) {
                try {
                    $utilisateur = $this->utilisateurProcess->createUtilisateurAndIndividuFromFormData($data->toArray());

                    return new ViewModel([
                        'utilisateur' => $utilisateur,
                    ]);
                } catch (Exception $e) {
                    $this->flashMessenger()->addErrorMessage(
                        "Une erreur est survenue, la création a été annulée ! " . $e->getMessage()
                    );
                }
            }
        }

        return new ViewModel([
            'utilisateur' => null,
            'form' => $this->creationUtilisateurForm,
        ]);
    }

    public function creerCompteLocalIndividuAction()
    {
        $individu = $this->getIndividuService()->getRequestedIndividu($this);
@@ -480,6 +503,7 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
        if ($utilisateur === null) {
            return new ViewModel([
                'utilisateur' => null,
                'initialized' => false,
            ]);
        }

@@ -494,14 +518,18 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
            $this->initCompteForm->setData($data);
            if ($this->initCompteForm->isValid()) {
                $this->utilisateurService->changePassword($utilisateur, $data['password1']);
                $this->flashMessenger()->addSuccessMessage('Mot de passe initialisé avec succés.');
                return $this->redirect()->toRoute('home');

                return new ViewModel([
                    'utilisateur' => $utilisateur,
                    'initialized' => true,
                ]);
            }
        }

        return new ViewModel([
            'form' => $this->initCompteForm,
            'utilisateur' => $utilisateur,
            'initialized' => false,
        ]);
    }

Loading