Commit 5f3b69e043c1ccc4b6236d8179b537c6a7fcdd2a

Authored by root
2 parents 84d738cc 15ebf91f

Merge branch 'master' of https://gitlab.irap.omp.eu/epallier/labinvent

conflit doc merge
README-LABINVENT.md
... ... @@ -50,12 +50,12 @@ Logiciel testé et validé sur les configurations suivantes :
50 50  
51 51 VERSION ACTUELLE
52 52  
53   -Date: 23/06/2016
54   -Version: 2.4.6.9
  53 +Date: 24/06/2016
  54 +Version: 2.4.7.2
55 55  
56   -Date garantie (materiel) + bugfixes calcul date (suivi)
  56 +!!! Se placer dans database/update et exécuter le script ./db-update-2016-06-24-2.sh !!!
57 57  
58   -Demande (terminé) : https://projects.irap.omp.eu/issues/3804
  58 +Correction demandé par l'IAS
59 59  
60 60 Version majeure en cours (2.4): https://projects.irap.omp.eu/versions/107
61 61  
... ... @@ -66,6 +66,9 @@ ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
66 66 CHANGEMENTS IMPORTANTS (MILESTONES)
67 67  
68 68 Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/commits/master
  69 +24/06/2016 Version: 2.4.7.2 (Version 2.4 finale)
  70 + Implémentation des ACL (droits) & Autres demandes
  71 + https://projects.irap.omp.eu/versions/107
69 72  
70 73 30/05/2016 Version: 2.3.2.1 (Version 2.3 finale)
71 74 Implémentation du LDAP (vrai et fake)
... ... @@ -91,6 +94,10 @@ Liste complète des évolutions: https://gitlab.irap.omp.eu/epallier/labinvent/c
91 94  
92 95 MODIFICATIONS STRUCTURELLES A FAIRE MANUELLEMENT APRES LA MISE A JOUR (git pull)
93 96  
  97 +24/06/16 (v2.4.7.2) Se placer dans database/update et exécuter le script ./db-update-2016-06-24-2.sh
  98 +
  99 +24/06/16 (v2.4.7.0) Se placer dans database/update et exécuter le script ./db-update-2016-06-24.sh
  100 +
94 101 23/06/16 (v2.4.6.5) Se placer dans database/update et exécuter le script ./db-update-2016-06-23.sh
95 102  
96 103 23/06/16 (v2.4.6.4) Se placer dans database/update et exécuter le script ./db-update-2016-06-22.sh
... ...
database/labinvent_2.1_12-05-16.sql
... ... @@ -348,6 +348,8 @@ CREATE TABLE IF NOT EXISTS `configurations` (
348 348 `emailGuest10` varchar(45) DEFAULT NULL,
349 349 `test` tinyint(1) DEFAULT NULL,
350 350 `prix_inventaire_administratif` int( 10 ) DEFAULT '800',
  351 + `numero_labo_sans_annee` tinyint(1) DEFAULT NULL,
  352 + `date_commande_facultative` tinyint(1) DEFAULT NULL,
351 353 PRIMARY KEY (`id`),
352 354 UNIQUE KEY `nom_UNIQUE` (`nom`)
353 355 );
... ... @@ -412,7 +414,7 @@ ALTER TABLE `users`
412 414 ADD CONSTRAINT `fk_users_groupe_thematique_id` FOREIGN KEY (`groupe_thematique_id`) REFERENCES `groupes_thematiques` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
413 415  
414 416 -- Insertion par défaut
415   -Insert into type_suivis(id, nom) values (9, 'Panne');
  417 +Insert into type_suivis(nom) values ('Réparation');
416 418 Insert into sites(id, nom) values (9, 'N/A');
417 419  
418 420 -- Insertion par défaut pour la table configuration
... ...
database/update/.gitignore
... ... @@ -7,3 +7,4 @@
7 7 /db-update-2016-04-25.sql~
8 8 /db-update-2016-06-03.sql~
9 9 /db-update-2016-06-13.sql~
  10 +/*-build.sql
... ...
database/update/db-update-2016-06-24-2.sh 0 → 100755
... ... @@ -0,0 +1,34 @@
  1 +#!/bin/bash
  2 +
  3 +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
  4 +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur
  5 +# Pour cela, il suffit d'executer ces 2 lignes :
  6 +# cp ce_script.sh ce_script_macosx.sh
  7 +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh
  8 +
  9 +if [ ! -f ../../config/app.php ] ; then
  10 +echo "Vous devez executer ce script depuis le dossier database/update/"
  11 +exit 1
  12 +fi
  13 +
  14 +
  15 +# Get login, pass, dbname, and hostname
  16 +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4)
  17 +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4)
  18 +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4)
  19 +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4)
  20 +
  21 +
  22 +cp -p ./script_sql/db-update-2016-06-24-2.sql ./script_sql/db-update-2016-06-24-2-build.sql
  23 +
  24 +# Execute sql update script
  25 +sed -e "s/database/$database/" -i ./script_sql/db-update-2016-06-24-2-build.sql
  26 +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2016-06-24-2-build.sql
  27 +
  28 +# Delete cakephp cache
  29 +sudo rm ../../tmp/cache/models/*
  30 +sudo rm ../../tmp/cache/persistent/*
  31 +
  32 +sudo chmod -R 777 ../../tmp
  33 +sudo chmod -R 777 ../../vendor
  34 +sudo chmod -R 777 ../../webroot
... ...
database/update/db-update-2016-06-24.sh 0 → 100755
... ... @@ -0,0 +1,34 @@
  1 +#!/bin/bash
  2 +
  3 +# Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
  4 +# Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur
  5 +# Pour cela, il suffit d'executer ces 2 lignes :
  6 +# cp ce_script.sh ce_script_macosx.sh
  7 +# sed -e "s/ -i / -i '' /" -i '' ce_script_macosx.sh
  8 +
  9 +if [ ! -f ../../config/app.php ] ; then
  10 +echo "Vous devez executer ce script depuis le dossier database/update/"
  11 +exit 1
  12 +fi
  13 +
  14 +
  15 +# Get login, pass, dbname, and hostname
  16 +username=$(grep "/\*d\*/'username'" ../../config/app.php | cut -d"'" -f4)
  17 +password=$(grep "/\*d\*/'password'" ../../config/app.php | cut -d"'" -f4)
  18 +database=$(grep "/\*d\*/'database'" ../../config/app.php | cut -d"'" -f4)
  19 +host=$(grep "/\*d\*/'host'" ../../config/app.php | cut -d"'" -f4)
  20 +
  21 +
  22 +cp -p ./script_sql/db-update-2016-06-24.sql ./script_sql/db-update-2016-06-24-build.sql
  23 +
  24 +# Execute sql update script
  25 +sed -e "s/database/$database/" -i ./script_sql/db-update-2016-06-24-build.sql
  26 +mysql --user=$username --password=$password -h $host < ./script_sql/db-update-2016-06-24-build.sql
  27 +
  28 +# Delete cakephp cache
  29 +sudo rm ../../tmp/cache/models/*
  30 +sudo rm ../../tmp/cache/persistent/*
  31 +
  32 +sudo chmod -R 777 ../../tmp
  33 +sudo chmod -R 777 ../../vendor
  34 +sudo chmod -R 777 ../../webroot
... ...
database/update/script_sql/.gitignore
1 1 /db-update-2016-06-20-build.sql
  2 +/db-update-2016-06-24-build.sql
  3 +/db-update-2016-06-24-2.sql~
  4 +/db-update-2016-06-24-2-build.sql
... ...
database/update/script_sql/db-update-2016-06-24-2.sql 0 → 100755
... ... @@ -0,0 +1,5 @@
  1 +use database;
  2 +
  3 +ALTER TABLE `configurations` ADD `date_commande_facultative` tinyint(1) DEFAULT NULL;
  4 +
  5 +ALTER TABLE `configurations` ADD `numero_labo_sans_annee` tinyint(1) DEFAULT NULL;
... ...
database/update/script_sql/db-update-2016-06-24.sql 0 → 100755
... ... @@ -0,0 +1,3 @@
  1 +use database;
  2 +
  3 +ALTER TABLE `materiels` ADD `hors_service` tinyint(1) DEFAULT NULL;
... ...
install/INSTALLATION.txt
... ... @@ -110,89 +110,135 @@ You can now use your git from the cmd or the graphic client !
110 110  
111 111 *2) Préparation*
112 112  
113   -* Vérifier que vous etes le propriétaire du dossier (il ne doit pas appartenir à "root"), sinon faire :
  113 +* Le dossier "labinvent" peut appartenir à root, mais il est préférable que vous en soyez vous-mêmes (ou un autre user) le propriétaire :
114 114 > sudo chown -R nom_utilisateur LABINVENT
115 115  
116 116 * Placer cette archive à l'endroit voulu, 2 possibilités :
117 117 - (1) soit vous placez cette archive directement dans le repertoire des sites webs du serveur web (par exemple /var/www/html/localhost/public_html/)
118   -- (2) soit vous la placez n'importe où ailleurs (par exemple dans votre repertoire home), et ensuite vous indiquerez au serveur web où trouver ce projet
  118 +- (2) soit vous la placez n'importe où ailleurs (par exemple dans votre repertoire home), et ensuite vous indiquerez au serveur web où trouver ce projet (ou bien vous ferez un lien depuis votre /var/www/html/ vers ce dossier labinvent/)
119 119  
120 120 h2. INSTALLATION
121 121  
122 122 h3. A/ PREREQUIS
123 123  
124   -Sur Windows, avec Wampserver, il n'y a rien à faire.
  124 +Le logiciel nécessite une combinaison "AMP" pour fonctionner, soit les 3 pré-requis suivants :
125 125  
126   -Voici les pré-requis pour Linux (l'exemple est donné ici pour une distribution UBuntu 14.04.4) et Mac OS :
  126 +* un serveur web Apache
  127 +* un serveur de base de données Mysql
  128 +* le langage Php en version 5.5.9 minimum (5.6 recommandé)
127 129  
128   -* Pour Cent OS 6.7, vous pouvez vous aider des liens suivants :
  130 +Si ce tiercé est déjà présent sur votre OS, vous pouvez passer à l'étape suivante (B/ Installation), et revenir ici seulement en cas de problème de configuration.
  131 +
  132 +Sur Windows, vous pouvez utiliser Wampserver ou XAMPP qui regroupent ces 3 éléments (il n'y aura rien d'autre à faire ensuite).
  133 +
  134 +Sur Mac, vous pouvez utiliser XAMPP (ou autre équivalent) ou bien installer chacun des 3 éléments séparément via MacPort.
  135 +
  136 +Sur Linux, voici la démarche à suivre :
  137 +
  138 +h4. *1) Installation des prérequis*
  139 +
  140 +* Exemple pour Cent OS 6.7:
129 141 <pre>
  142 +
  143 +Mettre à jour le serveur:
  144 +$ sudo yum kernel
  145 +(restart)
  146 +$ sudo yum update
  147 +
130 148 Pour installer Apache, MySQL & PHP 5.3 :
131 149 --> https://www.zerostopbits.com/how-to-install-apache-mysql-and-php-on-centos-6-7/
132 150  
133 151 Pour mettre à jour PHP de la 5.3 à la 5.6
134 152 --> https://www.zerostopbits.com/how-to-upgrade-php-5-3-to-php-5-6-on-centos-6-7/
  153 +
  154 +Mettre à jour Mysql (version 5.1 à 5.5):
  155 +$ sudo yum update
  156 +
135 157 </pre>
136 158  
137   -* Pour commencer il faut mettre à jour les "repository" de apt :
138   -> sudo apt-get update && sudo apt-get upgrade
139 159  
140   -* Un serveur web (apache avec le mod_rewrite actif)
141   -> sudo apt-get install apache2
  160 +* Exemple pour une distribution UBuntu 14.04.4:
142 161  
143   -> Editer le fichier /etc/apache2/apache2.conf et mettre le paramêtre "KeepAlive" à "Off" :
144 162 <pre>
145   -KeepAlive Off
  163 +
  164 +Pour commencer il faut mettre à jour les "repository" de apt :
  165 +$ sudo apt-get update && sudo apt-get upgrade
  166 +
  167 +Installer un serveur web (Apache) :
  168 +$ sudo apt-get install apache2
  169 +
  170 +Installer un serveur de base de données (MySQL):
  171 +$ sudo apt-get install mysql-server
  172 +
  173 +Installer le langage PHP en version 5.5.9 minimum (5.6 recommandé)
  174 +$ sudo apt-get install php5 php-pear
  175 +$ sudo apt-get install php5-mysql
  176 +
146 177 </pre>
147   -=> (pas nécessaire sur Mac OS avec Xampp)
148 178  
149   -> Par défaut Apache utilise un "event module" et PHP un "prefork module".
150   -> Il faut désactiver le 1er module et activer le second :
151   -> > sudo a2dismod mpm_event
152   -> > sudo a2enmod mpm_prefork
153   -=> (pas nécessaire sur Mac OS avec Xampp)
  179 +h4. *2) Configuration des prérequis*
154 180  
155   -* Un serveur de base de données (MySQL)
156   -> sudo apt-get install mysql-server
  181 +* *(optionnel) Configuration du serveur web (Apache)*
157 182  
158   -* PHP 5.5.9 ou plus
159   -> sudo apt-get install php5 php-pear
160   -> sudo apt-get install php5-mysql
  183 + * KeepAlive:
  184 +Editer le fichier /etc/apache2/apache2.conf et mettre le paramêtre "KeepAlive" à "Off" :
  185 +<pre>
  186 +KeepAlive Off
  187 +</pre>
161 188  
162   -> Dans le fichier /etc/php5/apache2/php.ini, vous devez positionner votre répertoire de log :
  189 + * event et prefork modules:
  190 +Par défaut Apache utilise un "event module" et PHP un "prefork module".
  191 +Il faut désactiver le 1er module et activer le second :
163 192 <pre>
164   -error_reporting = E_ALL
165   -error_log = /var/log/php/error.log
166   -max_input_time = 30
  193 +sudo a2dismod mpm_event
  194 +sudo a2enmod mpm_prefork
167 195 </pre>
168 196  
169   -> Ensuite il faut créer le dossier en question et donner à apache (ici www-data) les droits sur ce dossier :
170   -> > sudo mkdir /var/log/php
171   -> > sudo chown www-data /var/log/php
172   -=> (pas nécessaire sur Mac OS avec Xampp)
173 197  
174   -* Extension PHP "intl"
175   -Vérifier que cette extension est activée dans le php.ini:
  198 +* *Configuration de Php*
  199 +
  200 + * Extension PHP "intl":
  201 +(Pour savoir quelle configuration est utilisée : php --ini)
  202 +Vérifier qu'elle est activée dans le php.ini
176 203 <pre>
  204 +php --ini|grep intl
  205 +Sinon, l'ajouter dans le php.ini:
177 206 extension=intl.so
178 207 </pre>
179   -
180 208 Vérifier qu'elle est bien installée :
181 209 <pre>
182 210 $ php -m| grep intl
183 211 (ça devrait retourner "intl")
  212 +Sinon, l'installer
  213 +Ubuntu:
  214 +$ sudo apt-get install php5-intl
  215 +CentOS:
  216 +$ sudo yum install php-intl
  217 +MacOS avec XAMPP:
  218 +cf http://stackoverflow.com/questions/27886117/php-intl-installation-on-xampp
  219 +Il se pourrait que vous ayez besoin de ré-exécuter l'installeur de XAMPP afin de cocher l'option "XAMPP Developer Files", si vous ne l'aviez pas déjà fait lors de votre installation de XAMPP
  220 +cd /Applications/XAMPP/bin
  221 +sudo ./pecl install intl
  222 +(Vérifier qu'elle a bien été installée dans /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/)
184 223 </pre>
185 224  
186   -Sinon, l'installer
187   -> sudo apt-get install php5-intl
  225 + * (optionnel) Dossier de log:
  226 +Dans le fichier /etc/php5/apache2/php.ini, vous devez positionner votre répertoire de log :
  227 +<pre>
  228 +error_reporting = E_ALL
  229 +error_log = /var/log/php/error.log
  230 +max_input_time = 30
  231 +</pre>
  232 +Ensuite il faut créer le dossier en question et donner à apache (ici www-data) les droits sur ce dossier :
  233 +<pre>
  234 +sudo mkdir /var/log/php
  235 +sudo chown www-data /var/log/php
  236 +</pre>
188 237  
189   -(Sur MacOS avec XAMPP: cf http://stackoverflow.com/questions/27886117/php-intl-installation-on-xampp)
190   -(Il se pourrait que vous ayez besoin de ré-exécuter l'installeur de XAMPP afin de cocher l'option "XAMPP Developer Files", si vous ne l'aviez pas déjà fait lors de votre installation de XAMPP)
  238 +* *Recharger la configuration du serveur Web*
191 239 <pre>
192   -cd /Applications/XAMPP/bin
193   -sudo ./pecl install intl
  240 +$ sudo service httpd reload
194 241 </pre>
195   -(Vérifier qu'elle a bien été installée dans /Applications/XAMPP/xamppfiles/lib/php/extensions/no-debug-non-zts-20131226/)
196 242  
197 243 h3. B/ INSTALLATION
198 244  
... ... @@ -370,24 +416,33 @@ Attention, il faut les exécuter *dans l&#39;ordre chronologique*, un par un
370 416  
371 417 Exemple:
372 418 <pre>
373   -mysql -u login -p labinvent2 < db-update-2016-06-03.sql
  419 +Placez vous dans ./database/update et éxécutez les commandes correspondantes :
  420 +
  421 +./db-update-2016-06-03.sh
374 422  
375   -mysql -u login -p labinvent2 < db-update-2016-06-06.sql
  423 +./db-update-2016-06-06.sh
376 424  
377   -mysql -u login -p labinvent2 < db-update-2016-06-07.sql
  425 +./db-update-2016-06-07.sh
378 426 </pre>
379 427  
380   -_Remplacer 'login' par le 'username' défini dans votre fichier config/app.php dans la section Datasources (default)_
381   -_Remplacer 'labinvent2' par le 'database' défini au même endroit_
382 428  
  429 +3) [Seulement si nécessaire] Ré-exécuter le script d'installation
383 430  
  431 +4) [Seulement si étape 3 non effectué et si nécessaire] Exécuter le script de mise à jour du fichier de configuration (app.php)
  432 +<pre>
  433 +Placez vous dans ./install et entrez la ligne suivante :
384 434  
  435 +./update-app-php.sh
  436 +</pre>
385 437  
386   -3) [Seulement si nécessaire] Ré-exécuter le script d'installation
387 438  
388 439 cd install/
389 440 ./install.sh
390 441  
  442 +Remarques :
  443 +* Le fichier README-LABINVENT.md contient la liste des mise à jour de la base.
  444 +* Le fichier contient également une liste des versions ou il faut exécuter le script d'installation et dans quel mode (n'éxécutez qu'une fois le script, si votre version était antérieur).
  445 +
391 446 ---
392 447  
393 448 h2. MODE PANIQUE
... ... @@ -395,9 +450,13 @@ h2. MODE PANIQUE
395 450 Vous avez changé la configuration du LDAP et elle ne fonctionne plus !
396 451 Du coup, vous ne pouvez plus vous connecter au site !
397 452 Il faut donc repasser le logiciel en mode INSTALL pour pouvoir y accéder sans connexion.
398   -Pour cela, exécuter la requête sql suivante sur la base de données:
399   -
  453 +Pour cela, exécuter la requête sql database/set_mode_install.sql sur la base de données:
400 454  
401 455 <pre>
402   -UPDATE configurations SET mode_install=1;
403   -</pre>
404 456 \ No newline at end of file
  457 +mysql -u login -p labinvent2 < set_mode_install.sql
  458 +</pre>
  459 +
  460 +_Remplacer 'login' par le 'username' défini dans votre fichier config/app.php dans la section Datasources (default)_
  461 +_Remplacer 'labinvent2' par le 'database' défini au même endroit_
  462 +
  463 +(ou bien exécuter cette requête depuis phpmyadmin)
405 464 \ No newline at end of file
... ...
install/installation.sh
1 1 #!/bin/bash
2 2  
  3 +git config core.fileMode false
  4 +
3 5 # Pour Mac OS recent (10.10, Yosemite), la syntaxe du SED est differente
4 6 # Il faut donc faire une copie de ce fichier et transformer les instructions sed a l'interieur
5 7 # Pour cela, il suffit d'executer ces 2 lignes :
... ... @@ -24,8 +26,8 @@ cd ../
24 26 #Configurer l'application
25 27 # Donner le nom du groupe webService
26 28 echo
27   -echo "LabInvent Copyright (C) 2012-2016 IRAP (Toulouse - France)"
28   -echo "Auteurs : Etienne Pallier <etienne.pallier@irap.omp.eu>, Elodie Bourrec <elodie.bourrec@irap.omp.eu>"
  29 +echo "LabInvent Copyright (C) 2012-2017 IRAP (Toulouse - France)"
  30 +echo "Auteurs : Etienne Pallier <etienne.pallier@irap.omp.eu>, Elodie Bourrec <elodie.bourrec@irap.omp.eu>, Alexandre Cases <alexandre.cases@etu.univ-tlse2.fr>"
29 31 echo "Licence GPL (http://www.gnu.org/copyleft/gpl.html)"
30 32 echo "Ce logiciel est mis a disposition tel quel, SANS AUCUNE GARANTIE."
31 33 echo "C'est un logiciel libre, et vous pouvez le redistribuer sous certaines conditions."
... ... @@ -43,7 +45,7 @@ echo &quot;ok&quot;
43 45 echo
44 46  
45 47 while : ; do
46   - echo "Donner le nom du GROUPE du serveur web (ex: www, apache (cent os 6.7), nobody (mac), admin, www-data (ubuntu 14.04), ...)"
  48 + echo "Donner le nom du GROUPE du serveur web (ex: apache (centOs), www-data (Ubuntu), daemon (MacOS avec XAMPP), nobody (MacOS), admin, ...)"
47 49 read grp
48 50 [[ -n "$grp" ]] && break
49 51 done
... ... @@ -124,6 +126,7 @@ sudo chgrp -R $grp ./vendor/phpqrcode/
124 126 # Normalement, il faudrait ecrire dans app/tmp et pas dans app/webroot
125 127 # EP 2014/12/11 chmod 775 ne suffit pas
126 128 #chmod -R 775 ./webroot/img/
  129 +#sudo chmod -R 770 ./webroot/img/
127 130 sudo chmod -R 777 ./webroot/img/
128 131 #sudo chown -R $grp:$grp ./webroot/img/
129 132 sudo chgrp -R $grp ./webroot/img/
... ... @@ -149,6 +152,7 @@ sudo chgrp -R $grp ./tmp/
149 152 chmod -R 777 ./logs/
150 153 sudo chgrp -R $grp ./logs/
151 154 #Il semble qu'il manque des droits au dossier Vendor, droit trop général à réduire (identifié les composants qui ont besoin de s'éxécuter ou de se lire, pas d'écriture dans le dossier Vendor normalement...)
  155 +#sudo chmod -R 770 ./vendor/
152 156 sudo chmod -R 777 ./vendor/
153 157 echo "==>Done"
154 158  
... ... @@ -162,13 +166,13 @@ configFile=$configPath/app.php
162 166  
163 167  
164 168 # Mode install or update
165   -echo "Voulez-vous effectuer une premiere installation ou une mise à niveau, install/update ? (par défaut, update) :"
  169 +echo "Voulez-vous effectuer une premiere installation ou une mise à niveau ? ('install'/'update', par défaut 'install') :"
166 170 read rep
167 171 if [ -z $rep ] ; then
168   - rep="update"
  172 + rep="install"
169 173 fi
170 174  
171   -if [ $rep = "install" ] ; then
  175 +if [ $rep == "install" ] ; then
172 176 mode="install"
173 177 echo "Utilisation mode install"
174 178 else
... ... @@ -179,7 +183,7 @@ fi
179 183  
180 184 # Copy sample GENERAL config file to real personal file (make a copy first if already exists !)
181 185 [[ -f $myConfigFile ]] && cp -p $myConfigFile $myConfigFile.ORIG
182   -if [ $mode = "install" ] ; then
  186 +if [ $mode == "install" ] ; then
183 187 cp $configPath/app.default.php $myConfigFile
184 188 fi
185 189  
... ... @@ -204,7 +208,7 @@ echo &quot;Entrez le mot de passe de ce login privilegie (sinon, entrer le mot de pas
204 208 read -s bddAdminPass
205 209 echo
206 210  
207   -if [ $mode = 'install' ] ; then
  211 +if [ $mode == 'install' ] ; then
208 212 echo
209 213 echo "Informations sur la base de donnee "
210 214 echo "Voulez-vous creer la base de donnees, Oui/Non ? (par defaut, Non) :"
... ... @@ -212,7 +216,7 @@ if [ $mode = &#39;install&#39; ] ; then
212 216 if [ -z $rep ] ; then
213 217 rep="Non"
214 218 fi
215   - if [ $rep = "O" ] || [ $rep = "o" ] || [ $rep = "Oui" ] || [ $rep = "oui" ] || [ $rep = "OUI" ]; then
  219 + if [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
216 220 BDD="Oui"
217 221 echo "Creation de la base de donnees"
218 222 else
... ... @@ -224,7 +228,7 @@ else
224 228 fi
225 229  
226 230  
227   -if [ $BDD = "Oui" ] ; then
  231 +if [ $BDD == "Oui" ] ; then
228 232 echo "Entrez le nom de la base a utiliser pour l'inventaire (defaut=labinvent)"
229 233 read bddName
230 234 if [ -z $bddName ] ; then
... ... @@ -259,7 +263,7 @@ cd database/
259 263 echo "Creation script de construction."
260 264 [[ -f build.sql ]] && cp -p build.sql build.sql.ORIG
261 265  
262   -if [ $BDD = "Oui" ] ; then
  266 +if [ $BDD == "Oui" ] ; then
263 267 #Structure de la base présente dans le fichier "labinvent_2.1_12-05-16.sql"
264 268 cat ./labinvent_2.1_12-05-16.sql > ./build.sql
265 269  
... ... @@ -271,7 +275,7 @@ if [ $BDD = &quot;Oui&quot; ] ; then
271 275 if [ $INSTALL_DATA_IRAP -eq 1 ] ; then
272 276 echo "Voulez-vous installer les donnees propres a l'IRAP (categories, groupes metiers, groupes thematiques) dans la base de donnees, Oui/Non ? (reponse par defaut Oui) :"
273 277 read rep
274   - if [ -z $rep ] || [ $rep = "O" ] || [ $rep = "o" ] || [ $rep = "Oui" ] || [ $rep = "oui" ] || [ $rep = "OUI" ]; then
  278 + if [ -z $rep ] || [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
275 279 echo "Installation des donnees IRAP dans la base de donnees"
276 280 cat ./Insert_TablesFunct.sql >> ./build.sql
277 281 else
... ... @@ -299,7 +303,7 @@ if [ $BDD = &quot;Oui&quot; ] ; then
299 303  
300 304 echo "Voulez-vous installer quelques utilisateurs supplementaires dans la base de donnees (vous pourrez ensuite changer leur nom dans l'application, ou meme les supprimer ; par defaut, Oui): Oui/Non ?"
301 305 read rep
302   - if [ -z $rep ] || [ $rep = "O" ] || [ $rep = "o" ] || [ $rep = "Oui" ] || [ $rep = "oui" ] || [ $rep = "OUI" ]; then
  306 + if [ -z $rep ] || [ $rep == "O" ] || [ $rep == "o" ] || [ $rep == "Oui" ] || [ $rep == "oui" ] || [ $rep == "OUI" ]; then
303 307 echo "Ajout de quelques utilisateurs supplementaires dans la base (Mot de passe par défaut : login)"
304 308 cat ./Insert_FakeUsers.sql >> ./build.sql
305 309 fi
... ... @@ -321,30 +325,28 @@ echo
321 325 echo "*** FIN DE L'INSTALLATION ***"
322 326 echo
323 327  
324   -if [ $mode = 'install' ] ; then
  328 +if [ $mode == 'install' ] ; then
325 329 echo "Si vous voulez le conserver, le script de creation de la BD est database/build.sql"
326 330 echo "Le fichier de configuration app.php a été écrasé, vous pouvez retrouver votre ancienne configuration dans le fichier app.php.ORIG."
327 331 echo
328 332 echo "MAINTENANT :"
329 333 echo "1) Verifiez que la BD d'inventaire ($bddName) a bien ete cree (avec phpmyadmin par exemple)"
330 334 echo "2) Verifiez que les tests passent, placez vous à la racine du projet, exécutez la commande 'vendor/bin/phpunit'."
331   - echo "3) Allez sur l'application, vous devriez arriver par défaut sur un mode install vous donnant des informations sur la configuration de votre application, vérifiez que tout les points soit validé, sinon rajouter les extensions manquantes..."
  335 + echo "3) Allez sur l'application, vous devriez arriver par défaut sur un mode install vous donnant des informations sur la configuration de votre application, vérifiez que tous les points sont bien validés (verts), sinon rajouter les extensions manquantes..."
332 336 echo "4) Testez l'accès à l'application par le web"
333 337 else
334 338 echo
335 339 echo "MAINTENANT :"
336 340 echo "1) Verifiez que les tests passent, placez vous à la racine du projet, exécutez la commande 'vendor/bin/phpunit'."
337   - echo "2) Allez sur l'application, vous devriez arriver par défaut sur un mode install vous donnant des informations sur la configuration de votre application, vérifiez que tout les points soit validé, sinon rajouter les extensions manquantes..."
  341 + echo "2) Allez sur l'application, vous devriez arriver par défaut sur un mode install vous donnant des informations sur la configuration de votre application, vérifiez que tous les points sont bien validés (verts), sinon rajouter les extensions manquantes..."
338 342 echo "3) Testez l'accès à l'application par le web"
339 343 fi
340 344  
341   -echo "Pour aller sur l'application, suivez la suite des instructions qui sont dans le fichier INSTALLATION.txt (à la racine du projet), que vous avez normalement deja commence a lire."
  345 +echo "Pour aller sur l'application, suivez la suite des instructions qui sont dans le fichier INSTALLATION.txt (à la racine du projet), que vous avez normalement deja commence a lire (ou bien sur le web (https://projects.irap.omp.eu/projects/inventirap/wiki/Installation)"
342 346 echo
343   -echo "N'oubliez pas 3 choses importantes (voir la doc INSTALLATION.txt pour plus de details) :"
  347 +echo "N'oubliez pas 3 choses importantes :"
344 348 echo "1) Personnaliser les 2 fichiers logos suivants dans webroot/img/ :"
345 349 echo "- logo_entity.jpg : le logo du laboratoire"
346 350 echo "- logo_software.jpg : le logo du logiciel"
347 351 echo "2) Personnaliser le logiciel pour votre entité (laboratoire) (via le menu de configuration dans la section outils de l\'application)"
348 352 echo "3) Passer en mode LDAP (via le menu de configuration dans la section outils de l\'application)"
349   -
350   -
... ...
src/Controller/AppController.php
... ... @@ -80,7 +80,7 @@ class AppController extends Controller
80 80 if($role == 'Super Administrateur') return true;
81 81  
82 82 //Pour tout le monde
83   - if (in_array($action, ['index', 'find', 'view', 'creer', 'add', 'getNextDate'])) return true;
  83 + if (in_array($action, ['index', 'find', 'view', 'creer', 'add', 'getNextDate', 'getDateGarantie'])) return true;
84 84  
85 85  
86 86 // Par défaut refuser
... ...
src/Controller/MaterielsController.php
... ... @@ -170,7 +170,18 @@ class MaterielsController extends AppController
170 170 $this->set('STATUS', $this->passedArgs[0]);
171 171 }
172 172  
173   - if(!(in_array($this->role, ['Administration', 'Administration Plus', 'Super Administrateur']))) {
  173 + $GM = $this->request->query('GM');
  174 + if(isset($GM)) {
  175 + $condition = ['Materiels.groupes_metier_id =' => $this->request->query('GM'), 'Materiels.status !=' => 'ARCHIVED'];
  176 + }
  177 +
  178 + $GMV = $this->request->query('GMV');
  179 + if(isset($GMV)) {
  180 + $condition = ['Materiels.groupes_metier_id =' => $this->request->query('GMV'), 'Materiels.status =' => 'CREATED', 'Materiels.status !=' => 'ARCHIVED'];
  181 + }
  182 +
  183 +
  184 + if($this->role == 'Utilisateur') {
174 185 $condition = ['Materiels.status !=' => 'ARCHIVED'];
175 186 }
176 187  
... ... @@ -363,6 +374,13 @@ class MaterielsController extends AppController
363 374 $materiel->set('date_archivage', date('Y-m-d'));
364 375 }
365 376  
  377 + if($newStatus == 'VALIDATED') {
  378 + if(!isset($materiel->nom_responsable) || !isset($materiel->fournisseur) || !isset($materiel->numero_commande) || !isset($materiel->organisme_id) || !isset($materiel->date_reception) || !isset($materiel->prix_ht)) {
  379 + $this->Flash->success('Pour valider un matériel, les champs suivants ne doivent pas être vide : Nom propriétaire, Fournisseur, Numéro de commande, Organisme, prix et date de reception');
  380 + return $this->redirect(['action' => 'edit', $id]);
  381 + }
  382 + }
  383 +
366 384 if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) {
367 385 $this->Flash->success(__($message));
368 386 $this->sendEmailToManagement($id);
... ...
src/Controller/SuivisController.php
... ... @@ -58,12 +58,19 @@ class SuivisController extends AppController
58 58 */
59 59 public function index()
60 60 {
  61 + $condition = '';
  62 +
  63 + $GM = $this->request->query('GM');
  64 + if(isset($GM)) {
  65 + $condition = ['Suivis.groupes_metier_id =' => $this->request->query('GM')];
  66 + }
  67 +
61 68 $this->paginate = [
62 69 'contain' => ['Materiels', 'TypeSuivis']
63 70 ];
64   - $suivis = $this->paginate($this->Suivis);
  71 + $suivis = $this->paginate($this->Suivis->find('all', ['conditions' => $condition]));
65 72  
66   - $this->set('nbSuivis', $this->Suivis->find('all')->count());
  73 + $this->set('nbSuivis', $this->Suivis->find('all', ['conditions' => $condition])->count());
67 74  
68 75 $this->set(compact('suivis'));
69 76 $this->set('_serialize', ['suivis']);
... ...
src/Model/Entity/Configuration.php
... ... @@ -36,6 +36,8 @@ use Cake\ORM\Entity;
36 36 * @property string $emailGuest9
37 37 * @property string $emailGuest10
38 38 * @property bool $test
  39 + * @property bool $date_commande_facultative
  40 + * @property bool $numero_labo_sans_annee
39 41 * @property int $prix_inventaire_administratif
40 42 */
41 43 class Configuration extends Entity
... ...
src/Model/Entity/Materiel.php
... ... @@ -48,6 +48,7 @@ use Cake\ORM\Entity;
48 48 * @property int $organisme_id
49 49 * @property \App\Model\Entity\Organisme $organisme
50 50 * @property int $site_id
  51 + * @property bool $hors_service
51 52 * @property \App\Model\Entity\Site $site
52 53 * @property \App\Model\Entity\Document[] $documents
53 54 * @property \App\Model\Entity\Emprunt[] $emprunts
... ...
src/Model/Table/ConfigurationsTable.php
... ... @@ -137,6 +137,12 @@ class ConfigurationsTable extends AppTable
137 137  
138 138 $validator
139 139 ->allowEmpty('prix_inventaire_administratif');
  140 +
  141 + $validator
  142 + ->allowEmpty('date_commande_facultative');
  143 +
  144 + $validator
  145 + ->allowEmpty('numero_labo_sans_annee');
140 146  
141 147 return $validator;
142 148 }
... ...
src/Model/Table/MaterielsTable.php
... ... @@ -117,8 +117,16 @@ class MaterielsTable extends AppTable
117 117 $validator
118 118 ->add('status', 'valid', ['rule' => 'checkStatus', 'message' => 'Le statut doit prendre une des 4 valeurs CREATED, VALIDATED, TOBEARCHIVED, ou ARCHIVED', 'provider' => 'table']);
119 119  
120   - $validator
121   - ->notEmpty('date_acquisition', 'Ce champ doit être rempli');
  120 + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
  121 + if($configuration->date_commande_facultative) {
  122 + $validator
  123 + ->allowEmpty('date_acquisition');
  124 + }
  125 + else {
  126 + $validator
  127 + ->notEmpty('date_acquisition', 'Ce champ doit être rempli');
  128 + }
  129 +
122 130  
123 131 $validator
124 132 ->allowEmpty('fournisseur')
... ... @@ -161,6 +169,11 @@ class MaterielsTable extends AppTable
161 169 ->allowEmpty('etiquette');
162 170  
163 171 $validator
  172 + ->boolean('hors_service')
  173 + ->allowEmpty('hors_service');
  174 +
  175 +
  176 + $validator
164 177 ->notEmpty('site_id', 'Ce champ doit être rempli');
165 178  
166 179 $validator
... ... @@ -267,20 +280,44 @@ class MaterielsTable extends AppTable
267 280 }
268 281  
269 282 // numero_laboratoire generator (QC changed this in Jan 2015)
270   - if (empty($entity->get('numero_laboratoire')) && !empty($entity->get('date_acquisition'))) {
271   - $year = substr($entity->get('date_acquisition'), 6, 4);
272   - $labShortName = TableRegistry::get('Configurations')->find()->first()->labNameShort;
  283 + $configuration = TableRegistry::get('Configurations')->find()->where(['id =' => 1])->first();
  284 + if($configuration->numero_labo_sans_annee) {
  285 + if (empty($entity->get('numero_laboratoire'))) {
273 286  
274   - $num = TableRegistry::get('Materiels')->find('all', [
275   - 'fields' => ['numero_laboratoire'],
276   - 'conditions' => ['Materiels.numero_laboratoire LIKE' => $labShortName.'-'.$year.'%'],
277   - 'order' => ['Materiels.numero_laboratoire DESC']
278   - ])->first()['numero_laboratoire'];
  287 + $labShortName = $configuration->labNameShort;
  288 +
  289 + $num = TableRegistry::get('Materiels')->find('all', [
  290 + 'fields' => ['numero_laboratoire'],
  291 + 'conditions' => ['Materiels.numero_laboratoire LIKE' => $labShortName.'%'],
  292 + 'order' => ['Materiels.numero_laboratoire DESC']
  293 + ])->first()['numero_laboratoire'];
  294 +
  295 + error_log($num);
  296 +
  297 + $newId = substr($num, -4)+1;
  298 + error_log($newId);
  299 + $labNumber = $labShortName.'-'.sprintf("%04d", $newId);
  300 +
  301 + $entity->set('numero_laboratoire', $labNumber);
  302 + }
  303 + }
  304 + else {
  305 + if (empty($entity->get('numero_laboratoire')) && !empty($entity->get('date_acquisition'))) {
  306 + $year = substr($entity->get('date_acquisition'), 6, 4);
  307 + $labShortName = $configuration->labNameShort;
  308 +
  309 + $num = TableRegistry::get('Materiels')->find('all', [
  310 + 'fields' => ['numero_laboratoire'],
  311 + 'conditions' => ['Materiels.numero_laboratoire LIKE' => $labShortName.'-'.$year.'%'],
  312 + 'order' => ['Materiels.numero_laboratoire DESC']
  313 + ])->first()['numero_laboratoire'];
  314 +
  315 + $newId = substr($num, -4)+1;
279 316  
280   - $newId = substr($num, -4)+1;
281   - $labNumber = $labShortName.'-'.$year.'-'.sprintf("%04d", $newId);
  317 + $labNumber = $labShortName.'-'.$year.'-'.sprintf("%04d", $newId);
282 318  
283   - $entity->set('numero_laboratoire', $labNumber);
  319 + $entity->set('numero_laboratoire', $labNumber);
  320 + }
284 321 }
285 322  
286 323  
... ...
src/Template/Configurations/edit.ctp
... ... @@ -36,6 +36,9 @@
36 36 echo $this->Form->input('emailGuest9', ['label' => 'Mail guest 9']);
37 37 echo $this->Form->input('emailGuest10', ['label' => 'Mail guest 10']);
38 38  
  39 + echo $this->Form->input('numero_labo_sans_annee', ['label' => 'Numero labo sans année']);
  40 + echo $this->Form->input('date_commande_facultative', ['label' => 'Champ date commande non obligatoire']);
  41 +
39 42 echo $this->Form->input('use_ldap', ['label' => 'Utilisation du LDAP', 'onchange' => 'display_ldap();']);
40 43 echo '<div id="ldap" style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE; '.$disp.'">';
41 44 echo $this->Form->input('host_ldap', ['label' => 'Host du LDAP']);
... ...
src/Template/Configurations/view.ctp
... ... @@ -41,6 +41,16 @@
41 41 $local="Oui";
42 42 }
43 43  
  44 + if(h($configurationObj->numero_labo_sans_annee) == 1) {
  45 + $numLab="Oui";
  46 + }else {
  47 + $numLab="Non";
  48 + }
  49 + if(h($configurationObj->date_commande_facultative) == 1) {
  50 + $dateObl="Oui";
  51 + }else {
  52 + $dateObl="Non";
  53 + }
44 54  
45 55  
46 56 $displayElement(__('Nom complet du Labo'), h($configurationObj->labName));
... ... @@ -66,6 +76,9 @@
66 76 $displayElement(__('Mail guest 9'), h($configurationObj->emailGuest9));
67 77 $displayElement(__('Mail guest 10'), h($configurationObj->emailGuest10));
68 78  
  79 + $displayElement(__('Numero labo sans année'), $numLab);
  80 + $displayElement(__('Champ date commande non obligatoire'), $dateObl);
  81 +
69 82 $displayElement(__('Utilisation du LDAP'), $ldap);
70 83  
71 84 if ($configuration->use_ldap):
... ...
src/Template/Layout/default.ctp
... ... @@ -94,7 +94,7 @@ $cakeDescription = &#39;Labinvent 2&#39;;
94 94 </i></td>
95 95 <td id="version">
96 96 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
97   - <font color="black">VERSION 2.4.6.9 (23/06/2016)</font>
  97 + <font color="black">VERSION 2.4.7.2 (24/06/2016)</font>
98 98 </td>
99 99 </tr>
100 100 </table>
... ...
src/Template/Materiels/add.ctp
... ... @@ -136,7 +136,7 @@ else {
136 136 echo $this->Form->input('organisme_id', ['options' => $organismes, 'style' => 'width: 380px', 'empty' => 'Choisir un organisme', 'default' => $Organisme_id]);
137 137 echo $this->Form->input('prix_ht', ['label' => 'Prix HT (€)', 'default' => $Prix_ht]);
138 138  
139   - if(in_array($role, ['Administration', 'Administration Plus'])) {
  139 + if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {
140 140 echo '<div style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE;"><span style="font-size: 9px; color: red;">Partie administrative</span>';
141 141 echo $this->Form->input('eotp', ['label' => 'Centre financier/EOTP']);
142 142 echo $this->Form->input('numero_commande', ['label' => 'Numéro de commande']);
... ...
src/Template/Materiels/edit.ctp
... ... @@ -21,6 +21,7 @@ if ($IS_VALIDATED)
21 21 'materiel_technique',
22 22 'site_id',
23 23 'date_acquisition',
  24 + 'date_reception',
24 25 'organisme_id',
25 26 'prix_ht'
26 27 ),
... ... @@ -48,6 +49,10 @@ if ($IS_VALIDATED)
48 49  
49 50 ]);
50 51  
  52 + if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']) || ($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) {
  53 + echo $this->Form->input('hors_service', ['label' => 'Appareil hors_service']);
  54 + }
  55 +
51 56 echo $this->Form->input('sur_categorie_id', [
52 57 'label' => 'Domaine',
53 58 'options' => $surCategories,
... ... @@ -228,7 +233,7 @@ if ($IS_VALIDATED)
228 233 'disabled' => $isReadonlyField('prix_ht', $myReadonlyFields)
229 234 ]);
230 235  
231   - if(in_array($role, ['Administration', 'Administration Plus'])) {
  236 + if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {
232 237 echo '<div style="border-top: 1px solid #CCC; border-bottom: 1px solid #CCC; margin-bottom: 0; background: #EEE;"><span style="font-size: 9px; color: red;">Partie administrative</span>';
233 238  
234 239 echo $this->Form->input('adminEdit', [
... ...
src/Template/Materiels/view.ctp
... ... @@ -2,8 +2,14 @@
2 2 <div class="materiels view">
3 3  
4 4 <h2>
5   - <?php if (h($materiel->status) == 'ARCHIVED') echo '<i class="icon-inbox"></i> '; ?>
6   - <?= h($materiel->designation) ?>
  5 + <?php if (h($materiel->status) == 'ARCHIVED') echo '<i class="icon-inbox"></i> ';
  6 + $panne = '';
  7 + if(h($materiel->hors_service)) {
  8 + $panne = ' (HORS SERVICE)';
  9 + }
  10 + ?>
  11 +
  12 + <?= h($materiel->designation).$panne?>
7 13 <span style="font-size: 70%; color: grey;">
8 14 <?= h($materiel->numero_laboratoire) ?>
9 15 <?php if (h($materiel->status) == 'ARCHIVED') echo ' (Archivé)'; ?>
... ... @@ -202,7 +208,9 @@
202 208 $displayElement(__('Date d\'achat'), h($materiel->date_acquisition));
203 209  
204 210 $displayElement(__('Date de reception'), h($materiel->date_reception));
205   - $displayElement(__('Duree garantie'), h($materiel->duree_garantie).' '.h($materiel->unite_duree_garantie));
  211 + if(!empty(h($materiel->duree_garntie))) {
  212 + $displayElement(__('Duree garantie'), h($materiel->duree_garantie).' '.h($materiel->unite_duree_garantie));
  213 + }
206 214 $displayElement(__('Date fin de garantie'), h($materiel->date_fin_garantie));
207 215  
208 216 $displayElement(__('Statut'), h($materiel->status));
... ... @@ -232,7 +240,7 @@
232 240  
233 241 <?php
234 242 //Partie admin
235   - if(in_array($role, ['Administration', 'Administration Plus'])) {
  243 + if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) {
236 244 echo '<h3 id="t_informations_admin" style="cursor: pointer;">';
237 245 echo '<i class="icon-chevron-down" style="font-size: 14px;" id="i_informations_admin"></i>';
238 246 echo '<span style="text-decoration: underline;">Informations administratives</span>';
... ...
src/Template/Pages/acls.ctp
1   -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--><head profile="http://dublincore.org/documents/dcmi-terms/"><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/><title xml:lang="en-US">- no title specified</title><meta name="DCTERMS.title" content="" xml:lang="en-US"/><meta name="DCTERMS.language" content="en-US" scheme="DCTERMS.RFC4646"/><meta name="DCTERMS.source" content="http://xml.openoffice.org/odf2xhtml"/><meta name="DCTERMS.creator" content="Etienne Pallier"/><meta name="DCTERMS.issued" content="2014-01-21T19:49:00" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.modified" content="2016-06-06T15:49:21.807014772" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.provenance" content="" xml:lang="en-US"/><meta name="DCTERMS.subject" content="," xml:lang="en-US"/><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en"/><link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en"/><link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en"/><link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en"/><style type="text/css">
  1 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--><head profile="http://dublincore.org/documents/dcmi-terms/"><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/><title xml:lang="en-US">- no title specified</title><meta name="DCTERMS.title" content="" xml:lang="en-US"/><meta name="DCTERMS.language" content="en-US" scheme="DCTERMS.RFC4646"/><meta name="DCTERMS.source" content="http://xml.openoffice.org/odf2xhtml"/><meta name="DCTERMS.creator" content="Etienne Pallier"/><meta name="DCTERMS.issued" content="2014-01-21T19:49:00" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.modified" content="2016-06-24T15:39:15.489669761" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.provenance" content="" xml:lang="en-US"/><meta name="DCTERMS.subject" content="," xml:lang="en-US"/><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en"/><link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en"/><link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en"/><link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en"/><style type="text/css">
2 2 @page { }
3 3 table { border-collapse:collapse; border-spacing:0; empty-cells:show }
4 4 td, th { vertical-align:top; font-size:12pt;}
... ... @@ -10,105 +10,100 @@
10 10 span.footnodeNumber { padding-right:1em; }
11 11 span.annotation_style_by_filter { font-size:95%; font-family:Arial; background-color:#fff000; margin:0; border:0; padding:0; }
12 12 * { margin:0;}
13   - .P1 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
14   - .P10 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
15   - .P11 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  13 + .P1 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
  14 + .P10 { font-size:10pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; }
  15 + .P11 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; }
16 16 .P12 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
17 17 .P13 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
18   - .P14 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
19   - .P15 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
20   - .P16 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
21   - .P17 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
22   - .P18 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; }
23   - .P19 { font-size:10pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; }
  18 + .P14 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  19 + .P15 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  20 + .P16 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  21 + .P17 { font-size:12pt; font-family:Times; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  22 + .P18 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  23 + .P19 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
24 24 .P2 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
25   - .P20 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
26   - .P21 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
27   - .P22 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
28   - .P23 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
29   - .P24 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
30   - .P25 { font-size:12pt; font-family:Times; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
31   - .P26 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
32   - .P27 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
33   - .P28 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
34   - .P29 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  25 + .P22 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  26 + .P23 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  27 + .P25 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  28 + .P26 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  29 + .P28 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
  30 + .P29 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
35 31 .P3 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
36   - .P30 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
37   - .P31 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
38   - .P32 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; }
39   - .P33 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
  32 + .P30 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
  33 + .P31 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; }
  34 + .P33 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; }
40 35 .P34 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; }
41   - .P35 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; }
  36 + .P35 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
42 37 .P36 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
43   - .P4 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
  38 + .P37 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  39 + .P38 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  40 + .P39 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  41 + .P4 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  42 + .P40 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  43 + .P41 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
  44 + .P42 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  45 + .P43 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; }
  46 + .P44 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  47 + .P45 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; }
  48 + .P46 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  49 + .P47 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  50 + .P48 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
  51 + .P49 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
44 52 .P5 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  53 + .P51 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  54 + .P52 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  55 + .P53 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  56 + .P54 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  57 + .P55 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  58 + .P56 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  59 + .P57 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  60 + .P58 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  61 + .P59 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
45 62 .P6 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
46   - .P7 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
47   - .P8 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
48   - .P9 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  63 + .P62 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  64 + .P68 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  65 + .P7 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
  66 + .P8 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; }
  67 + .P9 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; }
49 68 .Standard { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
50 69 .Table_20_Contents { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
51   - .Tableau1 { width:26.522cm; margin-left:-0.093cm; margin-right:auto;writing-mode:lr-tb; }
52   - .Tableau1_A1 { vertical-align:top; background-color:#cccccc; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0,0035cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
53   - .Tableau1_A2 { vertical-align:top; background-color:#e6e6e6; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
54   - .Tableau1_B2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
55   - .Tableau1_B3 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
56   - .Tableau1_B4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
57   - .Tableau1_B5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
58   - .Tableau1_B6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
59   - .Tableau1_B7 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
60   - .Tableau1_C2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
61   - .Tableau1_C3 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
62   - .Tableau1_C4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
63   - .Tableau1_D2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
64   - .Tableau1_D3 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
65   - .Tableau1_D6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
66   - .Tableau1_E2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
67   - .Tableau1_E4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
68   - .Tableau1_E5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
69   - .Tableau1_E6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
70   - .Tableau1_F2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
71   - .Tableau1_F3 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
72   - .Tableau1_F4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
73   - .Tableau1_G2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
74   - .Tableau1_G4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
75   - .Tableau1_H2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
76   - .Tableau1_H4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
77   - .Tableau1_H5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
78   - .Tableau1_I2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
79   - .Tableau1_I5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
80   - .Tableau1_I6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
81   - .Tableau1_J2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
82   - .Tableau1_J4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
83   - .Tableau1_J6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
84   - .Tableau1_K2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
85   - .Tableau1_K4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
86   - .Tableau1_K5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
87   - .Tableau1_L1 { vertical-align:top; background-color:#cccccc; padding:0.097cm; border-width:0,0035cm; border-style:solid; border-color:#000000; writing-mode:lr-tb; }
88   - .Tableau1_L2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
89   - .Tableau1_L5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
90   - .Tableau1_A { width:1.937cm; }
91   - .Tableau1_B { width:2.318cm; }
92   - .Tableau1_C { width:2.544cm; }
93   - .Tableau1_D { width:2.828cm; }
94   - .Tableau1_E { width:1.836cm; }
95   - .Tableau1_F { width:1.734cm; }
96   - .Tableau1_G { width:2.066cm; }
97   - .Tableau1_H { width:2.766cm; }
98   - .Tableau1_I { width:2.748cm; }
99   - .Tableau1_J { width:1.466cm; }
100   - .Tableau1_K { width:1.487cm; }
101   - .Tableau1_L { width:2.794cm; }
102   - .T1 { font-style:italic; }
103   - .T11 { font-size:9pt; font-style:italic; }
104   - .T12 { font-size:9pt; font-style:italic; font-weight:bold; }
105   - .T13 { font-size:9pt; font-weight:bold; }
106   - .T14 { font-size:9pt; }
107   - .T15 { font-size:9pt; }
108   - .T2 { font-style:italic; font-weight:bold; }
  70 + .Tableau2 { width:27.25cm; float:none; writing-mode:lr-tb; }
  71 + .Tableau2_A1 { background-color:#cccccc; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:thin; border-top-style:solid; border-top-color:#000000; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  72 + .Tableau2_A2 { background-color:#dddddd; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  73 + .Tableau2_C12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  74 + .Tableau2_C13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  75 + .Tableau2_C5 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  76 + .Tableau2_D12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  77 + .Tableau2_D13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  78 + .Tableau2_D4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  79 + .Tableau2_D9 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  80 + .Tableau2_E10 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  81 + .Tableau2_E11 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  82 + .Tableau2_E12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  83 + .Tableau2_E13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  84 + .Tableau2_E4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  85 + .Tableau2_E7 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  86 + .Tableau2_F12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  87 + .Tableau2_F13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  88 + .Tableau2_F3 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  89 + .Tableau2_F8 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  90 + .Tableau2_G1 { background-color:#cccccc; padding:0.097cm; border-width:thin; border-style:solid; border-color:#000000; }
  91 + .Tableau2_G12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  92 + .Tableau2_G13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  93 + .Tableau2_A { width:3.893cm; }
  94 + .Tableau2_G { width:3.893cm; }
  95 + .T1 { font-style:italic; font-weight:bold; }
  96 + .T13 { font-size:9pt; font-style:italic; }
  97 + .T14 { font-size:9pt; font-style:italic; font-weight:bold; }
  98 + .T15 { font-size:9pt; font-weight:bold; }
  99 + .T16 { font-size:9pt; }
  100 + .T17 { font-size:9pt; }
  101 + .T18 { font-size:9pt; }
  102 + .T25 { font-weight:normal; }
109 103 .T4 { font-weight:bold; }
110 104 .T5 { font-weight:bold; }
111 105 .T6 { font-weight:bold; }
  106 + .T7 { font-weight:bold; }
112 107 .WW8Num1z0 { font-family:Symbol; }
113 108 .WW8Num2z0 { font-family:Symbol; }
114 109 .WW8Num3z0 { font-family:Symbol; }
... ... @@ -118,5 +113,11 @@
118 113 .WW8Num7z0 { font-family:Symbol; }
119 114 .WW8Num8z0 { font-family:Symbol; font-size:9pt; font-weight:normal; }
120 115 <!-- ODF styles with no properties representable as CSS -->
121   - .Tableau1.1 .T10 .T16 .T17 .T3 .T7 .T8 .T9 .WW8Num8z1 .WW8Num8z2 .WW8Num8z3 .WW8Num8z4 .WW8Num8z5 .WW8Num8z6 .WW8Num8z7 .WW8Num8z8 .WW8Num9z0 .WW8Num9z1 .WW8Num9z2 .WW8Num9z3 .WW8Num9z4 .WW8Num9z5 .WW8Num9z6 .WW8Num9z7 .WW8Num9z8 { }
122   - </style></head><body dir="ltr" style="max-width:29.7cm;margin-top:1cm; margin-bottom:1cm; margin-left:1cm; margin-right:1.45cm; writing-mode:lr-tb; "><p class="P27">ACL (Access Control List)</p><p class="P1"><span class="T1">(Etienne Pallier – 24/11/2014)</span></p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P2">I – Cycle de vie du statut du matériel</p><p class="P2"> </p><p class="Standard"><span class="T5">Créer</span><span class="T3"> un matériel ==</span><span class="T8">&gt; passe alors en statut </span><span class="T6">CREATED ==&gt; </span><span class="T2">peut alors être éventuellement supprimé (mais ne pourra plus être supprimé ensuite)</span></p><p class="Standard"><span class="T6">Valider</span><span class="T8"> un matériel CREATED ==&gt; passe alors en statut </span><span class="T6">VALIDATED </span><span class="T8">(admin only)</span></p><p class="P5"><span class="T6">Demander l'Archivage</span><span class="T8"> d'un materiel VALIDATED ==&gt; passe alors en statut </span><span class="T6">TOBEARCHIVED</span><span class="T8"> (resp et admin only)</span></p><p class="P5"><span class="T6">Sortir</span><span class="T8"> de l'inventaire (Valider une demande d'archivage d'un matériel TOBEARCHIVED) ==&gt; statut </span><span class="T6">ARCHIVED</span><span class="T8"> (admin only)</span></p><p class="P5"><span class="T6">Désarchiver</span><span class="T8"> un matériel ==&gt; repasse de TOBEARCHIVED ou ARCHIVED à </span><span class="T6">VALIDATED</span><span class="T8"> (admin only) </span></p><p class="P5"> </p><p class="P6">En résumé : TODO (schéma)</p><p class="P5"> </p><p class="P4">CREATED ==&gt;  VALIDATED ==&gt;  TOBEARCHIVED ==&gt;  ARCHIVED</p><p class="P3"><span class="T10">     </span><span class="T7">I                        /\                        I                                I</span></p><p class="P3"><span class="T10">    </span><span class="T7">V                                    I ------------------------        I ---------------------------------        I (adminplus only)</span></p><p class="P4">DELETED</p><p class="P3"> </p><p class="P3"> </p><p class="P3"> </p><p class="P2">II - Droits des utilisateurs selon leur profil</p><p class="P2"> </p><p class="P2">A – Globalement (principes généraux)</p><p class="P2"> </p><p class="P10">Un utilisateur non logué ne doit RIEN pouvoir faire. Seulement se loguer, c'est tout. Il n'a accès qu'à la page d'accueil (de login).</p><p class="P10">Une fois logué, un utilisateur a des droits différents selon son profil, globalement :</p><p class="P22"><span class="T3">- un </span><span class="T5">USER</span><span class="T3"> ne peut que créer un matériel, un suivi, ou un emprunt, consulter, et modifier (uniquement ce qu'il a créé lui-même)</span></p><p class="P22"><span class="T3">- un </span><span class="T5">RESPONSABLE</span><span class="T3"> a tous les droits sauf accès à certains champs et certaines vues réservées à l'administration (ADMIN). Il ne peut pas non plus archiver un matériel, mais seulement demander l'archivage (comme un USER)</span></p><p class="P22"><span class="T3">- un </span><span class="T5">ADMIN</span><span class="T3">(istratif) a tous les droits (y-compris champs réservés à l'administration)</span></p><p class="P22"><span class="T3">- un </span><span class="T5">ADMINPLUS</span><span class="T3"> (administratif Plus) a tous les droits de ADMIN et en plus il peut modifier un matériel quelque soit son statut (y-compris TOBEARCHIVED et ARCHIVED), notamment il peut modifier le statut du matériel (pour le rétrograder)</span></p><p class="P22"><span class="T3">- un </span><span class="T5">SUPERADMIN</span><span class="T3"> a tous les droits : ceux d'ADMINPLUS et certains droits supplémentaires pour lui permettre des corrections d'erreur et la configuration de l'application (notamment l'administration des utilisateurs...)</span></p><p class="P23"> </p><p class="Standard"><span class="T3">Concernant les informations internes permettant de savoir </span><span class="T5">qui a fait quoi</span><span class="T3"> (mises en place en février 2014), elles ne sont bien sûr pas modifiables puisque gérées automatiquement par le système, mais sont visibles par tous excepté le profil USER.</span></p><p class="P2"/><p class="P16">B - sur la table MATERIEL</p><p class="P16"> </p><p class="P16"> </p><table border="0" cellspacing="0" cellpadding="0" class="Tableau1"><colgroup><col width="85"/><col width="101"/><col width="111"/><col width="124"/><col width="80"/><col width="76"/><col width="90"/><col width="121"/><col width="120"/><col width="64"/><col width="65"/><col width="122"/></colgroup><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A1"><p class="P29"> </p></td><td style="text-align:left;width:2.318cm; " class="Tableau1_A1"><p class="P31">Read (un seul ou une liste)</p><p class="P31"> </p><p class="P31">(view ou index)</p></td><td style="text-align:left;width:2.544cm; " class="Tableau1_A1"><p class="P31">Create (1)</p><p class="P31"> </p><p class="P31">(add)</p></td><td style="text-align:left;width:2.828cm; " class="Tableau1_A1"><p class="P31">Update (1)</p><p class="P31"> </p><p class="P31">(edit)</p></td><td style="text-align:left;width:1.836cm; " class="Tableau1_A1"><p class="P31">Delete</p><p class="P31"> </p><p class="P31">(delete)</p></td><td style="text-align:left;width:1.734cm; " class="Tableau1_A1"><p class="P31">Valider</p><p class="P31"> </p><p class="P31">(statusValidated)</p></td><td style="text-align:left;width:2.066cm; " class="Tableau1_A1"><p class="P31">Demander archivage</p><p class="P31"> </p><p class="P31">(statusToBeArchived)</p></td><td style="text-align:left;width:2.766cm; " class="Tableau1_A1"><p class="P31">Sortir de l'inventaire</p><p class="P31"> </p><p class="P31"><span class="T10"> </span>(statusArchived)</p></td><td style="text-align:left;width:2.748cm; " class="Tableau1_A1"><p class="P31">Desarchiver (2)</p></td><td style="text-align:left;width:1.466cm; " class="Tableau1_A1"><p class="P31">Exporter</p><p class="P31"> </p><p class="P31">(csv)</p><p class="P31"> </p></td><td style="text-align:left;width:1.487cm; " class="Tableau1_A1"><p class="P31">Montee de statut groupee (3)</p><p class="P31"> </p><p class="P31">(execActions)</p></td><td style="text-align:left;width:2.794cm; " class="Tableau1_L1"><p class="P31">Edition (4)</p><p class="P31"> </p><p class="P31">DOCUMENTS</p><p class="P31">entree &amp; sortie</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P33">ALL (TOUS)</p><p class="P33"> </p><p class="P31">(droits par defaut)</p></td><td style="text-align:left;width:2.318cm; " class="Tableau1_B2"><p class="P31">Y</p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="Table_20_Contents"><span class="T12">champs caches:</span><span class="T11"> donnees admin</span></p></td><td style="text-align:left;width:2.544cm; " class="Tableau1_C2"><p class="P31">Y</p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="P34"> </p><p class="Table_20_Contents"><span class="T12">champs caches</span><span class="T11">:</span></p><p class="P34">donnees admin + statut + etiquette </p></td><td style="text-align:left;width:2.828cm; " class="Tableau1_D2"><p class="P31">Y</p><p class="P35">ssi</p><p class="Table_20_Contents"><span class="T13">CREATED</span><span class="T14"> (tous les champs) </span></p><p class="Table_20_Contents"><span class="T11">ou </span><span class="T12">VALIDATED</span><span class="T11"> (quelques champs visibles sont </span><span class="T12">readonly</span><span class="T11">) (1)</span></p><p class="P34"> </p><p class="Table_20_Contents"><span class="T12">champs caches</span><span class="T11">:</span></p><p class="P34">donnees admin + statut + etiquette</p></td><td style="text-align:left;width:1.836cm; " class="Tableau1_E2"><p class="P31">Y</p><p class="P33">ssi CREATED</p></td><td style="text-align:left;width:1.734cm; " class="Tableau1_F2"><p class="P31">N</p><p class="P33"> </p><p class="P33">(resp+)</p></td><td style="text-align:left;width:2.066cm; " class="Tableau1_G2"><p class="P31">N</p><p class="P33"> </p><p class="P33">(resp+)</p></td><td style="text-align:left;width:2.766cm; " class="Tableau1_H2"><p class="P31">N</p><p class="P33"> </p><p class="P33">(admin+)</p></td><td style="text-align:left;width:2.748cm; " class="Tableau1_I2"><p class="P31">N</p><p class="P33"> </p><p class="P33">(adminplus+)</p></td><td style="text-align:left;width:1.466cm; " class="Tableau1_J2"><p class="P31">N</p><p class="P31"> </p><p class="P33">(resp+)</p></td><td style="text-align:left;width:1.487cm; " class="Tableau1_K2"><p class="P31">N</p><p class="P31"> </p><p class="P33">(admin+)</p></td><td style="text-align:left;width:2.794cm; " class="Tableau1_L2"><p class="P31">N</p><p class="P31"> </p><p class="P33">(admin+)</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="Table_20_Contents"><span class="T13">User </span><span class="T14">(quelconque)</span></p></td><td style="text-align:left;width:2.318cm; " class="Tableau1_B3"><p class="P36">idem ALL</p></td><td style="text-align:left;width:2.544cm; " class="Tableau1_C3"><p class="P36">Idem ALL</p><p class="Table_20_Contents"><span class="T12">champs readonly </span><span class="T11">:</span></p><p class="P34">nom_responsable</p></td><td colspan="2" style="text-align:left;width:2.828cm; " class="Tableau1_D3"><p class="P36">idem ALL</p><p class="P28"><span class="T14">ssi </span><span class="T13">createur</span></p></td><td colspan="7" style="text-align:left;width:1.734cm; " class="Tableau1_F3"><p class="P36">idem ALL</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P30">Responsable</p></td><td style="text-align:left;width:2.318cm; " class="Tableau1_B4"><p class="P36">idem ALL</p></td><td colspan="2" style="text-align:left;width:2.544cm; " class="Tableau1_C4"><p class="P36">idem ALL</p><p class="P36">(+ etiquette)</p></td><td style="text-align:left;width:1.836cm; " class="Tableau1_E4"><p class="P36">idem ALL</p></td><td style="text-align:left;width:1.734cm; " class="Tableau1_F4"><p class="P36">Y</p><p class="P33">ssi</p><p class="P33">CREATED</p><p class="P36"> </p></td><td style="text-align:left;width:2.066cm; " class="Tableau1_G4"><p class="P36">Y</p><p class="P33">ssi</p><p class="P33">VALIDATED</p></td><td colspan="2" style="text-align:left;width:2.766cm; " class="Tableau1_H4"><p class="P36">idem ALL</p></td><td style="text-align:left;width:1.466cm; " class="Tableau1_J4"><p class="P36">Y</p></td><td colspan="2" style="text-align:left;width:1.487cm; " class="Tableau1_K4"><p class="P36">idem ALL</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P30">Admin</p></td><td colspan="3" style="text-align:left;width:2.318cm; " class="Tableau1_B5"><p class="P28"><span class="T14">(idem Responsable </span><span class="T13">+  donnees admin</span><span class="T14">)</span></p><p class="P36"> </p><p class="P28"><span class="T11">En mode edit (update), si VALIDATED, on ajoute aux donnees </span><span class="T12">readonly</span><span class="T11"> les </span><span class="T12">donnees admin</span></p><p class="P36"> </p><p class="P34"> </p></td><td colspan="3" style="text-align:left;width:1.836cm; " class="Tableau1_E5"><p class="P36">idem Responsable</p></td><td style="text-align:left;width:2.766cm; " class="Tableau1_H5"><p class="P36">Y</p><p class="P33">ssi</p><p class="P33">TOBEARCHIVED</p></td><td colspan="2" style="text-align:left;width:2.748cm; " class="Tableau1_I5"><p class="P36">idem Responsable</p></td><td style="text-align:left;width:1.487cm; " class="Tableau1_K5"><p class="P36">Y</p></td><td style="text-align:left;width:2.794cm; " class="Tableau1_L5"><p class="P36">Y</p><p class="P32">- admission : ssi VALIDATED</p><p class="P32">- sortie : ssi TOBEARCHIVED ou ARCHIVED</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P30">Adminplus</p></td><td colspan="2" style="text-align:left;width:2.318cm; " class="Tableau1_B6"><p class="P36">idem Admin</p></td><td style="text-align:left;width:2.828cm; " class="Tableau1_D6"><p class="P36">idem Admin</p><p class="P28"><span class="T14">(</span><span class="T13">tous les statuts</span><span class="T14">)</span></p><p class="P28"><span class="T14">(+ champ </span><span class="T13">statut</span><span class="T14">)</span></p><p class="P28"> </p><p class="P28"><span class="T14">TOBEARCHIVED ou ARCHIVED: </span><span class="T13">seulement le statut</span></p></td><td colspan="4" style="text-align:left;width:1.836cm; " class="Tableau1_E6"><p class="P36">idem Admin</p></td><td style="text-align:left;width:2.748cm; " class="Tableau1_I6"><p class="P36">Y</p><p class="P33">ssi</p><p class="P33">ARCHIVED ou</p><p class="P33">TOBEARCHIVED</p></td><td colspan="3" style="text-align:left;width:1.466cm; " class="Tableau1_J6"><p class="P36">idem Admin</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P30">Superadmin</p></td><td colspan="11" style="text-align:left;width:2.318cm; " class="Tableau1_B7"><p class="P36">idem Adminplus</p></td></tr></table><p class="P10"> </p><p class="P19">Par défaut, le superadmin a TOUS les droits</p><p class="P19"> </p><p class="Standard"><span class="T13">Conventions d'écriture </span><span class="T14">: </span></p><p class="P22"><span class="T14">- r</span><span class="T13">esp+</span><span class="T14"> = possible pour un </span><span class="T13">Responsable et plus </span><span class="T14">(responsable, admin, adminplus, et superadmin)</span></p><p class="P22"><span class="T14">- </span><span class="T13">admin+</span><span class="T14"> = possible pour un </span><span class="T13">Admin</span><span class="T14"> </span><span class="T13">et plus </span><span class="T14">(admin, adminplus, et superadmin)</span></p><p class="P24">- ...</p><p class="P24"> </p><p class="Standard"><span class="T13">Notes </span><span class="T14">:</span></p><p class="P18"> </p><ol><li><p class="P20" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(1)</span><span class="T13">Droits en modification (edit) </span><span class="T14">:</span><span class="odfLiEnd"/> </p></li></ol><p class="P24">- Un simple « user » ne doit pas pouvoir modifier le responsable, ni le statut, ni l'étiquette, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P24">- Un  «responsable » ne doit pas pouvoir modifier le statut, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P24">- Les données admin ne sont accessibles qu'aux profils admin+</p><p class="P22"><span class="T14">- Le champ "</span><span class="T13">status</span><span class="T14">" n'est modifiable que par les profils adminplus+</span></p><p class="P22"><span class="T14">- Tout le monde peut modifier un matériel </span><span class="T13">VALIDATED </span><span class="T14">(</span><span class="T13">user </span><span class="T14">ne peut modifier que </span><span class="T13">ses</span><span class="T14"> matériels),</span></p><p class="P22"><span class="T14">MAIS PAS</span><span class="T13"> certains champs</span><span class="T14"> qui sont </span><span class="T13">readonly</span><span class="T14"> (</span><span class="T15">sur_categorie_id', 'categorie_id', 'materiel_administratif', 'materiel_technique', 'date_acquisition', 'nom_responsable', 'fournisseur', 'organisme', 'prix_ht')</span></p><p class="P22"><span class="T14">Les seuls champs qu'on peut éditer sont donc : (</span><span class="T15">designation, sous_categorie, materiel_administratif, materiel_technique, description, etiquette, lieu_stockage, lieu_detail, numero_serie, groupes_thematique, groupes_metier),</span><span class="T14"><br/>- Seuls les profils </span><span class="T13">adminplus+</span><span class="T14"> peuvent modifier un matériel </span><span class="T13">TOBEARCHIVED, ou ARCHIVED </span><span class="T14">mais </span><span class="T13">UNIQUEMENT le champ "status" </span><span class="T14">(pour pouvoir rétrograder à CREATED ou VALIDATED)</span></p><p class="P22"><span class="T14">- Le seul moyen de modifier COMPLÈTEMENT un matériel VALIDATED, TOBEARCHIVED, ou ARCHIVED, <br/>c'est de </span><span class="T13">changer son statut</span><span class="T14">, en le rétrogradant à CREATED (seuls les profils adminplus+ peuvent le faire)</span></p><p class="P24"> </p><ol><li><p class="P20" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(2)</span><span class="T13">Désarchiver </span><span class="T14">: consiste à rétrograder un matériel ARCHIVED ou TOBEARCHIVED dans le statut VALIDATED ou CREATED (adminplus+ only) ; utile en cas d'erreur</span><span class="odfLiEnd"/> </p></li></ol><p class="P18"> </p><ol><li><p class="P20" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(3)</span><span class="T13">Montée de statut groupée : </span><span class="T14">seul ADMIN peut (exporter tout ou partie de la liste des matériels, et) </span><span class="T13">augmenter (+1) le statut d'un groupe de matériels</span><span class="T14">, depuis la vue « index » (vue spéciale pour ADMIN, avec des cases à cocher et boutons pour exporter ou faire évoluer le statut)</span><span class="odfLiEnd"/> </p></li></ol><p class="P18"> </p><ol><li><p class="P17" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(4)</span>Edition des documents :<span class="odfLiEnd"/> </p></li></ol><p class="P24">Admission : quand on "VALIDE" un matériel "CREATED", le statut passe en VALIDATED et le document d'admission est automatiquement édité</p><p class="P24">Sortie : quand on "ARCHIVE" un document "TOBEARCHIVED", le statut passe en ARCHIVED et le document de sortie est automatiquement édité</p><p class="P24">De plus :</p><p class="P24">- Bouton "Doc admission" affiché à partir du statut "VALIDATED"</p><p class="P24">- Bouton "Doc Sortie" affiché à partir du statut TOBEARCHIVED (et donc aussi pour ARCHIVED)</p><p class="P24">Enfin, Le doc de sortie doit être couplée avec la liste des matériels a archiver (TOBEARCHIVED) quand il y a une demande de sortie.</p><p class="P24"> </p><p class="P25"> </p><p class="P2">C - sur les différentes VUES liées au matériel</p><p class="Standard"> </p><p class="P10"><span class="T4">Page accueil </span>:</p><p class="P10"><span> Administration <span class="T17">&amp; Administration Plus </span>voit un menu avec 2 options :</span></p><ul><li><ul><li><ul><li><p class="P11" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à valider »<span class="odfLiEnd"/> </p></li><li><p class="P11" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à sortir de l'inventaire »<span class="odfLiEnd"/> </p></li></ul></li></ul></li></ul><p class="P10"> </p><p class="P2">Page Outils :</p><p class="P10">User n'a pas accès à cette page</p><p class="P10">Les autres ont quelques options</p><p class="P10">superadmin a ces options en plus :</p><ul><li><p class="P12" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Configuration générale de l'application<span class="odfLiEnd"/> </p></li><li><p class="P12" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Gérer les utilisateurs <span class="T17">privilégiés</span><span class="odfLiEnd"/> </p></li><li><p class="P12" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode debug<span class="odfLiEnd"/> </p></li><li><p class="P15" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode install<span class="odfLiEnd"/> </p></li></ul><p class="P10"> </p><p class="Standard"><span class="T5">Vue materiel/index (liste) </span><span class="T3">: limiter aux </span><span class="T5">matériels actifs</span><span class="T3"> (non archivés)</span></p><ul><li><ul><li><p class="P13" style="margin-left:0cm;"><span class="WW8Num1z0" style="display:block;float:left;min-width:0,635cm;">.</span>Admin<span class="T17">+ </span>voit des boutons pour filtrer par « tous », « à valider », « validés », « à sortir », « archivés »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P10"> </p><p class="Standard"><span class="T5">Vue materiel/find </span><span class="T3">: limiter aux </span><span class="T5">matériels actifs</span><span class="T3"> (non archivés)</span></p><p class="P10"><span> Seul le<span class="T17">s</span> profil<span class="T17">s</span> Admin<span class="T17">+ </span>voit TOUS les matériels (y-compris archivés)</span></p><p class="P10"> </p><p class="P10"><span class="T4">Vue materiel/view </span>:</p><p class="P10"><span> boutons « Imprimer Etiquettes » : <span class="T17">resp+</span></span></p><p class="P10"> </p><p class="P10"><span class="T4">Vue materiel/edit </span>:</p><ul><li><p class="P14" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Etiquette O/N (admin<span class="T17">+)</span><span class="odfLiEnd"/> </p></li><li><p class="P14" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Statut (<span class="T17">superadmin+)</span><span class="odfLiEnd"/> </p></li><li><p class="P14" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Informations administratives (admin<span class="T17">+)</span><span class="odfLiEnd"/> </p></li></ul><p class="P10"> </p><p class="P10"> </p><p class="P2"> </p><p class="P26">D - sur un SUIVI et un EMPRUNT</p><p class="P2"> </p><ul><li><p class="P7" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Dans tous les cas, on ne doit pas pouvoir emprunter ou suivre un materiel non validé (CREATED)<span class="odfLiEnd"/> </p></li><li><p class="P7" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>User a les droits C, R, U (si créateur), D (si créateur)<span class="odfLiEnd"/> </p></li><li><p class="P7" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Resp+ a les droits C, R, U, D<span class="odfLiEnd"/> </p></li></ul><p class="P5"><span class="T8">Un USER peut modifier/supprimer un emprunt dont il est soit le créateur soit l'emprunteur</span><span class="T16">.</span></p><p class="P21">Un USER qui créé un emprunt ne doit pas pouvoir changer le nom de l'emprunteur (par défaut, c'est lui). Ainsi, il pourra modifier/supprimer cette fiche au besoin plus tard. Par défaut donc, pour un user, emprunt.emprunteur=creator, materiel.responsable=creator</p><p class="P6"> </p><p class="P6"> </p><p class="P4">E - sur les UTILISATEURS</p><p class="P5"><span class="T8">Par défaut, superadmin a tous les droits, et les autres profils n'ont que le droit de lecture (</span><span class="T6">view </span><span class="T8">et </span><span class="T6">index</span><span class="T8">)</span></p><p class="P6"> </p><p class="P6"> </p><p class="P4">F - sur tous les autres objets métiers</p><p class="P6">Voici la liste des autres objets métiers :</p><ul><li><p class="P8" style="margin-left:0cm;"><span class="WW8Num7z0" style="display:block;float:left;min-width:0,635cm;">.</span>Catégories (et domaines et sous-catégories)<span class="odfLiEnd"/> </p></li></ul><ul><li><p class="P9" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes thématiques<span class="odfLiEnd"/> </p></li><li><p class="P9" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes métiers<span class="odfLiEnd"/> </p></li></ul><p class="P5"><span class="T8">Par défaut, pour tous ces objets, superadmin a tous les droits, admin</span><span class="T9">plus</span><span class="T8"> a tous les droits sauf « delete », et les autres profils n'ont que le droit de lecture (</span><span class="T6">view </span><span class="T8">et </span><span class="T6">index</span><span class="T8">)</span></p></body></html>
123 116 \ No newline at end of file
  117 + .Tableau2.13 .T10 .T11 .T12 .T19 .T2 .T20 .T21 .T22 .T23 .T24 .T3 .T8 .T9 .WW8Num8z1 .WW8Num8z2 .WW8Num8z3 .WW8Num8z4 .WW8Num8z5 .WW8Num8z6 .WW8Num8z7 .WW8Num8z8 .WW8Num9z0 .WW8Num9z1 .WW8Num9z2 .WW8Num9z3 .WW8Num9z4 .WW8Num9z5 .WW8Num9z6 .WW8Num9z7 .WW8Num9z8 { }
  118 + </style></head><body dir="ltr" style="max-width:29.7cm;margin-top:1cm; margin-bottom:1cm; margin-left:1cm; margin-right:1.45cm; writing-mode:lr-tb; "><p class="P46">ACL (Access Control List)</p><p class="P11">(Etienne Pallier – 24/<span class="T22">06</span>/201<span class="T23">6</span>)</p><p class="P1"> </p><p class="P1"> </p><p class="P1"> </p><p class="P1">I – Cycle de vie du statut du matériel</p><p class="P1"> </p><p class="Standard"><span class="T5">Créer</span><span class="T2"> un matériel ==</span><span class="T9">&gt; passe alors en statut </span><span class="T7">CREATED ==&gt; </span><span class="T1">peut alors être éventuellement supprimé (mais ne pourra plus être supprimé ensuite)</span></p><p class="Standard"><span class="T7">Valider</span><span class="T9"> un matériel CREATED ==&gt; passe alors en statut </span><span class="T7">VALIDATED </span><span class="T9">(</span><span class="T11">resp et </span><span class="T9">admin only)</span></p><p class="P4"><span class="T7">Demander l'Archivage</span><span class="T9"> d'un materiel VALIDATED ==&gt; passe alors en statut </span><span class="T7">TOBEARCHIVED</span><span class="T9"> (resp et admin only)</span></p><p class="P4"><span class="T7">Sortir</span><span class="T9"> de l'inventaire (Valider une demande d'archivage d'un matériel TOBEARCHIVED) ==&gt; statut </span><span class="T7">ARCHIVED</span><span class="T9"> (admin only)</span></p><p class="P4"><span class="T7">Désarchiver</span><span class="T9"> un matériel ==&gt; repasse de TOBEARCHIVED ou ARCHIVED à </span><span class="T7">VALIDATED</span><span class="T9"> (admin only) </span></p><p class="P4"> </p><p class="P5">En résumé : </p><p class="P4"> </p><p class="P3">CREATED ==&gt;  VALIDATED ==&gt;  TOBEARCHIVED ==&gt;  ARCHIVED</p><p class="P2"><span class="T12">     </span><span class="T8">I                        /\                        I                                I</span></p><p class="P2"><span class="T12">    </span><span class="T8">V                                    I ------------------------        I ---------------------------------        I (adminplus only)</span></p><p class="P3">DELETED</p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P1">II - Droits des utilisateurs selon leur profil</p><p class="P1"> </p><p class="P1">A – Globalement (principes généraux)</p><p class="P1"> </p><p class="P6">Un utilisateur non logué ne doit RIEN pouvoir faire. Seulement se loguer, c'est tout. Il n'a accès qu'à la page d'accueil (de login).</p><p class="P6">Une fois logué, un utilisateur a des droits différents selon son profil, globalement :</p><p class="P14"><span class="T2">- un </span><span class="T5">USER</span><span class="T2"> ne peut que créer un matériel, un suivi, ou un emprunt, consulter, et modifier (uniquement ce qu'il a créé lui-même)</span></p><p class="P18"><span class="T2">- un </span><span class="T5">RESPONSABLE</span><span class="T2"> a tous les droits sauf accès à certains champs et certaines vues réservées à l'administration (ADMIN). Il ne peut pas non plus archiver un matériel, mais seulement demander l'archivage (comme un USER)(uniquement ce </span><span class="T3">lié à son groupe métier ou thématiques</span><span class="T2">)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">ADMIN</span><span class="T2">(istratif) a tous les droits (y-compris champs réservés à l'administration)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">ADMINPLUS</span><span class="T2"> (administratif Plus) a tous les droits de ADMIN et en plus il peut modifier un matériel quelque soit son statut (y-compris TOBEARCHIVED et ARCHIVED), notamment il peut modifier le statut du matériel (pour le rétrograder)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">SUPERADMIN</span><span class="T2"> a tous les droits : ceux d'ADMINPLUS et certains droits supplémentaires pour lui permettre des corrections d'erreur et la configuration de l'application (notamment l'administration des utilisateurs...)</span></p><p class="P15"> </p><p class="Standard"><span class="T2">Concernant les informations internes permettant de savoir </span><span class="T5">qui a fait quoi</span><span class="T2"> (mises en place en février 2014), elles ne sont bien sûr pas modifiables puisque gérées automatiquement par le système, mais sont visibles par tous excepté le profil USER.</span></p><p class="P1"/><p class="P7">B - sur la table MATERIEL</p><table border="0" cellspacing="0" cellpadding="0" class="Tableau2"><colgroup><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/></colgroup><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="Table_20_Contents"> </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P41">ALL (TOUS)</p><p class="P43">(droits par defaut)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P40"><span class="T5">U</span><span class="T6">tilisateur </span><span class="T5"> </span><span class="T2">(quelconque)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Responsable</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration Plus</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_G1"><p class="P42">Super-Administrateur</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Read (un seul ou une liste)</p><p class="P45">(view ou index)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">Y</p><p class="Table_20_Contents"><span class="T14">champs caches:</span><span class="T13"> donnees admin</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E4"><p class="P23"><span class="T16">(idem Responsable </span><span class="T15">+  donnees admin</span><span class="T16">)</span></p><p class="P37"> </p><p class="P23"><span class="T13">En mode edit (update), si VALIDATED, on ajoute aux donnees </span><span class="T14">readonly</span><span class="T13"> les </span><span class="T14">donnees admin</span></p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_F3"><p class="P37">idem Admin</p></td><td rowspan="11" style="text-align:left;width:3.893cm; " class="Tableau2_G12"><p class="P37">idem Adminplus</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Create (1)</p><p class="P45">(add)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">Idem ALL</p><p class="P39"><span class="T14">champs readonly </span><span class="T13">:</span></p><p class="P34">nom_responsable</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D4"><p class="P36">idem ALL</p><p class="P36">(+ etiquette)</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Update (1)</p><p class="P45">(edit)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P33">ssi</p><p class="P39"><span class="T15">CREATED</span><span class="T16"> (tous les champs) </span></p><p class="P39"><span class="T13">ou </span><span class="T14">VALIDATED</span><span class="T13"> (quelques champs visibles sont </span><span class="T14">readonly</span><span class="T13">) (1)</span></p><p class="P34"> </p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_C5"><p class="P36">idem ALL</p><p class="P22"><span class="T16">ssi </span><span class="T15">createur</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem Admin</p><p class="P23"><span class="T16">(</span><span class="T15">tous les statuts</span><span class="T16">)</span></p><p class="P23"><span class="T16">(+ champ </span><span class="T15">statut</span><span class="T16">)</span></p><p class="P23"> </p><p class="P23"><span class="T16">TOBEARCHIVED ou ARCHIVED: </span><span class="T15">seulement le statut</span></p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Delete</p><p class="P45">(delete)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P29">ssi CREATED</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E7"><p class="P37">idem Responsable</p></td><td rowspan="4" style="text-align:left;width:3.893cm; " class="Tableau2_F8"><p class="P37">idem Admin</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Valider</p><p class="P45">(statusValidated)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td><td rowspan="7" style="text-align:left;width:3.893cm; " class="Tableau2_C12"><p class="P36">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">CREATED</p><p class="P37"> </p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Demander archivage</p><p class="P45">(statusToBeArchived)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">VALIDATED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Sortir de l'inventaire</p><p class="P45"><span class="T12"> </span>(statusArchived)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D9"><p class="P37">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P35">Y</p><p class="P28">ssi</p><p class="P28">TOBEARCHIVED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Desarchiver (2)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(adminplus+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_E10"><p class="P37">idem Responsable</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">ARCHIVED ou</p><p class="P30">TOBEARCHIVED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Exporter</p><p class="P45">(csv)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(resp+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_F12"><p class="P37">idem Admin</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Montee de statut group<span class="T24">é</span>e</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D12"><p class="P37">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P38">Y</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Edition (4)</p><p class="P44">DOCUMENTS</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P26">N</p><p class="P29">(admin+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P37">Y</p><p class="P31">- admission : ssi VALIDATED</p><p class="P31">- sortie : ssi TOBEARCHIVED ou ARCHIVED</p></td></tr><tr class="Tableau213"><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P68">Fiche Matériel </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_C13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_D13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_F13"><p class="P49">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_G13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td></tr></table><p class="P7"> </p><p class="P7"> </p><p class="P6"> </p><p class="P10">Par défaut, le superadmin a TOUS les droits</p><p class="P10"> </p><p class="Standard"><span class="T15">Conventions d'écriture </span><span class="T16">: </span></p><p class="P14"><span class="T16">- r</span><span class="T15">esp+</span><span class="T16"> = possible pour un </span><span class="T15">Responsable et plus </span><span class="T16">(responsable, admin, adminplus, et superadmin)</span></p><p class="P14"><span class="T16">- </span><span class="T15">admin+</span><span class="T16"> = possible pour un </span><span class="T15">Admin</span><span class="T16"> </span><span class="T15">et plus </span><span class="T16">(admin, adminplus, et superadmin)</span></p><p class="P16">- ...</p><p class="P16"> </p><p class="Standard"><span class="T15">Notes </span><span class="T16">:</span></p><p class="P9"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(1)</span><span class="T15">Droits en modification (edit) </span><span class="T16">:</span><span class="odfLiEnd"/> </p></li></ol><p class="P16">- Un simple « user » ne doit pas pouvoir modifier le responsable, ni le statut, ni l'étiquette, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Un  «responsable » ne doit pas pouvoir modifier le statut, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Les données admin ne sont accessibles qu'aux profils admin+</p><p class="P14"><span class="T16">- Le champ "</span><span class="T15">status</span><span class="T16">" n'est modifiable que par les profils adminplus+</span></p><p class="P14"><span class="T16">- Tout le monde peut modifier un matériel </span><span class="T15">VALIDATED </span><span class="T16">(</span><span class="T15">user </span><span class="T16">ne peut modifier que </span><span class="T15">ses</span><span class="T16"> matériels, </span><span class="T17">resp ne peut modifier que les matériels de son groupe thématique ou métier</span><span class="T16">),</span></p><p class="P14"><span class="T16">MAIS PAS</span><span class="T15"> certains champs</span><span class="T16"> qui sont </span><span class="T15">readonly</span><span class="T16"> (</span><span class="T18">sur_categorie_id', 'categorie_id', 'materiel_administratif', 'materiel_technique', 'date_acquisition', 'nom_responsable', 'fournisseur', 'organisme', 'prix_ht')</span></p><p class="P14"><span class="T16">Les seuls champs qu'on peut éditer sont donc : (</span><span class="T18">designation, sous_categorie, materiel_administratif, materiel_technique, description, etiquette, lieu_stockage, lieu_detail, numero_serie, groupes_thematique, groupes_metier),</span><span class="T16"><br/>- Seuls les profils </span><span class="T15">adminplus+</span><span class="T16"> peuvent modifier un matériel </span><span class="T15">TOBEARCHIVED, ou ARCHIVED </span><span class="T16">mais </span><span class="T15">UNIQUEMENT le champ "status" </span><span class="T16">(pour pouvoir rétrograder à CREATED ou VALIDATED)</span></p><p class="P14"><span class="T16">- Le seul moyen de modifier COMPLÈTEMENT un matériel VALIDATED, TOBEARCHIVED, ou ARCHIVED, <br/>c'est de </span><span class="T15">changer son statut</span><span class="T16">, en le rétrogradant à CREATED (seuls les profils adminplus+ peuvent le faire)</span></p><p class="P16"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(2)</span><span class="T15">Désarchiver </span><span class="T16">: consiste à rétrograder un matériel ARCHIVED ou TOBEARCHIVED dans le statut VALIDATED ou CREATED (adminplus+ only) ; utile en cas d'erreur</span><span class="odfLiEnd"/> </p></li></ol><p class="P8"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(3)</span><span class="T15">Montée de statut groupée : </span><span class="T16">seul ADMIN peut (exporter tout ou partie de la liste des matériels, et) </span><span class="T15">augmenter (+1) le statut d'un groupe de matériels</span><span class="T16">, depuis la vue « index » (vue spéciale pour ADMIN, avec des cases à cocher et boutons pour exporter ou faire évoluer le statut)</span><span class="odfLiEnd"/> </p></li></ol><p class="P8"> </p><ol><li><p class="P48" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(4)</span>Edition des documents :<span class="odfLiEnd"/> </p></li></ol><p class="P16">Admission : quand on "VALIDE" un matériel "CREATED", le statut passe en VALIDATED et le document d'admission est automatiquement édité</p><p class="P16">Sortie : quand on "ARCHIVE" un document "TOBEARCHIVED", le statut passe en ARCHIVED et le document de sortie est automatiquement édité</p><p class="P16">De plus :</p><p class="P16">- Bouton "Doc admission" affiché à partir du statut "VALIDATED"</p><p class="P16">- Bouton "Doc Sortie" affiché à partir du statut TOBEARCHIVED (et donc aussi pour ARCHIVED)</p><p class="P16">Enfin, Le doc de sortie doit être couplée avec la liste des matériels a archiver (TOBEARCHIVED) quand il y a une demande de sortie.</p><p class="P16"> </p><p class="P17"> </p><p class="P1">C - sur les différentes VUES liées au matériel</p><p class="Standard"> </p><p class="P6"><span class="T4">Page accueil </span>:</p><p class="P6"><span> Administration <span class="T20">&amp; Administration Plus </span>voit un menu avec 2 options :</span></p><ul><li><ul><li><ul><li><p class="P51" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à valider »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à sortir de l'inventaire »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0cm"><!-- --></span><span class="T21">Responsable </span>voit un menu avec <span class="T21">3</span> options :<span class="odfLiEnd"/> </p><ul><li><ul><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier</span> »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier à valider</span> »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« <span class="T21">Voir les suivis des matériels donc je suis responsable »</span><span class="odfLiEnd"/> </p></li></ul></li></ul></li></ul><p class="P1">Page Outils :</p><p class="P6">User n'a pas accès à cette page</p><p class="P6">Les autres ont quelques options</p><p class="P6">superadmin a ces options en plus :</p><ul><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Configuration générale de l'application<span class="odfLiEnd"/> </p></li><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Gérer les utilisateurs <span class="T20">privilégiés</span><span class="odfLiEnd"/> </p></li><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode debug<span class="odfLiEnd"/> </p></li><li><p class="P54" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode install<span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="Standard"><span class="T5">Vue materiel/index (liste) </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p><ul><li><ul><li><p class="P55" style="margin-left:0cm;"><span class="WW8Num1z0" style="display:block;float:left;min-width:0,635cm;">.</span>Admin<span class="T20">+ </span>voit des boutons pour filtrer par « tous », « à valider », « validés », « à sortir », « archivés »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P6"> </p><p class="Standard"><span class="T5">Vue materiel/find </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p><p class="P6"><span> Seul le<span class="T20">s</span> profil<span class="T20">s</span> Admin<span class="T20">+ </span>voit TOUS les matériels (y-compris archivés)</span></p><p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/view </span>:</p><p class="P6"><span> boutons « Imprimer Etiquettes » : <span class="T20">resp+</span></span></p><p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/edit </span>:</p><ul><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Etiquette O/N (admin<span class="T20">+)</span><span class="odfLiEnd"/> </p></li><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Statut (<span class="T20">superadmin+)</span><span class="odfLiEnd"/> </p></li><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Informations administratives (admin<span class="T20">+)</span><span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="P6"> </p><p class="P1"> </p><p class="P19">D - sur un SUIVI et un EMPRUNT</p><p class="P1"> </p><ul><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Dans tous les cas, on ne doit pas pouvoir emprunter ou suivre un materiel non validé (CREATED)<span class="odfLiEnd"/> </p></li><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>User a les droits C, R, U (si créateur), D (si créateur)<span class="odfLiEnd"/> </p></li><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Resp+ a les droits C, R, U, D<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T9">Un USER peut modifier/supprimer un emprunt dont il est soit le créateur soit l'emprunteur</span><span class="T19">.</span></p><p class="P12">Un USER qui créé un emprunt ne doit pas pouvoir changer le nom de l'emprunteur (par défaut, c'est lui). Ainsi, il pourra modifier/supprimer cette fiche au besoin plus tard. Par défaut donc, pour un user, emprunt.emprunteur=creator, materiel.responsable=creator</p><p class="P13">Tout le monde peut rechercher un suivi,</p><p class="P5"> </p><p class="P5"> </p><p class="P3">E - sur les UTILISATEURS</p><p class="P4"><span class="T9">Par défaut, superadmin a tous les droits, et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p><p class="P5"> </p><p class="P5"> </p><p class="P3">F - sur tous les autres objets métiers</p><p class="P5">Voici la liste des autres objets métiers :</p><ul><li><p class="P58" style="margin-left:0cm;"><span class="WW8Num7z0" style="display:block;float:left;min-width:0,635cm;">.</span>Catégories (et domaines et sous-catégories)<span class="odfLiEnd"/> </p></li></ul><ul><li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes thématiques<span class="odfLiEnd"/> </p></li><li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes métiers<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T9">Par défaut, pour tous ces objets, superadmin a tous les droits, admin</span><span class="T10">plus</span><span class="T9"> a tous les droits sauf « delete », et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p>
  119 +
  120 + <div class="actions">
  121 + <?php echo $this->element('menu') ?>
  122 + </div>
  123 +
  124 + </body></html>
124 125 \ No newline at end of file
... ...
src/Template/Pages/home_app.ctp
... ... @@ -20,6 +20,19 @@
20 20 'controller' => 'materiels', 'action' => 'index', 'TOBEARCHIVED']).' </td></tr>';
21 21 echo '</table>';
22 22 }
  23 +
  24 + //Utilisateur responsable
  25 + if ($role == 'Responsable') {
  26 + echo '<table cellpadding="0" cellspacing="0" style="width: 800px;">';
  27 + echo '<tr><th></th></tr>';
  28 + echo '<tr><td> '.$this->Html->link('Voir les matériels de mon groupe métier', [
  29 + 'controller' => 'materiels', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id]).' </td></tr>';
  30 + echo '<tr><td> '.$this->Html->link('Voir les matériels de mon groupe métier à valider', [
  31 + 'controller' => 'materiels', 'action' => 'index', 'GMV' => $userConnected->groupes_metier_id]).' </td></tr>';
  32 + echo '<tr><td> '.$this->Html->link('Voir les suivis des materiels donc je suis responsable', [
  33 + 'controller' => 'suivis', 'action' => 'index', 'GM' => $userConnected->groupes_metier_id]).' </td></tr>';
  34 + echo '</table>';
  35 + }
23 36 ?>
24 37  
25 38 </div>
... ...
tests/Fixture/ConfigurationsFixture.php
... ... @@ -47,6 +47,8 @@ class ConfigurationsFixture extends TestFixture
47 47 'emailGuest9' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null],
48 48 'emailGuest10' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null],
49 49 'test' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
  50 + 'date_commande_facultative' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
  51 + 'numero_labo_sans_annee' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
50 52 'prix_inventaire_administratif' => ['type' => 'integer', 'length' => 10, 'null' => true, 'default' => 800, 'comment' => '', 'precision' => null],
51 53 '_constraints' => [
52 54 'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
... ...
tests/Fixture/MaterielsFixture.php
... ... @@ -52,8 +52,9 @@ class MaterielsFixture extends TestFixture
52 52 'modified' => ['type' => 'datetime', 'length' => null, 'null' => true, 'default' => null, 'comment' => 'date et heure de modif de la fiche', 'precision' => null],
53 53 'date_reception' => ['type' => 'date', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
54 54 'organisme_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
55   - 'site_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => '2', 'comment' => '', 'precision' => null, 'autoIncrement' => null],
56   - '_indexes' => [
  55 + 'site_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => '1', 'comment' => '', 'precision' => null, 'autoIncrement' => null],
  56 + 'hors_service' => ['type' => 'boolean', 'length' => null, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null],
  57 + '_indexes' => [
57 58 'fk_administrative_materials_sub_categories1' => ['type' => 'index', 'columns' => ['sous_categorie_id'], 'length' => []],
58 59 'fk_materials_thematic_group1' => ['type' => 'index', 'columns' => ['groupes_thematique_id'], 'length' => []],
59 60 'fk_materials_work_group1' => ['type' => 'index', 'columns' => ['groupes_metier_id'], 'length' => []],
... ...
tests/Fixture/SuivisFixture.php
... ... @@ -64,7 +64,7 @@ class SuivisFixture extends TestFixture
64 64 'type_suivi_id' => 1,
65 65 'groupes_metier_id' => 1,
66 66 'groupes_thematique_id' => 1,
67   - 'organisme' => 'Lorem ipsum dolor sit amet',
  67 + 'organisme' => 'dolor sit amet',
68 68 'frequence' => 1,
69 69 'type_frequence' => '/ Jours',
70 70 'commentaire' => 'Lorem ipsum dolor sit amet',
... ... @@ -76,8 +76,8 @@ class SuivisFixture extends TestFixture
76 76 [
77 77 'id' => 2,
78 78 'materiel_id' => 1,
79   - 'date_controle' => '2016-04-19',
80   - 'date_prochain_controle' => '2016-04-19',
  79 + 'date_controle' => '2018-04-19',
  80 + 'date_prochain_controle' => '2018-04-19',
81 81 'type_suivi_id' => 1,
82 82 'groupes_metier_id' => 1,
83 83 'groupes_thematique_id' => 1,
... ...
tests/TestCase/Controller/MaterielsControllerTest.php
... ... @@ -242,11 +242,11 @@ class MaterielsControllerTest extends IntegrationTestCase
242 242 }
243 243  
244 244 /**
245   - * Test valueNeccessaryEmpty method
  245 + * Test valueNeccessaryNotEmpty method
246 246 *
247 247 * @return void
248 248 */
249   - public function testValueNeccessaryEmpty()
  249 + public function testValueNeccessaryNotEmpty()
250 250 {
251 251 $this->authSuperAdmin();
252 252  
... ... @@ -365,7 +365,7 @@ class MaterielsControllerTest extends IntegrationTestCase
365 365 ];
366 366  
367 367 //Test sans aucun champ
368   - $this->post('/materiels/find');
  368 + $this->get('/materiels/find');
369 369 $this->assertResponseContains("Aucun résultats pour cette recherche.", "Le contenu de la recherche devrait être vide.");
370 370  
371 371 //Test champ générale formulaire
... ... @@ -868,10 +868,55 @@ class MaterielsControllerTest extends IntegrationTestCase
868 868 $this->assertResponseContains('ARCHIVED', "L'archivation du materiel ne se fait pas correctement avec un profil admin+.");
869 869 }
870 870  
  871 + /**
  872 + * Test ACLIndexResponsable
  873 + *
  874 + * @return void
  875 + */
  876 + public function testACLIndexResponsable() {
  877 + $this->authResponsable();
  878 +
  879 + $this->get('/materiels/index?GM=1');
  880 + $this->assertResponseContains('Liste des matériels (6)', "La liste des materiels selon le groupe métier ne s'affiche pas correctement.");
  881 +
  882 + $this->get('/materiels/index?GMV=1');
  883 + $this->assertResponseContains('Liste des matériels (3)', "La liste des materiels selon le groupe métier et CREATED ne s'affiche pas correctement.");
  884 + }
871 885  
872 886  
873   -
874   -
  887 + /**
  888 + * Test MaterielPanne
  889 + *
  890 + * @return void
  891 + */
  892 + public function testMaterielPanne()
  893 + {
  894 + $this->authSuperAdmin();
  895 +
  896 + $this->get('/materiels/view/2');
  897 + $this->assertResponseNotContains("(HORS SERVICE)", "Le matériel est hors-service par défaut.");
  898 +
  899 + $data = [
  900 + 'designation' => 'Test 6',
  901 + 'sur_categorie_id' => 1,
  902 + 'categorie_id' => 1,
  903 + 'materiel_administratif' => 0,
  904 + 'materiel_technique' => 1,
  905 + 'status' => 'CREATED',
  906 + 'date_acquisition' => '19-04-2016',
  907 + 'nom_createur' => 'Pallier Etienne',
  908 + 'nom_modificateur' => 'Jean Administration',
  909 + 'nom_responsable' => 'Jacques Utilisateur',
  910 + 'email_responsable' => 'Jacques.Utilisateur@irap.omp.eu',
  911 + 'hors_service' => 1
  912 + ];
  913 +
  914 + $this->post('/materiels/edit/2', $data);
  915 + $this->get('/materiels/view/2');
  916 + $this->assertResponseContains("(HORS SERVICE)", "Le matériel n'est pas hors-service comme demandé.");
  917 +
  918 +
  919 + }
875 920  
876 921  
877 922  
... ...
tests/TestCase/Controller/SuivisControllerTest.php
... ... @@ -158,4 +158,77 @@ class SuivisControllerTest extends IntegrationTestCase
158 158 $this->get('/suivis/index');
159 159 $this->assertResponseContains("Liste des suivis (1)", "Le suivi n'as pas été supprimé.");
160 160 }
  161 +
  162 + /**
  163 + * Test find method
  164 + *
  165 + * @return void
  166 + */
  167 + public function testFind()
  168 + {
  169 + $this->authUser();
  170 +
  171 + $dataSearch = [
  172 + 's_type_suivi_id' => '1',
  173 + 's_groupes_metier_id' => '',
  174 + 's_groupes_thematique_id' => '',
  175 + 's_organisme' => '',
  176 + 's_date_controle' => '',
  177 + 's_periode_controle1' => '',
  178 + 's_periode_controle2' => '',
  179 + ];
  180 +
  181 + //Test sans aucun champ
  182 + $this->get('/suivis/find');
  183 + $this->assertResponseContains("Aucun résultats pour cette recherche.", "Le contenu de la recherche devrait être vide.");
  184 +
  185 + //Test champ type suivi
  186 + $this->post('/suivis/find', $dataSearch);
  187 + $this->assertResponseContains("Résultats (2)", "Le nb de suivis pour la recherche par type de suivi est incorrecte.");
  188 +
  189 + //Test champ organisme
  190 + $dataSearch['s_type_suivi_id'] = '';
  191 + $dataSearch['s_organisme'] = 'Lorem ipsum';
  192 + $this->post('/suivis/find', $dataSearch);
  193 + $this->assertResponseContains("Résultats (1)", "Le nb de suivis pour la recherche par organisme est incorrecte.");
  194 +
  195 + //Test champ date_controle
  196 + $dataSearch['s_organisme'] = '';
  197 + $dataSearch['s_date_controle'] = '2016-04-19';
  198 + $this->post('/suivis/find', $dataSearch);
  199 + $this->assertResponseContains("Résultats (1)", "Le nb de suivis pour la recherche par date de controle est incorrecte.");
  200 +
  201 + //Test champ periode_controle1 (debut)
  202 + $dataSearch['s_date_controle'] = '';
  203 + $dataSearch['s_periode_controle1'] = '2017-01-01';
  204 + $this->post('/suivis/find', $dataSearch);
  205 + $this->assertResponseContains("Résultats (1)", "Le nb de suivis pour la recherche par debut de periode de controle est incorrecte.");
  206 +
  207 + //Test champ periode_acquisition1 (debut) && champ periode_acquisition2 (fin)
  208 + $dataSearch['s_periode_controle2'] = '2018-01-01';
  209 + $this->post('/suivis/find', $dataSearch);
  210 + $this->assertResponseContains("Aucun résultats pour cette recherche.", "Le nb de suivis pour la recherche par intervalle entre la periode de controle 1 (debut) et la periode de controle 2 (fin) est incorrecte.");
  211 +
  212 + //Test champ periode_acquisition2 (fin)
  213 + $dataSearch['s_periode_controle1'] = '';
  214 + $this->post('/suivis/find', $dataSearch);
  215 + $this->assertResponseContains("Résultats (1)", "Le nb de suivis pour la recherche par fin de periode de controle est incorrecte.");
  216 +
  217 + }
  218 +
  219 +
  220 + /**
  221 + * Test ACLIndexResponsable
  222 + *
  223 + * @return void
  224 + */
  225 + public function testACLIndexResponsable() {
  226 + $this->authUser();
  227 +
  228 + $this->get('/suivis/index?GM=1');
  229 + $this->assertResponseContains('Liste des suivis (2)', "La liste des suivi selon le groupe métier ne s'affiche pas correctement.");
  230 +
  231 +
  232 + }
  233 +
161 234 }
... ...
webroot/doc/userguide/ACL.html
1 1 <?xml version="1.0" encoding="UTF-8"?>
2   -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--><head profile="http://dublincore.org/documents/dcmi-terms/"><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/><title xml:lang="en-US">- no title specified</title><meta name="DCTERMS.title" content="" xml:lang="en-US"/><meta name="DCTERMS.language" content="en-US" scheme="DCTERMS.RFC4646"/><meta name="DCTERMS.source" content="http://xml.openoffice.org/odf2xhtml"/><meta name="DCTERMS.creator" content="Etienne Pallier"/><meta name="DCTERMS.issued" content="2014-01-21T19:49:00" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.modified" content="2016-06-06T15:49:21.807014772" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.provenance" content="" xml:lang="en-US"/><meta name="DCTERMS.subject" content="," xml:lang="en-US"/><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en"/><link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en"/><link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en"/><link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en"/><style type="text/css">
  2 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1 plus MathML 2.0//EN" "http://www.w3.org/Math/DTD/mathml2/xhtml-math11-f.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><!--This file was converted to xhtml by LibreOffice - see http://cgit.freedesktop.org/libreoffice/core/tree/filter/source/xslt for the code.--><head profile="http://dublincore.org/documents/dcmi-terms/"><meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8"/><title xml:lang="en-US">- no title specified</title><meta name="DCTERMS.title" content="" xml:lang="en-US"/><meta name="DCTERMS.language" content="en-US" scheme="DCTERMS.RFC4646"/><meta name="DCTERMS.source" content="http://xml.openoffice.org/odf2xhtml"/><meta name="DCTERMS.creator" content="Etienne Pallier"/><meta name="DCTERMS.issued" content="2014-01-21T19:49:00" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.modified" content="2016-06-24T15:39:15.489669761" scheme="DCTERMS.W3CDTF"/><meta name="DCTERMS.provenance" content="" xml:lang="en-US"/><meta name="DCTERMS.subject" content="," xml:lang="en-US"/><link rel="schema.DC" href="http://purl.org/dc/elements/1.1/" hreflang="en"/><link rel="schema.DCTERMS" href="http://purl.org/dc/terms/" hreflang="en"/><link rel="schema.DCTYPE" href="http://purl.org/dc/dcmitype/" hreflang="en"/><link rel="schema.DCAM" href="http://purl.org/dc/dcam/" hreflang="en"/><style type="text/css">
3 3 @page { }
4 4 table { border-collapse:collapse; border-spacing:0; empty-cells:show }
5 5 td, th { vertical-align:top; font-size:12pt;}
... ... @@ -12,103 +12,99 @@
12 12 span.annotation_style_by_filter { font-size:95%; font-family:Arial; background-color:#fff000; margin:0; border:0; padding:0; }
13 13 * { margin:0;}
14 14 .P1 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
15   - .P10 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
16   - .P11 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
17   - .P12 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
18   - .P13 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
19   - .P14 { font-size:12pt; font-family:Times; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
20   - .P15 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
21   - .P16 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
22   - .P17 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
23   - .P18 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
24   - .P19 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  15 + .P10 { font-size:10pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; }
  16 + .P11 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; }
  17 + .P12 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  18 + .P13 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  19 + .P14 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  20 + .P15 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  21 + .P16 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  22 + .P17 { font-size:12pt; font-family:Times; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  23 + .P18 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; margin-left:1.251cm; margin-right:0cm; text-indent:0cm; }
  24 + .P19 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
25 25 .P2 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
26   - .P20 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; }
27   - .P21 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
28   - .P22 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; }
29   - .P23 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; }
30   - .P24 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
31   - .P25 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
32   - .P26 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; }
33   - .P27 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
34   - .P28 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
35   - .P29 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  26 + .P22 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  27 + .P23 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  28 + .P25 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  29 + .P26 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  30 + .P28 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
  31 + .P29 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
36 32 .P3 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
37   - .P30 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
38   - .P31 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
39   - .P32 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
40   - .P33 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
41   - .P34 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
42   - .P35 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
43   - .P36 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  33 + .P30 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
  34 + .P31 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; }
  35 + .P33 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; }
  36 + .P34 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; }
  37 + .P35 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  38 + .P36 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  39 + .P37 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  40 + .P38 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  41 + .P39 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
44 42 .P4 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  43 + .P40 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; }
  44 + .P41 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-style:italic; font-weight:bold; }
  45 + .P42 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  46 + .P43 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; }
  47 + .P44 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  48 + .P45 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:normal; }
  49 + .P46 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  50 + .P47 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  51 + .P48 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
  52 + .P49 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
45 53 .P5 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  54 + .P51 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  55 + .P52 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  56 + .P53 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  57 + .P54 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  58 + .P55 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  59 + .P56 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  60 + .P57 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  61 + .P58 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  62 + .P59 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
46 63 .P6 { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
  64 + .P62 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
  65 + .P68 { font-size:11pt; font-family:Times New Roman; writing-mode:lr-tb; text-align:center ! important; font-weight:bold; }
47 66 .P7 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; font-weight:bold; }
48 67 .P8 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; }
49   - .P9 { font-size:10pt; font-family:Times New Roman; writing-mode:lr-tb; font-style:italic; font-weight:bold; }
  68 + .P9 { font-size:9pt; font-family:Times New Roman; writing-mode:lr-tb; }
50 69 .Standard { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
51 70 .Table_20_Contents { font-size:12pt; font-family:Times New Roman; writing-mode:lr-tb; }
52   - .Tableau1 { width:26.522cm; margin-left:-0.093cm; margin-right:auto;writing-mode:lr-tb; }
53   - .Tableau1_A1 { vertical-align:top; background-color:#cccccc; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:0,0035cm; border-top-style:solid; border-top-color:#000000; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
54   - .Tableau1_A2 { vertical-align:top; background-color:#e6e6e6; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
55   - .Tableau1_B2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
56   - .Tableau1_B3 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
57   - .Tableau1_B4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
58   - .Tableau1_B5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
59   - .Tableau1_B6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
60   - .Tableau1_B7 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
61   - .Tableau1_C2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
62   - .Tableau1_C3 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
63   - .Tableau1_C4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
64   - .Tableau1_D2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
65   - .Tableau1_D3 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
66   - .Tableau1_D6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
67   - .Tableau1_E2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
68   - .Tableau1_E4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
69   - .Tableau1_E5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
70   - .Tableau1_E6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
71   - .Tableau1_F2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
72   - .Tableau1_F3 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
73   - .Tableau1_F4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
74   - .Tableau1_G2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
75   - .Tableau1_G4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
76   - .Tableau1_H2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
77   - .Tableau1_H4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
78   - .Tableau1_H5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
79   - .Tableau1_I2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
80   - .Tableau1_I5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
81   - .Tableau1_I6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
82   - .Tableau1_J2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
83   - .Tableau1_J4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
84   - .Tableau1_J6 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
85   - .Tableau1_K2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
86   - .Tableau1_K4 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
87   - .Tableau1_K5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
88   - .Tableau1_L1 { vertical-align:top; background-color:#cccccc; padding:0.097cm; border-width:0,0035cm; border-style:solid; border-color:#000000; writing-mode:lr-tb; }
89   - .Tableau1_L2 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
90   - .Tableau1_L5 { vertical-align:top; padding:0.097cm; border-left-width:0,0035cm; border-left-style:solid; border-left-color:#000000; border-right-width:0,0035cm; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:0,0035cm; border-bottom-style:solid; border-bottom-color:#000000; writing-mode:lr-tb; }
91   - .Tableau1_A { width:1.937cm; }
92   - .Tableau1_B { width:2.318cm; }
93   - .Tableau1_C { width:2.544cm; }
94   - .Tableau1_D { width:2.828cm; }
95   - .Tableau1_E { width:1.836cm; }
96   - .Tableau1_F { width:1.734cm; }
97   - .Tableau1_G { width:2.066cm; }
98   - .Tableau1_H { width:2.766cm; }
99   - .Tableau1_I { width:2.748cm; }
100   - .Tableau1_J { width:1.466cm; }
101   - .Tableau1_K { width:1.487cm; }
102   - .Tableau1_L { width:2.794cm; }
  71 + .Tableau2 { width:27.25cm; float:none; writing-mode:lr-tb; }
  72 + .Tableau2_A1 { background-color:#cccccc; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-width:thin; border-top-style:solid; border-top-color:#000000; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  73 + .Tableau2_A2 { background-color:#dddddd; padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  74 + .Tableau2_C12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  75 + .Tableau2_C13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  76 + .Tableau2_C5 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  77 + .Tableau2_D12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  78 + .Tableau2_D13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  79 + .Tableau2_D4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  80 + .Tableau2_D9 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  81 + .Tableau2_E10 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  82 + .Tableau2_E11 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  83 + .Tableau2_E12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  84 + .Tableau2_E13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  85 + .Tableau2_E4 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  86 + .Tableau2_E7 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  87 + .Tableau2_F12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  88 + .Tableau2_F13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  89 + .Tableau2_F3 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  90 + .Tableau2_F8 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-style:none; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  91 + .Tableau2_G1 { background-color:#cccccc; padding:0.097cm; border-width:thin; border-style:solid; border-color:#000000; }
  92 + .Tableau2_G12 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  93 + .Tableau2_G13 { padding:0.097cm; border-left-width:thin; border-left-style:solid; border-left-color:#000000; border-right-width:thin; border-right-style:solid; border-right-color:#000000; border-top-style:none; border-bottom-width:thin; border-bottom-style:solid; border-bottom-color:#000000; }
  94 + .Tableau2_A { width:3.893cm; }
  95 + .Tableau2_G { width:3.893cm; }
103 96 .T1 { font-style:italic; font-weight:bold; }
104   - .T10 { font-size:9pt; font-style:italic; }
105   - .T11 { font-size:9pt; font-style:italic; font-weight:bold; }
106   - .T12 { font-size:9pt; font-weight:bold; }
107   - .T13 { font-size:9pt; }
108   - .T14 { font-size:9pt; }
109   - .T3 { font-weight:bold; }
  97 + .T13 { font-size:9pt; font-style:italic; }
  98 + .T14 { font-size:9pt; font-style:italic; font-weight:bold; }
  99 + .T15 { font-size:9pt; font-weight:bold; }
  100 + .T16 { font-size:9pt; }
  101 + .T17 { font-size:9pt; }
  102 + .T18 { font-size:9pt; }
  103 + .T25 { font-weight:normal; }
110 104 .T4 { font-weight:bold; }
111 105 .T5 { font-weight:bold; }
  106 + .T6 { font-weight:bold; }
  107 + .T7 { font-weight:bold; }
112 108 .WW8Num1z0 { font-family:Symbol; }
113 109 .WW8Num2z0 { font-family:Symbol; }
114 110 .WW8Num3z0 { font-family:Symbol; }
... ... @@ -118,5 +114,5 @@
118 114 .WW8Num7z0 { font-family:Symbol; }
119 115 .WW8Num8z0 { font-family:Symbol; font-size:9pt; font-weight:normal; }
120 116 <!-- ODF styles with no properties representable as CSS -->
121   - .Tableau1.1 .T15 .T16 .T2 .T6 .T7 .T8 .T9 .WW8Num8z1 .WW8Num8z2 .WW8Num8z3 .WW8Num8z4 .WW8Num8z5 .WW8Num8z6 .WW8Num8z7 .WW8Num8z8 .WW8Num9z0 .WW8Num9z1 .WW8Num9z2 .WW8Num9z3 .WW8Num9z4 .WW8Num9z5 .WW8Num9z6 .WW8Num9z7 .WW8Num9z8 { }
122   - </style></head><body dir="ltr" style="max-width:29.7cm;margin-top:1cm; margin-bottom:1cm; margin-left:1cm; margin-right:1.45cm; writing-mode:lr-tb; "><p class="P25">ACL (Access Control List)</p><p class="P26">(Etienne Pallier – 24/11/2014)</p><p class="P1"> </p><p class="P1"> </p><p class="P1"> </p><p class="P1">I – Cycle de vie du statut du matériel</p><p class="P1"> </p><p class="Standard"><span class="T4">Créer</span><span class="T2"> un matériel ==</span><span class="T7">&gt; passe alors en statut </span><span class="T5">CREATED ==&gt; </span><span class="T1">peut alors être éventuellement supprimé (mais ne pourra plus être supprimé ensuite)</span></p><p class="Standard"><span class="T5">Valider</span><span class="T7"> un matériel CREATED ==&gt; passe alors en statut </span><span class="T5">VALIDATED </span><span class="T7">(admin only)</span></p><p class="P4"><span class="T5">Demander l'Archivage</span><span class="T7"> d'un materiel VALIDATED ==&gt; passe alors en statut </span><span class="T5">TOBEARCHIVED</span><span class="T7"> (resp et admin only)</span></p><p class="P4"><span class="T5">Sortir</span><span class="T7"> de l'inventaire (Valider une demande d'archivage d'un matériel TOBEARCHIVED) ==&gt; statut </span><span class="T5">ARCHIVED</span><span class="T7"> (admin only)</span></p><p class="P4"><span class="T5">Désarchiver</span><span class="T7"> un matériel ==&gt; repasse de TOBEARCHIVED ou ARCHIVED à </span><span class="T5">VALIDATED</span><span class="T7"> (admin only) </span></p><p class="P4"> </p><p class="P5">En résumé : TODO (schéma)</p><p class="P4"> </p><p class="P3">CREATED ==&gt;  VALIDATED ==&gt;  TOBEARCHIVED ==&gt;  ARCHIVED</p><p class="P2"><span class="T9">     </span><span class="T6">I                        /\                        I                                I</span></p><p class="P2"><span class="T9">    </span><span class="T6">V                                    I ------------------------        I ---------------------------------        I (adminplus only)</span></p><p class="P3">DELETED</p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P1">II - Droits des utilisateurs selon leur profil</p><p class="P1"> </p><p class="P1">A – Globalement (principes généraux)</p><p class="P1"> </p><p class="P6">Un utilisateur non logué ne doit RIEN pouvoir faire. Seulement se loguer, c'est tout. Il n'a accès qu'à la page d'accueil (de login).</p><p class="P6">Une fois logué, un utilisateur a des droits différents selon son profil, globalement :</p><p class="P11"><span class="T2">- un </span><span class="T4">USER</span><span class="T2"> ne peut que créer un matériel, un suivi, ou un emprunt, consulter, et modifier (uniquement ce qu'il a créé lui-même)</span></p><p class="P11"><span class="T2">- un </span><span class="T4">RESPONSABLE</span><span class="T2"> a tous les droits sauf accès à certains champs et certaines vues réservées à l'administration (ADMIN). Il ne peut pas non plus archiver un matériel, mais seulement demander l'archivage (comme un USER)</span></p><p class="P11"><span class="T2">- un </span><span class="T4">ADMIN</span><span class="T2">(istratif) a tous les droits (y-compris champs réservés à l'administration)</span></p><p class="P11"><span class="T2">- un </span><span class="T4">ADMINPLUS</span><span class="T2"> (administratif Plus) a tous les droits de ADMIN et en plus il peut modifier un matériel quelque soit son statut (y-compris TOBEARCHIVED et ARCHIVED), notamment il peut modifier le statut du matériel (pour le rétrograder)</span></p><p class="P11"><span class="T2">- un </span><span class="T4">SUPERADMIN</span><span class="T2"> a tous les droits : ceux d'ADMINPLUS et certains droits supplémentaires pour lui permettre des corrections d'erreur et la configuration de l'application (notamment l'administration des utilisateurs...)</span></p><p class="P12"> </p><p class="Standard"><span class="T2">Concernant les informations internes permettant de savoir </span><span class="T4">qui a fait quoi</span><span class="T2"> (mises en place en février 2014), elles ne sont bien sûr pas modifiables puisque gérées automatiquement par le système, mais sont visibles par tous excepté le profil USER.</span></p><p class="P1"/><p class="P7">B - sur la table MATERIEL</p><p class="P7"> </p><p class="P7"> </p><table border="0" cellspacing="0" cellpadding="0" class="Tableau1"><colgroup><col width="85"/><col width="101"/><col width="111"/><col width="124"/><col width="80"/><col width="76"/><col width="90"/><col width="121"/><col width="120"/><col width="64"/><col width="65"/><col width="122"/></colgroup><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A1"><p class="P17"> </p></td><td style="text-align:left;width:2.318cm; " class="Tableau1_A1"><p class="P19">Read (un seul ou une liste)</p><p class="P19"> </p><p class="P19">(view ou index)</p></td><td style="text-align:left;width:2.544cm; " class="Tableau1_A1"><p class="P19">Create (1)</p><p class="P19"> </p><p class="P19">(add)</p></td><td style="text-align:left;width:2.828cm; " class="Tableau1_A1"><p class="P19">Update (1)</p><p class="P19"> </p><p class="P19">(edit)</p></td><td style="text-align:left;width:1.836cm; " class="Tableau1_A1"><p class="P19">Delete</p><p class="P19"> </p><p class="P19">(delete)</p></td><td style="text-align:left;width:1.734cm; " class="Tableau1_A1"><p class="P19">Valider</p><p class="P19"> </p><p class="P19">(statusValidated)</p></td><td style="text-align:left;width:2.066cm; " class="Tableau1_A1"><p class="P19">Demander archivage</p><p class="P19"> </p><p class="P19">(statusToBeArchived)</p></td><td style="text-align:left;width:2.766cm; " class="Tableau1_A1"><p class="P19">Sortir de l'inventaire</p><p class="P19"> </p><p class="P19"><span class="T9"> </span>(statusArchived)</p></td><td style="text-align:left;width:2.748cm; " class="Tableau1_A1"><p class="P19">Desarchiver (2)</p></td><td style="text-align:left;width:1.466cm; " class="Tableau1_A1"><p class="P19">Exporter</p><p class="P19"> </p><p class="P19">(csv)</p><p class="P19"> </p></td><td style="text-align:left;width:1.487cm; " class="Tableau1_A1"><p class="P19">Montee de statut groupee (3)</p><p class="P19"> </p><p class="P19">(execActions)</p></td><td style="text-align:left;width:2.794cm; " class="Tableau1_L1"><p class="P19">Edition (4)</p><p class="P19"> </p><p class="P19">DOCUMENTS</p><p class="P19">entree &amp; sortie</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P21">ALL (TOUS)</p><p class="P21"> </p><p class="P19">(droits par defaut)</p></td><td style="text-align:left;width:2.318cm; " class="Tableau1_B2"><p class="P19">Y</p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="Table_20_Contents"><span class="T11">champs caches:</span><span class="T10"> donnees admin</span></p></td><td style="text-align:left;width:2.544cm; " class="Tableau1_C2"><p class="P19">Y</p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="P22"> </p><p class="Table_20_Contents"><span class="T11">champs caches</span><span class="T10">:</span></p><p class="P22">donnees admin + statut + etiquette </p></td><td style="text-align:left;width:2.828cm; " class="Tableau1_D2"><p class="P19">Y</p><p class="P23">ssi</p><p class="Table_20_Contents"><span class="T12">CREATED</span><span class="T13"> (tous les champs) </span></p><p class="Table_20_Contents"><span class="T10">ou </span><span class="T11">VALIDATED</span><span class="T10"> (quelques champs visibles sont </span><span class="T11">readonly</span><span class="T10">) (1)</span></p><p class="P22"> </p><p class="Table_20_Contents"><span class="T11">champs caches</span><span class="T10">:</span></p><p class="P22">donnees admin + statut + etiquette</p></td><td style="text-align:left;width:1.836cm; " class="Tableau1_E2"><p class="P19">Y</p><p class="P21">ssi CREATED</p></td><td style="text-align:left;width:1.734cm; " class="Tableau1_F2"><p class="P19">N</p><p class="P21"> </p><p class="P21">(resp+)</p></td><td style="text-align:left;width:2.066cm; " class="Tableau1_G2"><p class="P19">N</p><p class="P21"> </p><p class="P21">(resp+)</p></td><td style="text-align:left;width:2.766cm; " class="Tableau1_H2"><p class="P19">N</p><p class="P21"> </p><p class="P21">(admin+)</p></td><td style="text-align:left;width:2.748cm; " class="Tableau1_I2"><p class="P19">N</p><p class="P21"> </p><p class="P21">(adminplus+)</p></td><td style="text-align:left;width:1.466cm; " class="Tableau1_J2"><p class="P19">N</p><p class="P19"> </p><p class="P21">(resp+)</p></td><td style="text-align:left;width:1.487cm; " class="Tableau1_K2"><p class="P19">N</p><p class="P19"> </p><p class="P21">(admin+)</p></td><td style="text-align:left;width:2.794cm; " class="Tableau1_L2"><p class="P19">N</p><p class="P19"> </p><p class="P21">(admin+)</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="Table_20_Contents"><span class="T12">User </span><span class="T13">(quelconque)</span></p></td><td style="text-align:left;width:2.318cm; " class="Tableau1_B3"><p class="P24">idem ALL</p></td><td style="text-align:left;width:2.544cm; " class="Tableau1_C3"><p class="P24">Idem ALL</p><p class="Table_20_Contents"><span class="T11">champs readonly </span><span class="T10">:</span></p><p class="P22">nom_responsable</p></td><td colspan="2" style="text-align:left;width:2.828cm; " class="Tableau1_D3"><p class="P24">idem ALL</p><p class="P16"><span class="T13">ssi </span><span class="T12">createur</span></p></td><td colspan="7" style="text-align:left;width:1.734cm; " class="Tableau1_F3"><p class="P24">idem ALL</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P18">Responsable</p></td><td style="text-align:left;width:2.318cm; " class="Tableau1_B4"><p class="P24">idem ALL</p></td><td colspan="2" style="text-align:left;width:2.544cm; " class="Tableau1_C4"><p class="P24">idem ALL</p><p class="P24">(+ etiquette)</p></td><td style="text-align:left;width:1.836cm; " class="Tableau1_E4"><p class="P24">idem ALL</p></td><td style="text-align:left;width:1.734cm; " class="Tableau1_F4"><p class="P24">Y</p><p class="P21">ssi</p><p class="P21">CREATED</p><p class="P24"> </p></td><td style="text-align:left;width:2.066cm; " class="Tableau1_G4"><p class="P24">Y</p><p class="P21">ssi</p><p class="P21">VALIDATED</p></td><td colspan="2" style="text-align:left;width:2.766cm; " class="Tableau1_H4"><p class="P24">idem ALL</p></td><td style="text-align:left;width:1.466cm; " class="Tableau1_J4"><p class="P24">Y</p></td><td colspan="2" style="text-align:left;width:1.487cm; " class="Tableau1_K4"><p class="P24">idem ALL</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P18">Admin</p></td><td colspan="3" style="text-align:left;width:2.318cm; " class="Tableau1_B5"><p class="P16"><span class="T13">(idem Responsable </span><span class="T12">+  donnees admin</span><span class="T13">)</span></p><p class="P24"> </p><p class="P16"><span class="T10">En mode edit (update), si VALIDATED, on ajoute aux donnees </span><span class="T11">readonly</span><span class="T10"> les </span><span class="T11">donnees admin</span></p><p class="P24"> </p><p class="P22"> </p></td><td colspan="3" style="text-align:left;width:1.836cm; " class="Tableau1_E5"><p class="P24">idem Responsable</p></td><td style="text-align:left;width:2.766cm; " class="Tableau1_H5"><p class="P24">Y</p><p class="P21">ssi</p><p class="P21">TOBEARCHIVED</p></td><td colspan="2" style="text-align:left;width:2.748cm; " class="Tableau1_I5"><p class="P24">idem Responsable</p></td><td style="text-align:left;width:1.487cm; " class="Tableau1_K5"><p class="P24">Y</p></td><td style="text-align:left;width:2.794cm; " class="Tableau1_L5"><p class="P24">Y</p><p class="P20">- admission : ssi VALIDATED</p><p class="P20">- sortie : ssi TOBEARCHIVED ou ARCHIVED</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P18">Adminplus</p></td><td colspan="2" style="text-align:left;width:2.318cm; " class="Tableau1_B6"><p class="P24">idem Admin</p></td><td style="text-align:left;width:2.828cm; " class="Tableau1_D6"><p class="P24">idem Admin</p><p class="P16"><span class="T13">(</span><span class="T12">tous les statuts</span><span class="T13">)</span></p><p class="P16"><span class="T13">(+ champ </span><span class="T12">statut</span><span class="T13">)</span></p><p class="P16"> </p><p class="P16"><span class="T13">TOBEARCHIVED ou ARCHIVED: </span><span class="T12">seulement le statut</span></p></td><td colspan="4" style="text-align:left;width:1.836cm; " class="Tableau1_E6"><p class="P24">idem Admin</p></td><td style="text-align:left;width:2.748cm; " class="Tableau1_I6"><p class="P24">Y</p><p class="P21">ssi</p><p class="P21">ARCHIVED ou</p><p class="P21">TOBEARCHIVED</p></td><td colspan="3" style="text-align:left;width:1.466cm; " class="Tableau1_J6"><p class="P24">idem Admin</p></td></tr><tr class="Tableau11"><td style="text-align:left;width:1.937cm; " class="Tableau1_A2"><p class="P18">Superadmin</p></td><td colspan="11" style="text-align:left;width:2.318cm; " class="Tableau1_B7"><p class="P24">idem Adminplus</p></td></tr></table><p class="P6"> </p><p class="P9">Par défaut, le superadmin a TOUS les droits</p><p class="P9"> </p><p class="Standard"><span class="T12">Conventions d'écriture </span><span class="T13">: </span></p><p class="P11"><span class="T13">- r</span><span class="T12">esp+</span><span class="T13"> = possible pour un </span><span class="T12">Responsable et plus </span><span class="T13">(responsable, admin, adminplus, et superadmin)</span></p><p class="P11"><span class="T13">- </span><span class="T12">admin+</span><span class="T13"> = possible pour un </span><span class="T12">Admin</span><span class="T13"> </span><span class="T12">et plus </span><span class="T13">(admin, adminplus, et superadmin)</span></p><p class="P13">- ...</p><p class="P13"> </p><p class="Standard"><span class="T12">Notes </span><span class="T13">:</span></p><p class="P8"> </p><ol><li><p class="P27" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(1)</span><span class="T12">Droits en modification (edit) </span><span class="T13">:</span><span class="odfLiEnd"/> </p></li></ol><p class="P13">- Un simple « user » ne doit pas pouvoir modifier le responsable, ni le statut, ni l'étiquette, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P13">- Un  «responsable » ne doit pas pouvoir modifier le statut, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P13">- Les données admin ne sont accessibles qu'aux profils admin+</p><p class="P11"><span class="T13">- Le champ "</span><span class="T12">status</span><span class="T13">" n'est modifiable que par les profils adminplus+</span></p><p class="P11"><span class="T13">- Tout le monde peut modifier un matériel </span><span class="T12">VALIDATED </span><span class="T13">(</span><span class="T12">user </span><span class="T13">ne peut modifier que </span><span class="T12">ses</span><span class="T13"> matériels),</span></p><p class="P11"><span class="T13">MAIS PAS</span><span class="T12"> certains champs</span><span class="T13"> qui sont </span><span class="T12">readonly</span><span class="T13"> (</span><span class="T14">sur_categorie_id', 'categorie_id', 'materiel_administratif', 'materiel_technique', 'date_acquisition', 'nom_responsable', 'fournisseur', 'organisme', 'prix_ht')</span></p><p class="P11"><span class="T13">Les seuls champs qu'on peut éditer sont donc : (</span><span class="T14">designation, sous_categorie, materiel_administratif, materiel_technique, description, etiquette, lieu_stockage, lieu_detail, numero_serie, groupes_thematique, groupes_metier),</span><span class="T13"><br/>- Seuls les profils </span><span class="T12">adminplus+</span><span class="T13"> peuvent modifier un matériel </span><span class="T12">TOBEARCHIVED, ou ARCHIVED </span><span class="T13">mais </span><span class="T12">UNIQUEMENT le champ "status" </span><span class="T13">(pour pouvoir rétrograder à CREATED ou VALIDATED)</span></p><p class="P11"><span class="T13">- Le seul moyen de modifier COMPLÈTEMENT un matériel VALIDATED, TOBEARCHIVED, ou ARCHIVED, <br/>c'est de </span><span class="T12">changer son statut</span><span class="T13">, en le rétrogradant à CREATED (seuls les profils adminplus+ peuvent le faire)</span></p><p class="P13"> </p><ol><li><p class="P27" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(2)</span><span class="T12">Désarchiver </span><span class="T13">: consiste à rétrograder un matériel ARCHIVED ou TOBEARCHIVED dans le statut VALIDATED ou CREATED (adminplus+ only) ; utile en cas d'erreur</span><span class="odfLiEnd"/> </p></li></ol><p class="P8"> </p><ol><li><p class="P27" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(3)</span><span class="T12">Montée de statut groupée : </span><span class="T13">seul ADMIN peut (exporter tout ou partie de la liste des matériels, et) </span><span class="T12">augmenter (+1) le statut d'un groupe de matériels</span><span class="T13">, depuis la vue « index » (vue spéciale pour ADMIN, avec des cases à cocher et boutons pour exporter ou faire évoluer le statut)</span><span class="odfLiEnd"/> </p></li></ol><p class="P8"> </p><ol><li><p class="P28" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(4)</span>Edition des documents :<span class="odfLiEnd"/> </p></li></ol><p class="P13">Admission : quand on "VALIDE" un matériel "CREATED", le statut passe en VALIDATED et le document d'admission est automatiquement édité</p><p class="P13">Sortie : quand on "ARCHIVE" un document "TOBEARCHIVED", le statut passe en ARCHIVED et le document de sortie est automatiquement édité</p><p class="P13">De plus :</p><p class="P13">- Bouton "Doc admission" affiché à partir du statut "VALIDATED"</p><p class="P13">- Bouton "Doc Sortie" affiché à partir du statut TOBEARCHIVED (et donc aussi pour ARCHIVED)</p><p class="P13">Enfin, Le doc de sortie doit être couplée avec la liste des matériels a archiver (TOBEARCHIVED) quand il y a une demande de sortie.</p><p class="P13"> </p><p class="P14"> </p><p class="P1">C - sur les différentes VUES liées au matériel</p><p class="Standard"> </p><p class="P6"><span class="T3">Page accueil </span>:</p><p class="P6"><span> Administration <span class="T16">&amp; Administration Plus </span>voit un menu avec 2 options :</span></p><ul><li><ul><li><ul><li><p class="P29" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à valider »<span class="odfLiEnd"/> </p></li><li><p class="P29" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à sortir de l'inventaire »<span class="odfLiEnd"/> </p></li></ul></li></ul></li></ul><p class="P6"> </p><p class="P1">Page Outils :</p><p class="P6">User n'a pas accès à cette page</p><p class="P6">Les autres ont quelques options</p><p class="P6">superadmin a ces options en plus :</p><ul><li><p class="P30" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Configuration générale de l'application<span class="odfLiEnd"/> </p></li><li><p class="P30" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Gérer les utilisateurs <span class="T16">privilégiés</span><span class="odfLiEnd"/> </p></li><li><p class="P30" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode debug<span class="odfLiEnd"/> </p></li><li><p class="P31" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode install<span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="Standard"><span class="T4">Vue materiel/index (liste) </span><span class="T2">: limiter aux </span><span class="T4">matériels actifs</span><span class="T2"> (non archivés)</span></p><ul><li><ul><li><p class="P32" style="margin-left:0cm;"><span class="WW8Num1z0" style="display:block;float:left;min-width:0,635cm;">.</span>Admin<span class="T16">+ </span>voit des boutons pour filtrer par « tous », « à valider », « validés », « à sortir », « archivés »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P6"> </p><p class="Standard"><span class="T4">Vue materiel/find </span><span class="T2">: limiter aux </span><span class="T4">matériels actifs</span><span class="T2"> (non archivés)</span></p><p class="P6"><span> Seul le<span class="T16">s</span> profil<span class="T16">s</span> Admin<span class="T16">+ </span>voit TOUS les matériels (y-compris archivés)</span></p><p class="P6"> </p><p class="P6"><span class="T3">Vue materiel/view </span>:</p><p class="P6"><span> boutons « Imprimer Etiquettes » : <span class="T16">resp+</span></span></p><p class="P6"> </p><p class="P6"><span class="T3">Vue materiel/edit </span>:</p><ul><li><p class="P33" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Etiquette O/N (admin<span class="T16">+)</span><span class="odfLiEnd"/> </p></li><li><p class="P33" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Statut (<span class="T16">superadmin+)</span><span class="odfLiEnd"/> </p></li><li><p class="P33" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Informations administratives (admin<span class="T16">+)</span><span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="P6"> </p><p class="P1"> </p><p class="P15">D - sur un SUIVI et un EMPRUNT</p><p class="P1"> </p><ul><li><p class="P34" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Dans tous les cas, on ne doit pas pouvoir emprunter ou suivre un materiel non validé (CREATED)<span class="odfLiEnd"/> </p></li><li><p class="P34" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>User a les droits C, R, U (si créateur), D (si créateur)<span class="odfLiEnd"/> </p></li><li><p class="P34" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Resp+ a les droits C, R, U, D<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T7">Un USER peut modifier/supprimer un emprunt dont il est soit le créateur soit l'emprunteur</span><span class="T15">.</span></p><p class="P10">Un USER qui créé un emprunt ne doit pas pouvoir changer le nom de l'emprunteur (par défaut, c'est lui). Ainsi, il pourra modifier/supprimer cette fiche au besoin plus tard. Par défaut donc, pour un user, emprunt.emprunteur=creator, materiel.responsable=creator</p><p class="P5"> </p><p class="P5"> </p><p class="P3">E - sur les UTILISATEURS</p><p class="P4"><span class="T7">Par défaut, superadmin a tous les droits, et les autres profils n'ont que le droit de lecture (</span><span class="T5">view </span><span class="T7">et </span><span class="T5">index</span><span class="T7">)</span></p><p class="P5"> </p><p class="P5"> </p><p class="P3">F - sur tous les autres objets métiers</p><p class="P5">Voici la liste des autres objets métiers :</p><ul><li><p class="P35" style="margin-left:0cm;"><span class="WW8Num7z0" style="display:block;float:left;min-width:0,635cm;">.</span>Catégories (et domaines et sous-catégories)<span class="odfLiEnd"/> </p></li></ul><ul><li><p class="P36" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes thématiques<span class="odfLiEnd"/> </p></li><li><p class="P36" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes métiers<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T7">Par défaut, pour tous ces objets, superadmin a tous les droits, admin</span><span class="T8">plus</span><span class="T7"> a tous les droits sauf « delete », et les autres profils n'ont que le droit de lecture (</span><span class="T5">view </span><span class="T7">et </span><span class="T5">index</span><span class="T7">)</span></p></body></html>
123 117 \ No newline at end of file
  118 + .Tableau2.13 .T10 .T11 .T12 .T19 .T2 .T20 .T21 .T22 .T23 .T24 .T3 .T8 .T9 .WW8Num8z1 .WW8Num8z2 .WW8Num8z3 .WW8Num8z4 .WW8Num8z5 .WW8Num8z6 .WW8Num8z7 .WW8Num8z8 .WW8Num9z0 .WW8Num9z1 .WW8Num9z2 .WW8Num9z3 .WW8Num9z4 .WW8Num9z5 .WW8Num9z6 .WW8Num9z7 .WW8Num9z8 { }
  119 + </style></head><body dir="ltr" style="max-width:29.7cm;margin-top:1cm; margin-bottom:1cm; margin-left:1cm; margin-right:1.45cm; writing-mode:lr-tb; "><p class="P46">ACL (Access Control List)</p><p class="P11">(Etienne Pallier – 24/<span class="T22">06</span>/201<span class="T23">6</span>)</p><p class="P1"> </p><p class="P1"> </p><p class="P1"> </p><p class="P1">I – Cycle de vie du statut du matériel</p><p class="P1"> </p><p class="Standard"><span class="T5">Créer</span><span class="T2"> un matériel ==</span><span class="T9">&gt; passe alors en statut </span><span class="T7">CREATED ==&gt; </span><span class="T1">peut alors être éventuellement supprimé (mais ne pourra plus être supprimé ensuite)</span></p><p class="Standard"><span class="T7">Valider</span><span class="T9"> un matériel CREATED ==&gt; passe alors en statut </span><span class="T7">VALIDATED </span><span class="T9">(</span><span class="T11">resp et </span><span class="T9">admin only)</span></p><p class="P4"><span class="T7">Demander l'Archivage</span><span class="T9"> d'un materiel VALIDATED ==&gt; passe alors en statut </span><span class="T7">TOBEARCHIVED</span><span class="T9"> (resp et admin only)</span></p><p class="P4"><span class="T7">Sortir</span><span class="T9"> de l'inventaire (Valider une demande d'archivage d'un matériel TOBEARCHIVED) ==&gt; statut </span><span class="T7">ARCHIVED</span><span class="T9"> (admin only)</span></p><p class="P4"><span class="T7">Désarchiver</span><span class="T9"> un matériel ==&gt; repasse de TOBEARCHIVED ou ARCHIVED à </span><span class="T7">VALIDATED</span><span class="T9"> (admin only) </span></p><p class="P4"> </p><p class="P5">En résumé : </p><p class="P4"> </p><p class="P3">CREATED ==&gt;  VALIDATED ==&gt;  TOBEARCHIVED ==&gt;  ARCHIVED</p><p class="P2"><span class="T12">     </span><span class="T8">I                        /\                        I                                I</span></p><p class="P2"><span class="T12">    </span><span class="T8">V                                    I ------------------------        I ---------------------------------        I (adminplus only)</span></p><p class="P3">DELETED</p><p class="P2"> </p><p class="P2"> </p><p class="P2"> </p><p class="P1">II - Droits des utilisateurs selon leur profil</p><p class="P1"> </p><p class="P1">A – Globalement (principes généraux)</p><p class="P1"> </p><p class="P6">Un utilisateur non logué ne doit RIEN pouvoir faire. Seulement se loguer, c'est tout. Il n'a accès qu'à la page d'accueil (de login).</p><p class="P6">Une fois logué, un utilisateur a des droits différents selon son profil, globalement :</p><p class="P14"><span class="T2">- un </span><span class="T5">USER</span><span class="T2"> ne peut que créer un matériel, un suivi, ou un emprunt, consulter, et modifier (uniquement ce qu'il a créé lui-même)</span></p><p class="P18"><span class="T2">- un </span><span class="T5">RESPONSABLE</span><span class="T2"> a tous les droits sauf accès à certains champs et certaines vues réservées à l'administration (ADMIN). Il ne peut pas non plus archiver un matériel, mais seulement demander l'archivage (comme un USER)(uniquement ce </span><span class="T3">lié à son groupe métier ou thématiques</span><span class="T2">)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">ADMIN</span><span class="T2">(istratif) a tous les droits (y-compris champs réservés à l'administration)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">ADMINPLUS</span><span class="T2"> (administratif Plus) a tous les droits de ADMIN et en plus il peut modifier un matériel quelque soit son statut (y-compris TOBEARCHIVED et ARCHIVED), notamment il peut modifier le statut du matériel (pour le rétrograder)</span></p><p class="P14"><span class="T2">- un </span><span class="T5">SUPERADMIN</span><span class="T2"> a tous les droits : ceux d'ADMINPLUS et certains droits supplémentaires pour lui permettre des corrections d'erreur et la configuration de l'application (notamment l'administration des utilisateurs...)</span></p><p class="P15"> </p><p class="Standard"><span class="T2">Concernant les informations internes permettant de savoir </span><span class="T5">qui a fait quoi</span><span class="T2"> (mises en place en février 2014), elles ne sont bien sûr pas modifiables puisque gérées automatiquement par le système, mais sont visibles par tous excepté le profil USER.</span></p><p class="P1"/><p class="P7">B - sur la table MATERIEL</p><table border="0" cellspacing="0" cellpadding="0" class="Tableau2"><colgroup><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/><col width="170"/></colgroup><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="Table_20_Contents"> </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P41">ALL (TOUS)</p><p class="P43">(droits par defaut)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P40"><span class="T5">U</span><span class="T6">tilisateur </span><span class="T5"> </span><span class="T2">(quelconque)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Responsable</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_A1"><p class="P42">Administration Plus</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_G1"><p class="P42">Super-Administrateur</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Read (un seul ou une liste)</p><p class="P45">(view ou index)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">Y</p><p class="Table_20_Contents"><span class="T14">champs caches:</span><span class="T13"> donnees admin</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E4"><p class="P23"><span class="T16">(idem Responsable </span><span class="T15">+  donnees admin</span><span class="T16">)</span></p><p class="P37"> </p><p class="P23"><span class="T13">En mode edit (update), si VALIDATED, on ajoute aux donnees </span><span class="T14">readonly</span><span class="T13"> les </span><span class="T14">donnees admin</span></p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_F3"><p class="P37">idem Admin</p></td><td rowspan="11" style="text-align:left;width:3.893cm; " class="Tableau2_G12"><p class="P37">idem Adminplus</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Create (1)</p><p class="P45">(add)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P36">Idem ALL</p><p class="P39"><span class="T14">champs readonly </span><span class="T13">:</span></p><p class="P34">nom_responsable</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D4"><p class="P36">idem ALL</p><p class="P36">(+ etiquette)</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Update (1)</p><p class="P45">(edit)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P33">ssi</p><p class="P39"><span class="T15">CREATED</span><span class="T16"> (tous les champs) </span></p><p class="P39"><span class="T13">ou </span><span class="T14">VALIDATED</span><span class="T13"> (quelques champs visibles sont </span><span class="T14">readonly</span><span class="T13">) (1)</span></p><p class="P34"> </p><p class="P39"><span class="T14">champs caches</span><span class="T13">:</span></p><p class="P34">donnees admin + statut + etiquette</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_C5"><p class="P36">idem ALL</p><p class="P22"><span class="T16">ssi </span><span class="T15">createur</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem Admin</p><p class="P23"><span class="T16">(</span><span class="T15">tous les statuts</span><span class="T16">)</span></p><p class="P23"><span class="T16">(+ champ </span><span class="T15">statut</span><span class="T16">)</span></p><p class="P23"> </p><p class="P23"><span class="T16">TOBEARCHIVED ou ARCHIVED: </span><span class="T15">seulement le statut</span></p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Delete</p><p class="P45">(delete)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">Y</p><p class="P29">ssi CREATED</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">idem ALL</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_E7"><p class="P37">idem Responsable</p></td><td rowspan="4" style="text-align:left;width:3.893cm; " class="Tableau2_F8"><p class="P37">idem Admin</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Valider</p><p class="P45">(statusValidated)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td><td rowspan="7" style="text-align:left;width:3.893cm; " class="Tableau2_C12"><p class="P36">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">CREATED</p><p class="P37"> </p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Demander archivage</p><p class="P45">(statusToBeArchived)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P25">N</p><p class="P28">(resp+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">VALIDATED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Sortir de l'inventaire</p><p class="P45"><span class="T12"> </span>(statusArchived)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D9"><p class="P37">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P35">Y</p><p class="P28">ssi</p><p class="P28">TOBEARCHIVED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Desarchiver (2)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(adminplus+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_E10"><p class="P37">idem Responsable</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p><p class="P30">ssi</p><p class="P30">ARCHIVED ou</p><p class="P30">TOBEARCHIVED</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Exporter</p><p class="P45">(csv)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(resp+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P37">Y</p></td><td rowspan="3" style="text-align:left;width:3.893cm; " class="Tableau2_F12"><p class="P37">idem Admin</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Montee de statut group<span class="T24">é</span>e</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P26">N</p><p class="P29">(admin+)</p></td><td rowspan="2" style="text-align:left;width:3.893cm; " class="Tableau2_D12"><p class="P37">idem ALL</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E11"><p class="P38">Y</p></td></tr><tr><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P44">Edition (4)</p><p class="P44">DOCUMENTS</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P26">N</p><p class="P29">(admin+)</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E12"><p class="P37">Y</p><p class="P31">- admission : ssi VALIDATED</p><p class="P31">- sortie : ssi TOBEARCHIVED ou ARCHIVED</p></td></tr><tr class="Tableau213"><td style="text-align:left;width:3.893cm; " class="Tableau2_A2"><p class="P68">Fiche Matériel </p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_C13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_D13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_E13"><p class="P62">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_F13"><p class="P49">Y</p></td><td style="text-align:left;width:3.893cm; " class="Tableau2_G13"><p class="P49">Y <span class="T25">(sans partie admin)</span></p></td></tr></table><p class="P7"> </p><p class="P7"> </p><p class="P6"> </p><p class="P10">Par défaut, le superadmin a TOUS les droits</p><p class="P10"> </p><p class="Standard"><span class="T15">Conventions d'écriture </span><span class="T16">: </span></p><p class="P14"><span class="T16">- r</span><span class="T15">esp+</span><span class="T16"> = possible pour un </span><span class="T15">Responsable et plus </span><span class="T16">(responsable, admin, adminplus, et superadmin)</span></p><p class="P14"><span class="T16">- </span><span class="T15">admin+</span><span class="T16"> = possible pour un </span><span class="T15">Admin</span><span class="T16"> </span><span class="T15">et plus </span><span class="T16">(admin, adminplus, et superadmin)</span></p><p class="P16">- ...</p><p class="P16"> </p><p class="Standard"><span class="T15">Notes </span><span class="T16">:</span></p><p class="P9"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(1)</span><span class="T15">Droits en modification (edit) </span><span class="T16">:</span><span class="odfLiEnd"/> </p></li></ol><p class="P16">- Un simple « user » ne doit pas pouvoir modifier le responsable, ni le statut, ni l'étiquette, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Un  «responsable » ne doit pas pouvoir modifier le statut, ni les données admin d'un matériel (en mode Création comme Modification)</p><p class="P16">- Les données admin ne sont accessibles qu'aux profils admin+</p><p class="P14"><span class="T16">- Le champ "</span><span class="T15">status</span><span class="T16">" n'est modifiable que par les profils adminplus+</span></p><p class="P14"><span class="T16">- Tout le monde peut modifier un matériel </span><span class="T15">VALIDATED </span><span class="T16">(</span><span class="T15">user </span><span class="T16">ne peut modifier que </span><span class="T15">ses</span><span class="T16"> matériels, </span><span class="T17">resp ne peut modifier que les matériels de son groupe thématique ou métier</span><span class="T16">),</span></p><p class="P14"><span class="T16">MAIS PAS</span><span class="T15"> certains champs</span><span class="T16"> qui sont </span><span class="T15">readonly</span><span class="T16"> (</span><span class="T18">sur_categorie_id', 'categorie_id', 'materiel_administratif', 'materiel_technique', 'date_acquisition', 'nom_responsable', 'fournisseur', 'organisme', 'prix_ht')</span></p><p class="P14"><span class="T16">Les seuls champs qu'on peut éditer sont donc : (</span><span class="T18">designation, sous_categorie, materiel_administratif, materiel_technique, description, etiquette, lieu_stockage, lieu_detail, numero_serie, groupes_thematique, groupes_metier),</span><span class="T16"><br/>- Seuls les profils </span><span class="T15">adminplus+</span><span class="T16"> peuvent modifier un matériel </span><span class="T15">TOBEARCHIVED, ou ARCHIVED </span><span class="T16">mais </span><span class="T15">UNIQUEMENT le champ "status" </span><span class="T16">(pour pouvoir rétrograder à CREATED ou VALIDATED)</span></p><p class="P14"><span class="T16">- Le seul moyen de modifier COMPLÈTEMENT un matériel VALIDATED, TOBEARCHIVED, ou ARCHIVED, <br/>c'est de </span><span class="T15">changer son statut</span><span class="T16">, en le rétrogradant à CREATED (seuls les profils adminplus+ peuvent le faire)</span></p><p class="P16"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(2)</span><span class="T15">Désarchiver </span><span class="T16">: consiste à rétrograder un matériel ARCHIVED ou TOBEARCHIVED dans le statut VALIDATED ou CREATED (adminplus+ only) ; utile en cas d'erreur</span><span class="odfLiEnd"/> </p></li></ol><p class="P8"> </p><ol><li><p class="P47" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(3)</span><span class="T15">Montée de statut groupée : </span><span class="T16">seul ADMIN peut (exporter tout ou partie de la liste des matériels, et) </span><span class="T15">augmenter (+1) le statut d'un groupe de matériels</span><span class="T16">, depuis la vue « index » (vue spéciale pour ADMIN, avec des cases à cocher et boutons pour exporter ou faire évoluer le statut)</span><span class="odfLiEnd"/> </p></li></ol><p class="P8"> </p><ol><li><p class="P48" style="margin-left:0cm;"><span class="WW8Num8z0" style="display:block;float:left;min-width:0,635cm;">(4)</span>Edition des documents :<span class="odfLiEnd"/> </p></li></ol><p class="P16">Admission : quand on "VALIDE" un matériel "CREATED", le statut passe en VALIDATED et le document d'admission est automatiquement édité</p><p class="P16">Sortie : quand on "ARCHIVE" un document "TOBEARCHIVED", le statut passe en ARCHIVED et le document de sortie est automatiquement édité</p><p class="P16">De plus :</p><p class="P16">- Bouton "Doc admission" affiché à partir du statut "VALIDATED"</p><p class="P16">- Bouton "Doc Sortie" affiché à partir du statut TOBEARCHIVED (et donc aussi pour ARCHIVED)</p><p class="P16">Enfin, Le doc de sortie doit être couplée avec la liste des matériels a archiver (TOBEARCHIVED) quand il y a une demande de sortie.</p><p class="P16"> </p><p class="P17"> </p><p class="P1">C - sur les différentes VUES liées au matériel</p><p class="Standard"> </p><p class="P6"><span class="T4">Page accueil </span>:</p><p class="P6"><span> Administration <span class="T20">&amp; Administration Plus </span>voit un menu avec 2 options :</span></p><ul><li><ul><li><ul><li><p class="P51" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à valider »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels à sortir de l'inventaire »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0cm"><!-- --></span><span class="T21">Responsable </span>voit un menu avec <span class="T21">3</span> options :<span class="odfLiEnd"/> </p><ul><li><ul><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier</span> »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« Voir les matériels <span class="T21">de mon groupe métier à valider</span> »<span class="odfLiEnd"/> </p></li><li><p class="P52" style="margin-left:0cm;"><span class="WW8Num2z0" style="display:block;float:left;min-width:0,635cm;">.</span>« <span class="T21">Voir les suivis des matériels donc je suis responsable »</span><span class="odfLiEnd"/> </p></li></ul></li></ul></li></ul><p class="P1">Page Outils :</p><p class="P6">User n'a pas accès à cette page</p><p class="P6">Les autres ont quelques options</p><p class="P6">superadmin a ces options en plus :</p><ul><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Configuration générale de l'application<span class="odfLiEnd"/> </p></li><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Gérer les utilisateurs <span class="T20">privilégiés</span><span class="odfLiEnd"/> </p></li><li><p class="P53" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode debug<span class="odfLiEnd"/> </p></li><li><p class="P54" style="margin-left:0cm;"><span class="WW8Num4z0" style="display:block;float:left;min-width:0,635cm;">.</span>Passer en mode install<span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="Standard"><span class="T5">Vue materiel/index (liste) </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p><ul><li><ul><li><p class="P55" style="margin-left:0cm;"><span class="WW8Num1z0" style="display:block;float:left;min-width:0,635cm;">.</span>Admin<span class="T20">+ </span>voit des boutons pour filtrer par « tous », « à valider », « validés », « à sortir », « archivés »<span class="odfLiEnd"/> </p></li></ul></li></ul><p class="P6"> </p><p class="Standard"><span class="T5">Vue materiel/find </span><span class="T2">: limiter aux </span><span class="T5">matériels actifs</span><span class="T2"> (non archivés)</span></p><p class="P6"><span> Seul le<span class="T20">s</span> profil<span class="T20">s</span> Admin<span class="T20">+ </span>voit TOUS les matériels (y-compris archivés)</span></p><p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/view </span>:</p><p class="P6"><span> boutons « Imprimer Etiquettes » : <span class="T20">resp+</span></span></p><p class="P6"> </p><p class="P6"><span class="T4">Vue materiel/edit </span>:</p><ul><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Etiquette O/N (admin<span class="T20">+)</span><span class="odfLiEnd"/> </p></li><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Statut (<span class="T20">superadmin+)</span><span class="odfLiEnd"/> </p></li><li><p class="P56" style="margin-left:0cm;"><span class="WW8Num5z0" style="display:block;float:left;min-width:0,635cm;">.</span>Informations administratives (admin<span class="T20">+)</span><span class="odfLiEnd"/> </p></li></ul><p class="P6"> </p><p class="P6"> </p><p class="P1"> </p><p class="P19">D - sur un SUIVI et un EMPRUNT</p><p class="P1"> </p><ul><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Dans tous les cas, on ne doit pas pouvoir emprunter ou suivre un materiel non validé (CREATED)<span class="odfLiEnd"/> </p></li><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>User a les droits C, R, U (si créateur), D (si créateur)<span class="odfLiEnd"/> </p></li><li><p class="P57" style="margin-left:0cm;"><span class="WW8Num3z0" style="display:block;float:left;min-width:0,635cm;">.</span>Resp+ a les droits C, R, U, D<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T9">Un USER peut modifier/supprimer un emprunt dont il est soit le créateur soit l'emprunteur</span><span class="T19">.</span></p><p class="P12">Un USER qui créé un emprunt ne doit pas pouvoir changer le nom de l'emprunteur (par défaut, c'est lui). Ainsi, il pourra modifier/supprimer cette fiche au besoin plus tard. Par défaut donc, pour un user, emprunt.emprunteur=creator, materiel.responsable=creator</p><p class="P13">Tout le monde peut rechercher un suivi,</p><p class="P5"> </p><p class="P5"> </p><p class="P3">E - sur les UTILISATEURS</p><p class="P4"><span class="T9">Par défaut, superadmin a tous les droits, et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p><p class="P5"> </p><p class="P5"> </p><p class="P3">F - sur tous les autres objets métiers</p><p class="P5">Voici la liste des autres objets métiers :</p><ul><li><p class="P58" style="margin-left:0cm;"><span class="WW8Num7z0" style="display:block;float:left;min-width:0,635cm;">.</span>Catégories (et domaines et sous-catégories)<span class="odfLiEnd"/> </p></li></ul><ul><li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes thématiques<span class="odfLiEnd"/> </p></li><li><p class="P59" style="margin-left:0cm;"><span class="WW8Num6z0" style="display:block;float:left;min-width:0,635cm;">.</span>Groupes métiers<span class="odfLiEnd"/> </p></li></ul><p class="P4"><span class="T9">Par défaut, pour tous ces objets, superadmin a tous les droits, admin</span><span class="T10">plus</span><span class="T9"> a tous les droits sauf « delete », et les autres profils n'ont que le droit de lecture (</span><span class="T7">view </span><span class="T9">et </span><span class="T7">index</span><span class="T9">)</span></p></body></html>
124 120 \ No newline at end of file
... ...
webroot/doc/userguide/ACL.odt
No preview for this file type
webroot/doc/userguide/ACL.pdf
No preview for this file type