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

Merge branch 'release_2.1.7'

parents 2a3757e1 64eb0990
Loading
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
Journal des modifications
=========================

2.1.7
-----
- Changement du fonctionnement de sursis pour les soutenances : seul la validation acteur vérifie le délai de deux mois et le sursis annule cette vérification.
- Ajout d'une interface pour lier/délier des utilisateurs sans individu à un individu.
- Le rôle de co-directeur est maintenant un rôle attribué automatiquement
 
2.1.6
-----
- Utilisation de l'id permanent CHARTE_DEPOT_DIFFUSION_THESE pour télécharger la charte de dépôt et diffusion de thèse.
+18 −0
Original line number Diff line number Diff line
# Version 2.1.7

## 1. Sur le serveur d'application

- Placez-vous dans le répertoire de l'application puis lancez la commande suivante 
pour installer la nouvelle version :

```bash
git fetch --tags && git checkout --force 2.1.6 && bash ./install.sh
```

- Selon le moteur PHP que vous avez installé, rechargez le service, exemple :
  - php7.3-fpm         : `service php7.3-fpm reload`
  - apache2-mod-php7.3 : `service apache2 reload`

## 2. Dans la base de données

Rien
 No newline at end of file
+20 −0
Original line number Diff line number Diff line
@@ -53,6 +53,8 @@ return [
                        'ajouter-role',
                        'ajouter',
                        'ajouterFromIndividu',
                        'lier-individu',
                        'delier-individu',
                    ],
                    'privileges' => UtilisateurPrivileges::UTILISATEUR_MODIFICATION,
                ],
@@ -125,6 +127,24 @@ return [
                            ],
                        ],
                    ],
                    'lier-individu' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/lier-individu/:utilisateur[/:individu]',
                            'defaults'    => [
                                'action' => 'lier-individu',
                            ],
                        ],
                    ],
                    'delier-individu' => [
                        'type'          => Segment::class,
                        'options'       => [
                            'route'       => '/delier-individu/:utilisateur',
                            'defaults'    => [
                                'action' => 'delier-individu',
                            ],
                        ],
                    ],
                    'creer-compte-local-individu' => [
                        'type'          => Segment::class,
                        'options'       => [
+68 −6
Original line number Diff line number Diff line
@@ -9,9 +9,7 @@ use Application\Form\CreationUtilisateurForm;
use Application\Form\InitCompteForm;
use Application\Form\InitCompteFormAwareTrait;
use Application\Search\Controller\SearchControllerInterface;
use Application\Search\Controller\SearchControllerPlugin;
use Application\Search\Controller\SearchControllerTrait;
use Application\Search\SearchServiceAwareTrait;
use Application\Service\Acteur\ActeurServiceAwareTrait;
use Application\Service\EcoleDoctorale\EcoleDoctoraleServiceAwareTrait;
use Application\Service\Etablissement\EtablissementServiceAwareTrait;
@@ -21,19 +19,16 @@ use Application\Service\Role\RoleServiceAwareTrait;
use Application\Service\Structure\StructureServiceAwareTrait;
use Application\Service\UniteRecherche\UniteRechercheServiceAwareTrait;
use Application\Service\UserContextServiceAwareTrait;
use Application\Service\Utilisateur\UtilisateurService;
use Application\Service\Utilisateur\UtilisateurServiceAwareTrait;
use Application\SourceCodeStringHelperAwareTrait;
use Doctrine\ORM\ORMException;
use Doctrine\ORM\Query\Expr;
use UnicaenApp\Exception\LogicException;
use UnicaenApp\Exception\RuntimeException;
use UnicaenApp\Service\EntityManagerAwareTrait;
use UnicaenAuth\Entity\Db\AbstractUser;
use UnicaenAuth\Entity\Shibboleth\ShibUser;
use UnicaenAuth\Options\ModuleOptions;
use UnicaenAuth\Service\ShibService;
use UnicaenAuth\Service\Traits\UserServiceAwareTrait;
use UnicaenLdap\Entity\People;
use Zend\Authentication\AuthenticationService;
use Zend\Http\Request;
use Zend\Http\Response;
@@ -422,4 +417,71 @@ class UtilisateurController extends \UnicaenAuth\Controller\UtilisateurControlle
        ]);
    }

    public function lierIndividuAction()
    {
        $utilisateur = $this->getUtilisateurService()->getRequestedUtilisateur($this);

        /**
         * Si on a un utilisateur et un individu alors on doit réaliser le lien
         */
        $individu = $this->getIndividuService()->getRequestedIndividu($this);
        if ($individu !== null) {
            $utilisateur->setIndividu($individu);
            try {
                $this->getUtilisateurService()->getEntityManager()->flush($utilisateur);
            } catch(ORMException $e) {
                throw new RuntimeException("Un problème est survenu lors de l'enregistrement en base de donnée", 0, $e);
            }
            $vm = new ViewModel([
                'title' => "Création de lien entre un individu et l'utilisateur ".$utilisateur->getDisplayName() . " [".$utilisateur->getId()."]",
                'utilisateur' => $utilisateur,
                'individu' => $individu,
            ]);
            return $vm;
        }

        $request = $this->getRequest();
        if ($request->isPost()) {

            /**
             * Si on revient du post un individu à été selectionné et on examine pour validation
             */
            $data = $request->getPost();
            $individuId = $data['individu']['id'];
            /** @var Individu $individu */
            $individu = $this->getIndividuService()->getRepository()->find($individuId);
            if ($individu !== null) {
                $acteurs = $this->getActeurService()->getRepository()->findActeursByIndividu($individu);
                $roles = $individu->getRoles();

                $vm = new ViewModel([
                    "title" => "Création de lien entre un individu et l'utilisateur " . $utilisateur->getDisplayName() . " [" . $utilisateur->getId() . "]",
                    "utilisateur" => $utilisateur,
                    "individu" => $individu,
                    "acteurs" => $acteurs,
                    "roles" => $roles,
                ]);
                return $vm;
            }
        }

        $vm = new ViewModel([
            'title' => "Création de lien entre un individu et l'utilisateur ".$utilisateur->getDisplayName() . " [".$utilisateur->getId()."]",
            'utilisateur' => $utilisateur,
        ]);
        return $vm;
    }

    public function delierIndividuAction()
    {
        $utilisateur = $this->getUtilisateurService()->getRequestedUtilisateur($this);
        $utilisateur->setIndividu(null);
        try {
            $this->getUtilisateurService()->getEntityManager()->flush($utilisateur);
        } catch (ORMException $e) {
            throw new RuntimeException("Un problème est survenu lors de l'enregistrement en base de donnée", 0, $e);
        }
        return $this->redirect()->toRoute('utilisateur/voir', ['utilisateur' => $utilisateur->getId()], [], true);
    }

}
 No newline at end of file
+1 −1
Original line number Diff line number Diff line
@@ -39,7 +39,7 @@ class Utilisateur extends AbstractUser implements UserInterface, ProviderInterfa
     * @param Individu $individu
     * @return self
     */
    public function setIndividu(Individu $individu = null)
    public function setIndividu(?Individu $individu = null)
    {
        $this->individu = $individu;

Loading