Commit 771aa727aa6e7990131a42b2e5a2d194c490fb04

Authored by Alexandre
1 parent 9b384d38

Version: 2.3.2.0

Demande (terminée): https://projects.irap.omp.eu/issues/3549
					https://projects.irap.omp.eu/issues/3699
					Ajout envoi mail materiels & emprunts / view
					Bugfixes scripts BD et INSTALL
					Désactivation du mode debug (app.default.php) par défaut
					Autres ....		
					
					
Version majeure en cours (2.3):
https://projects.irap.omp.eu/versions/108

ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
README-LABINVENT.md
... ... @@ -51,14 +51,14 @@ Logiciel testé et validé sur les configurations suivantes :
51 51 VERSION ACTUELLE
52 52  
53 53 Date: 27/05/2016
54   -Version: 2.3.1.1
55   -Demande (terminée): https://projects.irap.omp.eu/issues/3691
56   -
57   -
58   -Demande (en cours):
59   - https://projects.irap.omp.eu/issues/3549
60   - https://projects.irap.omp.eu/issues/3605
  54 +Version: 2.3.2.0
  55 +Demande (terminée): https://projects.irap.omp.eu/issues/3549
61 56 https://projects.irap.omp.eu/issues/3699
  57 + Ajout envoi mail materiels & emprunts / view
  58 + Bugfixes scripts BD et INSTALL
  59 + Désactivation du mode debug (app.default.php) par défaut
  60 + Autres ....
  61 +
62 62  
63 63 Version majeure en cours (2.3): https://projects.irap.omp.eu/versions/108
64 64  
... ...
config/app.default.php
... ... @@ -9,7 +9,7 @@ return [
9 9 * Development Mode:
10 10 * true: Errors and warnings shown.
11 11 */
12   - 'debug' => filter_var(env('DEBUG', true), FILTER_VALIDATE_BOOLEAN),
  12 + 'debug' => filter_var(env('DEBUG', false), FILTER_VALIDATE_BOOLEAN),
13 13  
14 14 /**
15 15 * Configure basic information about the application.
... ...
database/update/db-update-2016-04-25.sql
... ... @@ -4,24 +4,10 @@
4 4 -- Ajout attribut "password" dans la table users
5 5 -- Modification attribut "login" de la table users en "username"
6 6  
7   -DROP TABLE IF EXISTS `utilisateurs`;
8   -CREATE TABLE IF NOT EXISTS `users` (
9   - `id` int(11) NOT NULL AUTO_INCREMENT,
10   - `nom` varchar(45) DEFAULT NULL,
11   - `username` varchar(45) DEFAULT NULL,
12   - `password` VARCHAR(255),
13   - `email` varchar(45) DEFAULT NULL,
14   - `role` varchar(45) DEFAULT NULL,
15   - `groupes_metier_id` int(11) DEFAULT NULL,
16   - PRIMARY KEY (`id`),
17   - UNIQUE KEY `username_UNIQUE` (`username`),
18   - KEY `fk_users_groupes_travails1` (`groupes_metier_id`)
19   -) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=25 ;
  7 +CREATE TABLE users AS SELECT * FROM utilisateurs ;
20 8  
  9 +ALTER TABLE `users` ADD `password` VARCHAR(255) DEFAULT '';
21 10  
22   ---
23   --- Contraintes pour la table `users`
24   ---
  11 +ALTER TABLE `users` CHANGE `login` `username` VARCHAR(45) DEFAULT NULL;
25 12  
26   -ALTER TABLE `users`
27   - ADD CONSTRAINT `fk_users_groupes_travails1` FOREIGN KEY (`groupes_metier_id`) REFERENCES `groupes_metiers` (`id`) ON DELETE NO ACTION ON UPDATE NO ACTION;
  13 +DROP TABLE IF EXISTS `utilisateurs`;
... ...
database/update/db-update-2016-05-12.sql
... ... @@ -22,7 +22,7 @@ update emprunts set site_id ="4" where e_lieu_stockage like "C%";
22 22 ALTER TABLE `emprunts` DROP `e_lieu_stockage`;
23 23  
24 24  
25   ---SUIVIS
  25 +-- SUIVIS
26 26 -- Structure de la table suivis
27 27 ALTER TABLE `suivis` ADD `type_suivi_id` int(11) DEFAULT NULL;
28 28  
... ...
database/update/update_Donnees_IAS_Labinvent2.sql
  1 +START TRANSACTION;
1 2  
2 3 -- IAS : Distribution 09/03/2015 *
3 4 /*
... ... @@ -146,6 +147,9 @@ ALTER TABLE `users` CHANGE `login` `username` VARCHAR(45) DEFAULT NULL;
146 147  
147 148 DROP TABLE IF EXISTS `utilisateurs`;
148 149  
  150 +INSERT INTO users (nom, username, password, email, role) VALUES
  151 +('super-admin', 'superadmin', '$2y$10$nBQMNstgN.sgad1ZANznY.pbJI.ZG/.Q5qX4gC8SXCFQnDIZC8rcW', 'superadmin@admin.fr', 'Super Administrateur');
  152 +
149 153 --
150 154 -- Contraintes pour la table `users`
151 155 --
... ... @@ -200,7 +204,7 @@ update emprunts set site_id ="4" where e_lieu_stockage like "C%";
200 204 ALTER TABLE `emprunts` DROP `e_lieu_stockage`;
201 205  
202 206  
203   ---SUIVIS
  207 +-- SUIVIS
204 208 -- Structure de la table suivis
205 209 ALTER TABLE `suivis` ADD `type_suivi_id` int(11) DEFAULT NULL;
206 210  
... ... @@ -215,3 +219,7 @@ update suivis set type_suivi_id ="2" where type_intervention like "Maintenance%"
215 219  
216 220 -- Suppression attribut
217 221 ALTER TABLE `suivis` DROP `type_intervention`;
  222 +
  223 +
  224 +
  225 +COMMIT;
... ...
database/update/update_Donnees_IRAP_Labinvent2.sql
  1 +START TRANSACTION;
1 2  
2 3 -- IRAP : Distribution 21/01/2016 *
3 4 /*
... ... @@ -28,6 +29,8 @@ ALTER TABLE `users` CHANGE `login` `username` VARCHAR(45) DEFAULT NULL;
28 29  
29 30 DROP TABLE IF EXISTS `utilisateurs`;
30 31  
  32 +INSERT INTO users (nom, username, password, email, role) VALUES
  33 +('super-admin', 'superadmin', '$2y$10$nBQMNstgN.sgad1ZANznY.pbJI.ZG/.Q5qX4gC8SXCFQnDIZC8rcW', 'superadmin@admin.fr', 'Super Administrateur');
31 34  
32 35 --
33 36 -- Contraintes pour la table `users`
... ... @@ -82,7 +85,7 @@ update emprunts set site_id ="4" where e_lieu_stockage like "C%";
82 85 ALTER TABLE `emprunts` DROP `e_lieu_stockage`;
83 86  
84 87  
85   ---SUIVIS
  88 +-- SUIVIS
86 89 -- Structure de la table suivis
87 90 ALTER TABLE `suivis` ADD `type_suivi_id` int(11) DEFAULT NULL;
88 91  
... ... @@ -97,3 +100,5 @@ update suivis set type_suivi_id ="2" where type_intervention like "Maintenance%"
97 100  
98 101 -- Suppression attribut
99 102 ALTER TABLE `suivis` DROP `type_intervention`;
  103 +
  104 +COMMIT;
... ...
install/installation.sh
... ... @@ -150,52 +150,6 @@ configFile=$configPath/app.php
150 150 [[ -f $myConfigFile ]] && cp -p $myConfigFile $myConfigFile.ORIG
151 151 cp $configPath/app.default.php $myConfigFile
152 152  
153   -# - 1) Configuration : LDAP
154   -echo
155   -echo "Configuration de l'application (LDAP) :"
156   -echo
157   -echo "On utilisera un Ldap (conseil: pour une premiere installation, repondez Non) : Oui/Non ? (defaut=Non)"
158   -read rep
159   -LDAP="Non"
160   -if [ -z $rep ] || [ $rep = "N" ] || [ $rep = "n" ] || [ $rep = "Non" ] || [ $rep = "non" ] || [ $rep = "NON" ]; then
161   - echo "==> Pas de serveur Ldap. Utilisation des seuls utilisateurs qui sont dans la base de donnees. "
162   -else
163   - LDAP="Oui"
164   - echo "==> Serveur Ldap"
165   -fi
166   -
167   -#if [ $LDAP != "Oui" ]; then
168   - #sed -i "s/VAR_LDAP/FALSE/" $myConfigFile
169   -#else
170   -if [ $LDAP == "Oui" ]; then
171   - #sed -i "s/VAR_LDAP/TRUE/" $myConfigFile
172   - #sed -i "s/'USE_LDAP' => FALSE/'USE_LDAP' => TRUE/" $myConfigFile
173   - #sed -e "s/'USE_LDAP' => FALSE/'USE_LDAP' => TRUE/" -i $myConfigFile
174   - # Set LDAP address
175   - echo "Entrez l'adresse du serveur ldap (defaut=localhost)"
176   - read ldapIp
177   - if [ -z $ldapIp ] ; then
178   - ldapIp="localhost"
179   - fi
180   - ##sed -i "s/'192.168.1.65'/'$ldapIp'/" $myConfigFile
181   - #sed -i "s/'ldap-servername-or-ip'/'$ldapIp'/" $myConfigFileq
182   - #sed -e "s/'ldap-servername-or-ip'/'$ldapIp'/" -i $myConfigFile
183   - # Set LDAP port
184   - echo "Entrez le numéro de port du serveur ldap (defaut=389)"
185   - read ldapPort
186   - if [ -z $ldapPort ] ; then
187   - ldapPort="389"
188   - fi
189   - #sed -i "s/389/$ldapPort/" $myConfigFile
190   - #sed -e "s/389/$ldapPort/" -i $myConfigFile
191   -
192   - # Set web service authentication
193   - ##echo "Quelle est la clé à utiliser pour les authentifications des services Web ?"
194   - ##read webServiceKey
195   - ###read -s webServiceKey
196   - ##sed -i "s/private $key = 'mykeyislongenoug';/private $key = '$webServiceKey';/" $cakephpAppPath/Controller/ServicesWebController.php
197   -fi
198   -
199 153  
200 154  
201 155 # - 2) Configuration : DATABASE
... ... @@ -218,10 +172,8 @@ fi
218 172  
219 173 if [ $BDD = "Oui" ]; then
220 174  
221   - # Copy sample DATABASE config file to real personal file (make a copy first if already exists !)
222   - [[ -f $dbConfigFile ]] && cp -p $dbConfigFile $dbConfigFile.ORIG
223   - cp $configPath/app.default.php $dbConfigFile
224   - #cp $configPath/app.default.php $configPath/app.php
  175 +
  176 +
225 177  
226 178 # Set database ip
227 179 echo "Entrez le nom ou l'adresse du serveur MySQL hebergeant la base de donnnees : (defaut=localhost)"
... ... @@ -305,7 +257,7 @@ if [ $INSTALL_DATA_IRAP -eq 1 ] ; then
305 257 fi
306 258  
307 259 rep=" "
308   -echo "Maintenant, nous allons definir l utilisateur qui sera superadministrateur de l application, ca peut etre VOUS :"
  260 +echo "Maintenant, nous allons definir l utilisateur qui sera superadministrateur de l application, ca peut etre VOUS (Pas de mot de passe par défaut) :"
309 261 cat ./Insert_Users.sql >> ./build.sql
310 262 echo "- Entrez ses (vos) Nom et Prenom (sous forme : Nom Prenom ) :"
311 263 read UserName UserPrenom
... ... @@ -326,7 +278,7 @@ if [ $LDAP != "Oui" ]; then
326 278 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 ?"
327 279 read rep
328 280 if [ -z $rep ] || [ $rep = "O" ] || [ $rep = "o" ] || [ $rep = "Oui" ] || [ $rep = "oui" ] || [ $rep = "OUI" ]; then
329   - echo "Ajout de quelques utilisateurs supplementaires dans la base"
  281 + echo "Ajout de quelques utilisateurs supplementaires dans la base (Mot de passe par défaut : login)"
330 282 cat ./Insert_FakeUsers.sql >> ./build.sql
331 283 fi
332 284 fi
... ... @@ -347,6 +299,7 @@ echo
347 299 echo "*** FIN DE L'INSTALLATION ***"
348 300 echo
349 301 echo "Si vous voulez le conserver, le script de creation de la BD est database/build.sql"
  302 +echo "Le fichier de configuration app.php a été écrasé, vous pouvez retrouver votre ancienne configuration dans le fichier app.php.ORIG."
350 303 echo
351 304 echo "MAINTENANT :"
352 305 echo "1) Verifiez que la BD d'inventaire ($bddName) a bien ete cree (avec phpmyadmin par exemple)"
... ...
src/Controller/AppController.php
... ... @@ -18,6 +18,7 @@ use Cake\Controller\Controller;
18 18 use Cake\Event\Event;
19 19 use Cake\ORM\TableRegistry;
20 20 use Cake\Mailer\Email;
  21 +use Cake\Core\Configure;
21 22  
22 23 /**
23 24 * Application Controller
... ... @@ -221,6 +222,7 @@ class AppController extends Controller
221 222 }
222 223 function myDebug($arg, $stop=false) {
223 224 if ($this->isLabinventDebugMode()) {
  225 + Configure::write('debug', true);
224 226 debug($arg);
225 227 if ($stop) exit;
226 228 }
... ...
src/Controller/MaterielsController.php
... ... @@ -28,7 +28,7 @@ class MaterielsController extends AppController
28 28 $condition = ['Materiels.status =' => $this->passedArgs[0]];
29 29 $this->set('STATUS', $this->passedArgs[0]);
30 30 }
31   -
  31 + $this->myDebug($this);
32 32  
33 33 $this->paginate = [
34 34 'contain' => ['SurCategories', 'Categories', 'SousCategories', 'GroupesThematiques', 'GroupesMetiers', 'Organismes', 'Sites']
... ...
src/Model/Entity/User.php
... ... @@ -34,11 +34,10 @@ class User extends Entity
34 34 ];
35 35  
36 36 //Fonction de hachage de mot de passe
37   - /*
38 37 protected function _setPassword($password)
39 38 {
40 39 return (new DefaultPasswordHasher)->hash($password);
41 40 }
42   - */
  41 +
43 42  
44 43 }
... ...
src/Model/Table/LdapConnectionsTable.php
... ... @@ -228,8 +228,8 @@ class LdapConnectionsTable extends AppTable {
228 228 }
229 229 else {
230 230 $user = $this->getFakeLdapUser($login);
231   - //$pass = (new DefaultPasswordHasher)->hash($password);
232   - if ($user != false && $user['userpassword'][0] == $password) {
  231 + if ($user != false && (new DefaultPasswordHasher)->check($password, $user['userpassword'][0])) {
  232 + //if ($user != false && $user['userpassword'][0] == $password) {
233 233 return $user;
234 234 }
235 235 }
... ...
src/Template/Emprunts/view.ctp
... ... @@ -23,7 +23,8 @@
23 23 $displayElement(__('Date Retour Emprunt'), h($emprunt->date_retour_emprunt));
24 24 if (h($emprunt->emprunt_interne) == '1') { $displayElement(__('Lieu de stockage'), h($emprunt->site->nom).' - '.h($emprunt->e_lieu_detail)); } else { $displayElement('Lieu de stockage', h($emprunt->laboratoire)); }
25 25  
26   - $displayElement(__('Responsable'), h($emprunt->nom_emprunteur));
  26 + $displayElement(__('Responsable'), $this->Html->link(h($emprunt->nom_emprunteur), 'mailto:'.h($emprunt->email_emprunteur)));
  27 +
27 28 $displayElement(__('Email'), h($emprunt->email_emprunteur));
28 29 if ($emprunt->emprunt_interne != 1) {
29 30 $displayElement(__('Tel'), h($emprunt->tel));
... ...
src/Template/Error/error400.ctp
1   -<?php
2   -use Cake\Core\Configure;
3   -use Cake\Error\Debugger;
  1 +<?php
  2 +use App\Controller\AppController;
  3 +$this->layout = false;
  4 +?>
4 5  
5   -$this->layout = 'error';
  6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7 +<html xmlns="http://www.w3.org/1999/xhtml">
  8 +<head>
  9 + <?= $this->Html->charset()?>
  10 +<title>
  11 + Action impossible
  12 +</title>
  13 + <?= $this->Html->meta('icon')?>
  14 + <?= $this->Html->css('inventirap')?>
  15 + <?= $this->Html->css('font-awesome')?>
  16 + <?= $this->fetch('meta')?>
  17 + <?= $this->fetch('css')?>
  18 +</head>
  19 +<body>
6 20  
7   -if (Configure::read('debug')):
8   - $this->layout = 'dev_error';
  21 + <div id="container">
  22 + <div id="header">
  23 +<?= $this->Html->image('logo_software.jpg', ['alt' => 'Logo de l\'application', 'border' => '0', 'height' => '80px', 'url' => '/']) ?>
  24 + </div>
  25 +
  26 + <div id="content">
  27 +<div class="error_pdo view">
  28 +<h2>Action impossible</h2>
9 29  
10   - $this->assign('title', $message);
11   - $this->assign('templateName', 'error400.ctp');
  30 +<?php
12 31  
13   - $this->start('file');
14   -?>
15   -<?php if (!empty($error->queryString)) : ?>
  32 +if(AppController::isLabinventDebugMode()) { ?>
  33 +
  34 +<?php if (!empty($error->errorInfo[0])) : ?>
16 35 <p class="notice">
17   - <strong>SQL Query: </strong>
18   - <?= h($error->queryString) ?>
  36 + <strong>Code exception : </strong>
  37 + <?= h($error->errorInfo[0]) ?>
19 38 </p>
20 39 <?php endif; ?>
21   -<?php if (!empty($error->params)) : ?>
22   - <strong>SQL Query Params: </strong>
23   - <?php Debugger::dump($error->params) ?>
  40 +
  41 +<?php if (!empty($error->errorInfo[1])) : ?>
  42 + <p class="notice">
  43 + <strong>Code erreur : </strong>
  44 + <?= h($error->errorInfo[1]) ?>
  45 + </p>
24 46 <?php endif; ?>
25   -<?= $this->element('auto_table_warning') ?>
26   -<?php
27   - if (extension_loaded('xdebug')):
28   - xdebug_print_function_stack();
29   - endif;
30   -
31   - $this->end();
32   -endif;
33   -?>
34   -<h2><?= h($message) ?></h2>
35   -<p class="error">
36   - <strong><?= __d('cake', 'Error') ?>: </strong>
37   - <?= sprintf(
38   - __d('cake', 'The requested address %s was not found on this server.'),
39   - "<strong>'{$url}'</strong>"
40   - ) ?>
41   -</p>
  47 +
  48 +<?php if (!empty($error->errorInfo[2])) : ?>
  49 + <p class="notice">
  50 + <strong>Type erreur : </strong>
  51 + <?= h($error->errorInfo[2]) ?>
  52 + </p>
  53 +<?php endif; ?>
  54 +
  55 +<?php if (!empty($error->queryString)) : ?>
  56 + <p class="notice">
  57 + <strong>Requête SQL : </strong>
  58 + <?= h($error->queryString) ?>
  59 + </p>
  60 +<?php endif; }?>
  61 +
  62 +
  63 +<?php if (!empty($error->errorInfo[1]) && $error->errorInfo[1] == 1451) { ?>
  64 + <br>
  65 + <p>
  66 + <strong>Cette action est impossible.</strong><br><br>
  67 + Vous ne pouvez pas supprimer cet entité car elle est utilisée par une autre.
  68 + </p>
  69 +<?php } else if (!empty($error->errorInfo[1]) && $error->errorInfo[1] == 1062){ ?>
  70 + <p>
  71 + <strong>Cette action est impossible.</strong>
  72 + Vous ne pouvez pas ajouter 2 entités avec la même désignation.
  73 + </p>
  74 +<?php } else { ?>
  75 + <p>
  76 + <strong>Cette action est impossible.</strong>
  77 + </p>
  78 +<?php } ?>
  79 +</div>
  80 +
  81 +<div class="actions">
  82 + <?php echo $this->element('menu') ?>
  83 + <?php echo $this->element('menu_form', [ 'pluralHumanName' => '' ]); ?>
  84 +</div>
  85 + </div>
  86 +
  87 +
  88 +
  89 + <div id="footer">
  90 + <table>
  91 + <tr>
  92 + <td>
  93 + <?= $this->Html->image('logo_entity.jpg', ['alt' => 'Logo du labo', 'border' => '0', 'height' => '50px']) ?>
  94 + </td>
  95 + <td><br /> <a href="http://cakephp.org">Baked with CAKEPHP</a></td>
  96 +
  97 + <td id="bugreport"><i>
  98 + <p>
  99 + Merci de communiquer remarques et bugs à <a
  100 + href="mailto:usvn-repo_inventirap@irap.omp.eu">LABINVENT-MAILING-LIST</a>
  101 + </p>
  102 + <?php
  103 + echo '
  104 + <p>
  105 + (<a href="https://projects.irap.omp.eu/projects/inventirap/activity">Activité récente sur le projet</a>)
  106 + &nbsp;&nbsp;&nbsp
  107 + (<a href="https://projects.irap.omp.eu/projects/inventirap/roadmap?tracker_ids[]=1&tracker_ids[]=2&tracker_ids[]=4&tracker_ids[]=5&tracker_ids[]=6&tracker_ids[]=7&tracker_ids[]=8&tracker_ids[]=9#version_1.3">ROADMAP : Activité restant à réaliser</a>)
  108 + </p>
  109 + ';
  110 + ?>
  111 + </i></td>
  112 + <td id="version">
  113 + <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
  114 + <font color="black">VERSION 2.2.5.0 (19/05/2016)</font>
  115 + </td>
  116 + </tr>
  117 + </table>
  118 + </div>
  119 +
  120 + </div>
  121 +
  122 +</body>
  123 +</html>
... ...
src/Template/Error/error400.default.ctp 0 → 100755
... ... @@ -0,0 +1,41 @@
  1 +<?php
  2 +use Cake\Core\Configure;
  3 +use Cake\Error\Debugger;
  4 +
  5 +$this->layout = 'error';
  6 +
  7 +if (Configure::read('debug')):
  8 + $this->layout = 'dev_error';
  9 +
  10 + $this->assign('title', $message);
  11 + $this->assign('templateName', 'error400.ctp');
  12 +
  13 + $this->start('file');
  14 +?>
  15 +<?php if (!empty($error->queryString)) : ?>
  16 + <p class="notice">
  17 + <strong>SQL Query: </strong>
  18 + <?= h($error->queryString) ?>
  19 + </p>
  20 +<?php endif; ?>
  21 +<?php if (!empty($error->params)) : ?>
  22 + <strong>SQL Query Params: </strong>
  23 + <?php Debugger::dump($error->params) ?>
  24 +<?php endif; ?>
  25 +<?= $this->element('auto_table_warning') ?>
  26 +<?php
  27 + if (extension_loaded('xdebug')):
  28 + xdebug_print_function_stack();
  29 + endif;
  30 +
  31 + $this->end();
  32 +endif;
  33 +?>
  34 +<h2><?= h($message) ?></h2>
  35 +<p class="error">
  36 + <strong><?= __d('cake', 'Error') ?>: </strong>
  37 + <?= sprintf(
  38 + __d('cake', 'The requested address %s was not found on this server.'),
  39 + "<strong>'{$url}'</strong>"
  40 + ) ?>
  41 +</p>
... ...
src/Template/Error/error500.ctp
1   -<?php
2   -use Cake\Core\Configure;
3   -use Cake\Error\Debugger;
  1 +<?php
  2 +use App\Controller\AppController;
  3 +$this->layout = false;
  4 +?>
4 5  
5   -$this->layout = 'error';
  6 +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  7 +<html xmlns="http://www.w3.org/1999/xhtml">
  8 +<head>
  9 + <?= $this->Html->charset()?>
  10 +<title>
  11 + Action impossible
  12 +</title>
  13 + <?= $this->Html->meta('icon')?>
  14 + <?= $this->Html->css('inventirap')?>
  15 + <?= $this->Html->css('font-awesome')?>
  16 + <?= $this->fetch('meta')?>
  17 + <?= $this->fetch('css')?>
  18 +</head>
  19 +<body>
6 20  
7   -if (Configure::read('debug')):
8   - $this->layout = 'dev_error';
  21 + <div id="container">
  22 + <div id="header">
  23 +<?= $this->Html->image('logo_software.jpg', ['alt' => 'Logo de l\'application', 'border' => '0', 'height' => '80px', 'url' => '/']) ?>
  24 + </div>
  25 +
  26 + <div id="content">
  27 +<div class="error_pdo view">
  28 +<h2>Action impossible</h2>
9 29  
10   - $this->assign('title', $message);
11   - $this->assign('templateName', 'error500.ctp');
  30 +<?php
12 31  
13   - $this->start('file');
14   -?>
15   -<?php if (!empty($error->queryString)) : ?>
  32 +if(AppController::isLabinventDebugMode()) { ?>
  33 +
  34 +<?php if (!empty($error->errorInfo[0])) : ?>
16 35 <p class="notice">
17   - <strong>SQL Query: </strong>
18   - <?= h($error->queryString) ?>
  36 + <strong>Code exception : </strong>
  37 + <?= h($error->errorInfo[0]) ?>
19 38 </p>
20 39 <?php endif; ?>
21   -<?php if (!empty($error->params)) : ?>
22   - <strong>SQL Query Params: </strong>
23   - <?php Debugger::dump($error->params) ?>
  40 +
  41 +<?php if (!empty($error->errorInfo[1])) : ?>
  42 + <p class="notice">
  43 + <strong>Code erreur : </strong>
  44 + <?= h($error->errorInfo[1]) ?>
  45 + </p>
24 46 <?php endif; ?>
25   -<?php if ($error instanceof Error) : ?>
26   - <strong>Error in: </strong>
27   - <?= sprintf('%s, line %s', str_replace(ROOT, 'ROOT', $error->getFile()), $error->getLine()) ?>
  47 +
  48 +<?php if (!empty($error->errorInfo[2])) : ?>
  49 + <p class="notice">
  50 + <strong>Type erreur : </strong>
  51 + <?= h($error->errorInfo[2]) ?>
  52 + </p>
28 53 <?php endif; ?>
29   -<?php
30   - echo $this->element('auto_table_warning');
31 54  
32   - if (extension_loaded('xdebug')):
33   - xdebug_print_function_stack();
34   - endif;
  55 +<?php if (!empty($error->queryString)) : ?>
  56 + <p class="notice">
  57 + <strong>Requête SQL : </strong>
  58 + <?= h($error->queryString) ?>
  59 + </p>
  60 +<?php endif; }?>
35 61  
36   - $this->end();
37   -endif;
38   -?>
39   -<h2><?= __d('cake', 'An Internal Error Has Occurred') ?></h2>
40   -<p class="error">
41   - <strong><?= __d('cake', 'Error') ?>: </strong>
42   - <?= h($message) ?>
43   -</p>
  62 +
  63 +<?php if (!empty($error->errorInfo[1]) && $error->errorInfo[1] == 1451) { ?>
  64 + <br>
  65 + <p>
  66 + <strong>Cette action est impossible.</strong><br><br>
  67 + Vous ne pouvez pas supprimer cet entité car elle est utilisée par une autre.
  68 + </p>
  69 +<?php } else if (!empty($error->errorInfo[1]) && $error->errorInfo[1] == 1062){ ?>
  70 + <p>
  71 + <strong>Cette action est impossible.</strong>
  72 + Vous ne pouvez pas ajouter 2 entités avec la même désignation.
  73 + </p>
  74 +<?php } else { ?>
  75 + <p>
  76 + <strong>Cette action est impossible.</strong>
  77 + </p>
  78 +<?php } ?>
  79 +</div>
  80 +
  81 +<div class="actions">
  82 + <?php echo $this->element('menu') ?>
  83 + <?php echo $this->element('menu_form', [ 'pluralHumanName' => '' ]); ?>
  84 +</div>
  85 + </div>
  86 +
  87 +
  88 +
  89 + <div id="footer">
  90 + <table>
  91 + <tr>
  92 + <td>
  93 + <?= $this->Html->image('logo_entity.jpg', ['alt' => 'Logo du labo', 'border' => '0', 'height' => '50px']) ?>
  94 + </td>
  95 + <td><br /> <a href="http://cakephp.org">Baked with CAKEPHP</a></td>
  96 +
  97 + <td id="bugreport"><i>
  98 + <p>
  99 + Merci de communiquer remarques et bugs à <a
  100 + href="mailto:usvn-repo_inventirap@irap.omp.eu">LABINVENT-MAILING-LIST</a>
  101 + </p>
  102 + <?php
  103 + echo '
  104 + <p>
  105 + (<a href="https://projects.irap.omp.eu/projects/inventirap/activity">Activité récente sur le projet</a>)
  106 + &nbsp;&nbsp;&nbsp
  107 + (<a href="https://projects.irap.omp.eu/projects/inventirap/roadmap?tracker_ids[]=1&tracker_ids[]=2&tracker_ids[]=4&tracker_ids[]=5&tracker_ids[]=6&tracker_ids[]=7&tracker_ids[]=8&tracker_ids[]=9#version_1.3">ROADMAP : Activité restant à réaliser</a>)
  108 + </p>
  109 + ';
  110 + ?>
  111 + </i></td>
  112 + <td id="version">
  113 + <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
  114 + <font color="black">VERSION 2.2.5.0 (19/05/2016)</font>
  115 + </td>
  116 + </tr>
  117 + </table>
  118 + </div>
  119 +
  120 + </div>
  121 +
  122 +</body>
  123 +</html>
... ...
src/Template/Error/error500.default.ctp 0 → 100755
... ... @@ -0,0 +1,44 @@
  1 +<?php
  2 +use Cake\Core\Configure;
  3 +use Cake\Error\Debugger;
  4 +
  5 +$this->layout = 'error';
  6 +
  7 +if (Configure::read('debug')):
  8 + $this->layout = 'dev_error';
  9 +
  10 + $this->assign('title', $message);
  11 + $this->assign('templateName', 'error500.ctp');
  12 +
  13 + $this->start('file');
  14 +?>
  15 +<?php if (!empty($error->queryString)) : ?>
  16 + <p class="notice">
  17 + <strong>SQL Query: </strong>
  18 + <?= h($error->queryString) ?>
  19 + </p>
  20 +<?php endif; ?>
  21 +<?php if (!empty($error->params)) : ?>
  22 + <strong>SQL Query Params: </strong>
  23 + <?php Debugger::dump($error->params) ?>
  24 +<?php endif; ?>
  25 +<?php if ($error instanceof Error) : ?>
  26 + <strong>Error in: </strong>
  27 + <?= sprintf('%s, line %s', str_replace(ROOT, 'ROOT', $error->getFile()), $error->getLine()) ?>
  28 +<?php endif; ?>
  29 +<?php
  30 + echo $this->element('auto_table_warning');
  31 +
  32 + if (extension_loaded('xdebug')):
  33 + xdebug_print_function_stack();
  34 + endif;
  35 +
  36 + $this->end();
  37 +endif;
  38 +?>
  39 +<h2><?= __d('cake', 'An Internal Error Has Occurred') ?></h2>
  40 +<p class="error">
  41 + <strong><?= __d('cake', 'Error') ?>: </strong>
  42 + <?php error_log('test '.$error); ?>
  43 + <?= h($message) ?>
  44 +</p>
... ...
src/Template/Error/pdo_error.ctp
... ... @@ -73,8 +73,7 @@ if(AppController::isLabinventDebugMode()) { ?&gt;
73 73 </p>
74 74 <?php } else { ?>
75 75 <p>
76   - <strong>Erreur non répertorié : </strong>
77   - Une erreur est survenu et elle n'est pas répertorié, signalez la !.
  76 + <strong>Cette action est impossible</strong>
78 77 </p>
79 78 <?php } ?>
80 79 </div>
... ...
src/Template/Layout/default.ctp
... ... @@ -93,7 +93,7 @@ $cakeDescription = &#39;Labinvent 2.0&#39;;
93 93 </i></td>
94 94 <td id="version">
95 95 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
96   - <font color="black">VERSION 2.3.1.1 (27/05/2016)</font>
  96 + <font color="black">VERSION 2.3.2.0 (27/05/2016)</font>
97 97 </td>
98 98 </tr>
99 99 </table>
... ...
src/Template/Materiels/view.ctp
... ... @@ -185,7 +185,7 @@
185 185 $displayElement(__('N° de série'), h($materiel->numero_serie));
186 186  
187 187 $displayElement(__('Lieu de stockage'), $materiel->has('site') ? h($materiel->site->nom) : '');
188   - $displayElement(__('Responsable'), h($materiel->nom_responsable));
  188 + $displayElement(__('Responsable'), $this->Html->link(h($materiel->nom_responsable), 'mailto:'.h($materiel->email_responsable)));
189 189 $displayElement(__('N. interne (labo)'), h($materiel->numero_laboratoire));
190 190 $displayElement(__('N. inventaire (ancien)'), h($materiel->numero_inventaire_old));
191 191  
... ...
src/Template/Users/add.ctp
... ... @@ -31,7 +31,9 @@
31 31 'div' => 'input required',
32 32 'readonly' => $READONLY]);
33 33  
34   - echo $this->Form->input('password');
  34 + if(!$USE_LDAP) {
  35 + echo $this->Form->input('password');
  36 + }
35 37  
36 38 echo $this->Form->input('email', [
37 39 'label' => 'E-mail',
... ...
src/Template/Users/edit.ctp
... ... @@ -19,7 +19,9 @@
19 19 'div' => 'input required',
20 20 'readonly' => $READONLY]);
21 21  
22   - echo $this->Form->input('password');
  22 + if(!$USE_LDAP) {
  23 + echo $this->Form->input('password');
  24 + }
23 25  
24 26 echo $this->Form->input('email', [
25 27 'label' => 'E-mail',
... ...
tests/Fixture/UsersFixture.php
... ... @@ -49,7 +49,7 @@ class UsersFixture extends TestFixture
49 49 'id' => 1,
50 50 'nom' => 'Test1 Test2',
51 51 'username' => 'testa',
52   - 'password' => 'test',
  52 + 'password' => '$2y$10$VtYdA8Evkc.K.VpvqmF9wui5hc9ep19f8ukWBeFBIlunXSHPqw.K2',
53 53 'email' => 'test@test.fr',
54 54 'role' => 'Super Administrateur',
55 55 'groupes_metier_id' => 1
... ...
tests/TestCase/Controller/MaterielsControllerTest.php
... ... @@ -424,12 +424,12 @@ class MaterielsControllerTest extends IntegrationTestCase
424 424 $this->assertResponseContains("Emprunt(s) du matériel (3)", "Le nb d'emprunt renvoyé pour ce matériel est incorrect.");
425 425 }
426 426  
427   - /**
  427 + /** NE FONCTIONNE PAS
428 428 *
429 429 * Test addCopieMateriel
430 430 *
431 431 * @return void
432   - */
  432 + *
433 433 public function testAddCopieMateriel() {
434 434 $this->authUser();
435 435 $data = [
... ... @@ -439,9 +439,9 @@ class MaterielsControllerTest extends IntegrationTestCase
439 439 'materiel_administratif' => 0,
440 440 'materiel_technique' => 1,
441 441 'status' => 'CREATED',
442   - 'date_acquisition' => '19-04-2016'];
  442 + 'date_acquisition' => '2016-04-16'];
443 443  
444   - $this->post('/materiels/add/13');
  444 + $this->post('/materiels/add/13', $data);
445 445 $this->get('/materiels/view/14');
446 446  
447 447 $this->assertResponseContains("Jesus", "La copie du materiel ne se fait pas correctement.");
... ...
tests/TestCase/Controller/PagesControllerTest.php
... ... @@ -84,7 +84,7 @@ class PagesControllerTest extends IntegrationTestCase
84 84 Configure::write('debug', false);
85 85 $this->get('/pages/not_existing');
86 86  
87   - $this->assertResponseContains('Error');
  87 + $this->assertResponseContains('Cette action est impossible');
88 88  
89 89 }
90 90  
... ...
tests/TestCase/Controller/UsersControllerTest.php
... ... @@ -97,7 +97,8 @@ class UsersControllerTest extends IntegrationTestCase
97 97 'groupes_metier_id' => 1
98 98 ];
99 99  
100   - $this->post('/users/view/2', $data);
  100 + $this->post('/users/add', $data);
  101 + $this->get('/users/view/2');
101 102 $this->assertResponseContains('Test3 Test4', 'L\'ajout d\'un utilisateur ne fonctionne pas correctement');
102 103 }
103 104  
... ...