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

Merge branch 'release_1.3.2'

parents 9b7c84b9 5647ef80
Loading
Loading
Loading
Loading
Loading
+10 −0
Original line number Diff line number Diff line
Journal des modifications
=========================

1.3.2 (27/11/2019)
------------------

### Ajouts

- Amélioration de l'affichage des rôles liés aux établissements
- Rénommage de 'Bureau du doctorats' en 'Maison du doctorat'
- Ajout d'un privilège pour l'affichage de l'adresse de contact du doctorant
- Ajout du menu 'Guide d'utilisation' sur l'accueil de l'application

1.3.1 (25/11/2019)
------------------

+3 −3
Original line number Diff line number Diff line
@@ -2,9 +2,9 @@
return [
    'unicaen-app' => [
        'app_infos' => [
            'version' => '1.3.1',
            'date' => '25/11/2019',
            'version' => '1.3.2',
            'date' => '27/11/2019',
        ],
    ],
    'comment' => 'Fichier généré le 25/11/2019 à 14:40:27 avec /home/gauthierb/workspace/sygal/bump-version',
    'comment' => 'Fichier généré le 27/11/2019 à 13:39:25 avec /home/metivier/MyWeb/sygal/bump-version',
];
+1 −1
Original line number Diff line number Diff line
@@ -41,7 +41,7 @@ create table PROFIL_TO_ROLE (
-- INSERT INTO PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION) VALUES (1, 'Unité de recherche', 'UR', 3, null);
-- INSERT INTO PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION) VALUES (2, 'École doctorale', 'ED', 2, null);
-- INSERT INTO PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION) VALUES (3, 'Administrateur', 'ADMIN', 1, 'Administrateur d''établissement');
-- INSERT INTO PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION) VALUES (4, 'Bureau des doctorats', 'BDD', 1, null);
-- INSERT INTO PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION) VALUES (4, 'Maison du doctorat', 'BDD', 1, null);
-- INSERT INTO PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION) VALUES (5, 'Bibliothèque universitaire', 'BU', 1, null);
INSERT INTO PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION) VALUES (6, 'Administrateur technique', 'ADMIN_TECH', null, null);
INSERT INTO PROFIL (ID, LIBELLE, ROLE_ID, STRUCTURE_TYPE, DESCRIPTION) VALUES (7, 'Doctorant', 'DOCTORANT', null, null);
+55 −10
Original line number Diff line number Diff line
@@ -2,21 +2,26 @@

## Interprétation du fichier CSV

Dans le fichier CSV, la première ligne désigne la classe d'assertion liée au fichier CSV.
Dans le fichier CSV, la première ligne désigne la classe d'assertion qui sera générée à partir du fichier CSV.
Par exemple, `class;Application\Assertion\These\GeneratedTheseEntityAssertion` pour la classe `GeneratedTheseEntityAssertion`.

Les lignes correspondent au privilièges et les colonnes aux prédicats utilisés. 
Pour lire comment interpréter le fichier, on regarde pour un privilège les lignes (consécutives?) qui lui sont associées et les prédicats pour lesquel la cellule est non vide.
La ligne 2 liste des prédicats qui peuvent être utilisés  et qui doivent être définit dans le classe mère `TheseEntityAssertion`.  

La colonne C correspond aux privilèges concernés.
 
Pour lire comment interpréter le fichier, on regarde pour un privilège les lignes (consécutives?) qui lui sont associées 
et les prédicats pour lesquel la cellule est non vide.


Par exemple, pour le privilège `THESE_DEPOT_INITIAL` :

| privilege                   | isTheseEnCours | isTheseSoutenue |...| return |
|-----------------------------|----------------|-----------------|---|--------|
|THESE_DEPOT_VERSION_INITIALE |1:0             |                 |...| 0      |
|THESE_DEPOT_VERSION_INITIALE |                | 1:1             |...| 0      |
| ... | ... | ... | ... | ... |
|THESE_DEPOT_VERSION_INITIALE |                |                 |...| 1      |
| privilege                     | isRoleDoctorantSelected | isTheseEnCours | isTheseSoutenue | isUtilisateurEstAuteurDeLaThese |...| return |
|-------------------------------|-------------------------|----------------|-----------------|---------------------------------|---|--------| 
|THESE_DEPOT_VERSION_INITIALE   |                         | 1:0            | 1:0             |                                 |...| 0      |
|THESE_DEPOT_VERSION_INITIALE   |                         |                | 1:1             |                                 |...| 0      |
|THESE_DEPOT_VERSION_INITIALE   |                         |                |                 |                                 |...| 1      |
|DOCTORANT_AFFICHER_MAIL_CONTACT| 1:1                     |                |                 | 2:1                             |...| 0      |
|DOCTORANT_AFFICHER_MAIL_CONTACT|                         |                |                 |                                 |...| 1      |

La cellule au croissement de `THESE_DEPOT_VERSION_INITIALE` et de `isTheseEnCours` vaut `1:0`.
Elle s'interprète comme si le prédicat est `faux` alors l'assertion retourne `0`.
@@ -26,6 +31,46 @@ Elle s'interprète comme si le prédicat est `vrai` alors l'assertion retourne `

La dernière ligne indique que si on a franchi toutes les étapes précédentes alors l'assertion retourne `1`.

```php
if ($privilege === \Application\Provider\Privilege\ThesePrivileges::THESE_DEPOT_VERSION_INITIALE) {
        //--------------------------------------------------------------------------------------
            /* line 4 */
            $this->linesTrace[] = '/* line 4 */';
            if (! $this->isTheseEnCours() /* test 5 */) {
                $this->failureMessage = "L’état de la thèse ne permet pas cette opération.";
                return false;
            }
            /* line 5 */
            $this->linesTrace[] = '/* line 5 */';
            if ($this->isTheseSoutenue() /* test 6 */) {
                $this->failureMessage = "Le dépôt initial n'est plus autorisé car la date de soutenance est passée.";
                return false;
            }
            /* line 9 */
            $this->linesTrace[] = '/* line 9 */';
            return true;
        }
```

Dans le cas `DOCTORANT_AFFICHER_MAIL_CONTACT` l'ordre indiqué par le premier nombre va impacter l'ordre d'utilisation des prédicats.
 
 ```php
if ($privilege === \Application\Provider\Privilege\DoctorantPrivileges::DOCTORANT_AFFICHER_EMAIL_CONTACT) {
        //--------------------------------------------------------------------------------------
            /* line 77 */
            $this->linesTrace[] = '/* line 77 */';
            if ($this->isRoleDoctorantSelected() /* test 1 */ && 
                ! $this->isUtilisateurEstAuteurDeLaThese() /* test 22 */) {
                $this->failureMessage = "Vous ne pouvez pas visualiser l’adresse de contact car vous n’êtes pas l’auteur de la thèse";
                return false;
            }
            /* line 78 */
            $this->linesTrace[] = '/* line 78 */';
            return true;
        }
```


## Ajouter une nouvelle assertion

***TODO***
+2 −0
Original line number Diff line number Diff line
@@ -76,3 +76,5 @@ line;enabled;privilege;isRoleDoctorantSelected;;isStructureDuRoleRespectee;;isTh
74;1;\Application\Provider\Privilege\ThesePrivileges::THESE_SAISIE_AUTORISATION_DIFFUSION_VERSION_INITIALE;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
75;1;\Application\Provider\Privilege\ThesePrivileges::THESE_TELECHARGEMENT_FICHIER /* évite UnexpectedPrivilegeException */;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
76;1;\Application\Provider\Privilege\ThesePrivileges::THESE_SAISIE_CORREC_AUTORISEE_FORCEE /* évite UnexpectedPrivilegeException */;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
77;1;\Application\Provider\Privilege\DoctorantPrivileges::DOCTORANT_AFFICHER_EMAIL_CONTACT;1:1;;;;;;;;;;;;;;;;;;;;;2:0;;;;;;0;Vous ne pouvez pas visualiser l’adresse de contact car vous n’êtes pas l’auteur de la thèse
78;1;\Application\Provider\Privilege\DoctorantPrivileges::DOCTORANT_AFFICHER_EMAIL_CONTACT;;;;;;;;;;;;;;;;;;;;;;;;;;;;1;
Loading