Commit 5e59f31a authored by David Surville's avatar David Surville
Browse files

Fusion brnache 5.x dans release/1.3.0 : intégration des périmètres

parent 21d45c71
Loading
Loading
Loading
Loading
+11 −2
Original line number Diff line number Diff line
<?php

use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use UnicaenPrivilege\Guard\PrivilegeController;
use UnicaenUtilisateur\Controller\RoleController;
use UnicaenUtilisateur\Controller\RoleControllerFactory;
@@ -14,8 +16,9 @@ use UnicaenUtilisateur\Provider\Role\DbRole;
use UnicaenUtilisateur\Provider\Role\DbRoleServiceFactory;
use UnicaenUtilisateur\Provider\Role\Username;
use UnicaenUtilisateur\Provider\Role\UsernameServiceFactory;
use Laminas\Router\Http\Literal;
use Laminas\Router\Http\Segment;
use UnicaenUtilisateur\Service\Role\RoleService;
use UnicaenUtilisateur\Service\Role\RoleServiceFactory;
use UnicaenUtilisateur\View\Helper\RoleViewHelper;

return [
    'bjyauthorize' => [
@@ -141,4 +144,10 @@ return [
            RoleForm::class => RoleFormFactory::class,
        ],
    ],

    'view_helpers'  => [
        'invokables' => [
            'role' => RoleViewHelper::class,
        ],
    ],
];
+5 −8
Original line number Diff line number Diff line
@@ -81,9 +81,6 @@ return [
    ],

    'view_helpers'  => [
        'invokables' => [
            'role' => RoleViewHelper::class,
        ],
        'aliases' => [
            'userCurrent' => UserCurrent::class,
            'userStatus' => UserStatus::class,
+3 −2
Original line number Diff line number Diff line
@@ -73,9 +73,10 @@ 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é.
         * Utilisateur par défaut utilisé pour les attributs d'historisation si aucun utilisateur n'est connecté.
         * A commenter si ce comportement n'est pas souhaité.
         */
        'default-user' => 1,
    ],
+52 −29
Original line number Diff line number Diff line
@@ -12,6 +12,7 @@ use UnicaenApp\View\Model\CsvModel;
use UnicaenPrivilege\Service\Perimetre\PerimetreServiceAwareTrait;
use UnicaenUtilisateur\Entity\Db\RoleInterface;
use UnicaenUtilisateur\Exception\RuntimeException;
use UnicaenUtilisateur\Form\User\InitCompteFormAwareTrait;
use UnicaenUtilisateur\Form\User\UserFormAwareTrait;
use UnicaenUtilisateur\Form\User\UserRechercheFormAwareTrait;
use UnicaenUtilisateur\Form\User\UserRoleFormAwareTrait;
@@ -43,6 +44,7 @@ class UtilisateurController extends AbstractActionController
     */
    public $searchServices;


    /**
     * @param array $searchServices
     * @return self
@@ -121,8 +123,8 @@ class UtilisateurController extends AbstractActionController
            $form->setData($data);
            if ($form->isValid()) {
                try {
                    $this->userService->createLocal($utilisateur);
                    $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> créé avec succès.", $utilisateur->getDisplayName()));
                    $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()));
                } catch (RuntimeException $e) {
                    $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la création de l'utilisateur <strong>%s</strong>.", $utilisateur->getDisplayName()));
                }
@@ -135,6 +137,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->updatePassword($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 ajouterPerimetreAction()
    {
        $utilisateur = $this->userService->getRequestedUser($this);
@@ -273,20 +301,13 @@ 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('password')->setRequired(false);
        $form->getInputFilter()->get('password2')->setRequired(false);
        $form->bind($utilisateur);

        if ($data = $this->params()->fromPost()) {
            foreach(['password', 'password2'] as $input) {
                if(empty($data[$input])) {
                    unset($data[$input]);
                }
            }
            $form->setData($data);
            if ($form->isValid()) {
                try {
                    $this->userService->updateLocal($utilisateur, $data['password']);
                    $this->userService->update($utilisateur);
                    $this->flashMessenger()->addSuccessMessage(sprintf("Utilisateur <strong>%s</strong> modifié avec succès.", $utilisateur->getDisplayName()));
                } catch (RuntimeException $e) {
                    $this->flashMessenger()->addErrorMessage(sprintf("Une erreur est survenu lors de la modification de l'utilisateur <strong>%s</strong>.", $utilisateur->getDisplayName()));
@@ -342,7 +363,7 @@ class UtilisateurController extends AbstractActionController
            $users = $service->findByTerm($term);
            $usersFiltered = array_filter($users, function ($e) use ($currentUsernames) {
                /** @var RechercheIndividuResultatInterface $e */
                return !in_array($e->getUsername($this->usernamefield), $currentUsernames);
                return !in_array($e->getUsername(), $currentUsernames);
            });
            $currentUsers = array_merge($currentUsers, $usersFiltered);
            $finalUsers[$key] = $usersFiltered;
@@ -362,7 +383,9 @@ class UtilisateurController extends AbstractActionController
            }
        }

        usort($result, function ($a, $b) { return $a['label'] > $b['label']; });
        usort($result, function ($a, $b) {
            return $a['label'] > $b['label'];
        });

        return new JsonModel($result);
    }
+7 −1
Original line number Diff line number Diff line
@@ -115,7 +115,13 @@ abstract class AbstractRole implements RoleInterface
        return $this->description;
    }

    public function setDescription(?string $description): void
    /**
     * Set description.
     *
     * @param string|null $description
     * @return RoleInterface
     */
    public function setDescription(?string $description) : RoleInterface
    {
        $this->description = $description;
    }
Loading