Commit 3367192b0baf956b6ae65babe5a545218afcba7e

Authored by Alexandre
1 parent 974d2dd1

Version: 2.4.3.13

Groupes thématiques --> Utilisateur 

Demande (terminé) : https://projects.irap.omp.eu/issues/3783
			
Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99

ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
README-LABINVENT.md
@@ -51,9 +51,11 @@ Logiciel testé et validé sur les configurations suivantes : @@ -51,9 +51,11 @@ Logiciel testé et validé sur les configurations suivantes :
51 VERSION ACTUELLE 51 VERSION ACTUELLE
52 52
53 Date: 14/06/2016 53 Date: 14/06/2016
54 -Version: 2.4.3.12 54 +Version: 2.4.3.13
55 55
56 -Bugfixes et refactoring getMailFromLDAP & getLoginFromLdap 56 +Groupes thématiques --> Utilisateur
  57 +
  58 +Demande (terminé) : https://projects.irap.omp.eu/issues/3783
57 59
58 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99 60 Version majeure en cours (2.5): https://projects.irap.omp.eu/versions/99
59 61
src/Controller/UsersController.php
@@ -79,7 +79,7 @@ class UsersController extends AppController @@ -79,7 +79,7 @@ class UsersController extends AppController
79 public function index() 79 public function index()
80 { 80 {
81 $this->paginate = [ 81 $this->paginate = [
82 - 'contain' => ['GroupesMetiers'] 82 + 'contain' => ['GroupesMetiers', 'GroupesThematiques']
83 ]; 83 ];
84 $users = $this->paginate($this->Users); 84 $users = $this->paginate($this->Users);
85 85
@@ -100,7 +100,7 @@ class UsersController extends AppController @@ -100,7 +100,7 @@ class UsersController extends AppController
100 public function view($id = null) 100 public function view($id = null)
101 { 101 {
102 $user = $this->Users->get($id, [ 102 $user = $this->Users->get($id, [
103 - 'contain' => ['GroupesMetiers'] 103 + 'contain' => ['GroupesMetiers', 'GroupesThematiques']
104 ]); 104 ]);
105 105
106 $this->set('user', $user); 106 $this->set('user', $user);
@@ -125,10 +125,11 @@ class UsersController extends AppController @@ -125,10 +125,11 @@ class UsersController extends AppController
125 } 125 }
126 } 126 }
127 $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); 127 $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  128 + $groupesThematiques = $this->Users->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
128 129
129 $utilisateurs = TableRegistry::get('LdapConnections')->getListUsers(); 130 $utilisateurs = TableRegistry::get('LdapConnections')->getListUsers();
130 131
131 - $this->set(compact('user', 'groupesMetiers', 'utilisateurs')); 132 + $this->set(compact('user', 'groupesMetiers', 'utilisateurs', 'groupesThematiques'));
132 $this->set('_serialize', ['user']); 133 $this->set('_serialize', ['user']);
133 } 134 }
134 135
@@ -154,8 +155,9 @@ class UsersController extends AppController @@ -154,8 +155,9 @@ class UsersController extends AppController
154 } 155 }
155 } 156 }
156 $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); 157 $groupesMetiers = $this->Users->GroupesMetiers->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
  158 + $groupesThematiques = $this->Users->GroupesThematiques->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']);
157 159
158 - $this->set(compact('user', 'groupesMetiers')); 160 + $this->set(compact('user', 'groupesMetiers', 'groupesThematiques'));
159 $this->set('_serialize', ['user']); 161 $this->set('_serialize', ['user']);
160 } 162 }
161 163
src/Model/Entity/User.php
@@ -14,9 +14,9 @@ use Cake\Auth\DefaultPasswordHasher; @@ -14,9 +14,9 @@ use Cake\Auth\DefaultPasswordHasher;
14 * @property string $email 14 * @property string $email
15 * @property string $role 15 * @property string $role
16 * @property int $groupes_metier_id 16 * @property int $groupes_metier_id
17 - * @property int $groupes_thematique_id 17 + * @property int $groupe_thematique_id
18 * @property \App\Model\Entity\GroupesMetier $groupes_metier 18 * @property \App\Model\Entity\GroupesMetier $groupes_metier
19 - * @property \App\Model\Entity\GroupesThematique $groupes_thematique 19 + * @property \App\Model\Entity\GroupesThematique $groupe_thematique
20 */ 20 */
21 class User extends Entity 21 class User extends Entity
22 { 22 {
src/Model/Table/GroupesThematiquesTable.php
@@ -34,7 +34,7 @@ class GroupesThematiquesTable extends AppTable @@ -34,7 +34,7 @@ class GroupesThematiquesTable extends AppTable
34 'foreignKey' => 'groupes_thematique_id' 34 'foreignKey' => 'groupes_thematique_id'
35 ]); 35 ]);
36 $this->hasMany('Users', [ 36 $this->hasMany('Users', [
37 - 'foreignKey' => 'groupes_thematique_id' 37 + 'foreignKey' => 'groupe_thematique_id'
38 ]); 38 ]);
39 } 39 }
40 40
src/Model/Table/UsersTable.php
@@ -34,7 +34,7 @@ class UsersTable extends AppTable @@ -34,7 +34,7 @@ class UsersTable extends AppTable
34 'foreignKey' => 'groupes_metier_id' 34 'foreignKey' => 'groupes_metier_id'
35 ]); 35 ]);
36 $this->belongsTo('GroupesThematiques', [ 36 $this->belongsTo('GroupesThematiques', [
37 - 'foreignKey' => 'groupes_thematique_id' 37 + 'foreignKey' => 'groupe_thematique_id'
38 ]); 38 ]);
39 } 39 }
40 40
@@ -95,7 +95,7 @@ class UsersTable extends AppTable @@ -95,7 +95,7 @@ class UsersTable extends AppTable
95 $rules->add($rules->isUnique(['username'])); 95 $rules->add($rules->isUnique(['username']));
96 $rules->add($rules->isUnique(['email'])); 96 $rules->add($rules->isUnique(['email']));
97 $rules->add($rules->existsIn(['groupes_metier_id'], 'GroupesMetiers')); 97 $rules->add($rules->existsIn(['groupes_metier_id'], 'GroupesMetiers'));
98 - $rules->add($rules->existsIn(['groupes_thematique_id'], 'GroupesThematiques')); 98 + $rules->add($rules->existsIn(['groupe_thematique_id'], 'GroupesThematiques'));
99 return $rules; 99 return $rules;
100 } 100 }
101 101
src/Template/Layout/default.ctp
@@ -94,7 +94,7 @@ $cakeDescription = 'Labinvent 2.0'; @@ -94,7 +94,7 @@ $cakeDescription = 'Labinvent 2.0';
94 </i></td> 94 </i></td>
95 <td id="version"> 95 <td id="version">
96 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) --> 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.3.12 (14/06/2016)</font> 97 + <font color="black">VERSION 2.4.3.13 (14/06/2016)</font>
98 </td> 98 </td>
99 </tr> 99 </tr>
100 </table> 100 </table>
src/Template/Users/add.ctp
@@ -44,6 +44,7 @@ @@ -44,6 +44,7 @@
44 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur'] 44 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur']
45 ]); 45 ]);
46 echo $this->Form->input('groupes_metier_id', ['label' => $configuration->nom_groupe_metier, 'options' => $groupesMetiers, 'default' => 1]); 46 echo $this->Form->input('groupes_metier_id', ['label' => $configuration->nom_groupe_metier, 'options' => $groupesMetiers, 'default' => 1]);
  47 + echo $this->Form->input('groupe_thematique_id', ['label' => $configuration->nom_groupe_thematique, 'options' => $groupesThematiques, 'default' => 1]);
47 ?> 48 ?>
48 </fieldset> 49 </fieldset>
49 <?= $this->Form->submit(__('Valider')) ?> 50 <?= $this->Form->submit(__('Valider')) ?>
src/Template/Users/edit.ctp
@@ -32,6 +32,7 @@ @@ -32,6 +32,7 @@
32 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur'] 32 'options' => ['Super Administrateur' => 'Super Administrateur', 'Administration Plus' => 'Administration Plus', 'Administration' => 'Administration', 'Responsable' => 'Responsable', 'Utilisateur' => 'Utilisateur']
33 ]); 33 ]);
34 echo $this->Form->input('groupes_metier_id', ['label' => $configuration->nom_groupe_metier, 'options' => $groupesMetiers, 'default' => 1]); 34 echo $this->Form->input('groupes_metier_id', ['label' => $configuration->nom_groupe_metier, 'options' => $groupesMetiers, 'default' => 1]);
  35 + echo $this->Form->input('groupe_thematique_id', ['label' => $configuration->nom_groupe_thematique, 'options' => $groupesThematiques, 'default' => 1]);
35 ?> 36 ?>
36 </fieldset> 37 </fieldset>
37 <?= $this->Form->submit(__('Valider')) ?> 38 <?= $this->Form->submit(__('Valider')) ?>
src/Template/Users/index.ctp
@@ -7,6 +7,7 @@ @@ -7,6 +7,7 @@
7 <th><?= $this->Paginator->sort('nom') ?></th> 7 <th><?= $this->Paginator->sort('nom') ?></th>
8 <th><?= $this->Paginator->sort('role') ?></th> 8 <th><?= $this->Paginator->sort('role') ?></th>
9 <th><?= $this->Paginator->sort('groupes_metier_id', $configuration->nom_groupe_metier) ?></th> 9 <th><?= $this->Paginator->sort('groupes_metier_id', $configuration->nom_groupe_metier) ?></th>
  10 + <th><?= $this->Paginator->sort('groupes_thematique_id', $configuration->nom_groupe_thematique) ?></th>
10 <th class="actions"><?= __('') ?></th> 11 <th class="actions"><?= __('') ?></th>
11 </tr> 12 </tr>
12 </thead> 13 </thead>
@@ -16,6 +17,7 @@ @@ -16,6 +17,7 @@
16 <td class="smallText"><?= $this->Html->link($user->nom, ['action' => 'view', $user->id]) ?></td> 17 <td class="smallText"><?= $this->Html->link($user->nom, ['action' => 'view', $user->id]) ?></td>
17 <td class="smallText"><?= h($user->role) ?></td> 18 <td class="smallText"><?= h($user->role) ?></td>
18 <td class="smallText"><?= $user->has('groupes_metier') ? h($user->groupes_metier->nom) : '' ?></td> 19 <td class="smallText"><?= $user->has('groupes_metier') ? h($user->groupes_metier->nom) : '' ?></td>
  20 + <td class="smallText"><?= $user->has('groupes_thematique') ? h($user->groupes_thematique->nom) : '' ?></td>
19 21
20 <td class="actions" style="padding: 6px 0;"> 22 <td class="actions" style="padding: 6px 0;">
21 <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $user->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> 23 <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $user->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?>
src/Template/Users/view.ctp
@@ -21,7 +21,7 @@ @@ -21,7 +21,7 @@
21 $displayElement(__('Nom'), h($user->nom)); 21 $displayElement(__('Nom'), h($user->nom));
22 $displayElement(__('Rôle'), h($user->role)); 22 $displayElement(__('Rôle'), h($user->role));
23 $displayElement(__($configuration->nom_groupe_metier), $user->has('groupes_metier') ? $this->Html->link($user->groupes_metier->nom, ['controller' => 'GroupesMetiers', 'action' => 'view', $user->groupes_metier->id]) : ''); 23 $displayElement(__($configuration->nom_groupe_metier), $user->has('groupes_metier') ? $this->Html->link($user->groupes_metier->nom, ['controller' => 'GroupesMetiers', 'action' => 'view', $user->groupes_metier->id]) : '');
24 - 24 + $displayElement(__($configuration->nom_groupe_thematique), $user->has('groupes_thematique') ? $this->Html->link($user->groupes_thematique->nom, ['controller' => 'GroupesThematiques', 'action' => 'view', $user->groupes_thematique->id]) : '');
25 ?> 25 ?>
26 26
27 </table> 27 </table>
tests/Fixture/UsersFixture.php
@@ -24,15 +24,16 @@ class UsersFixture extends TestFixture @@ -24,15 +24,16 @@ class UsersFixture extends TestFixture
24 'email' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null], 24 'email' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null],
25 'role' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null], 25 'role' => ['type' => 'string', 'length' => 45, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'fixed' => null],
26 'groupes_metier_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null], 26 'groupes_metier_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
27 - 'groupes_thematique_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null], 27 + 'groupe_thematique_id' => ['type' => 'integer', 'length' => 11, 'unsigned' => false, 'null' => true, 'default' => null, 'comment' => '', 'precision' => null, 'autoIncrement' => null],
28 '_indexes' => [ 28 '_indexes' => [
29 'fk_users_groupes_travails1' => ['type' => 'index', 'columns' => ['groupes_metier_id'], 'length' => []], 29 'fk_users_groupes_travails1' => ['type' => 'index', 'columns' => ['groupes_metier_id'], 'length' => []],
  30 + 'fk_users_groupe_thematique_id' => ['type' => 'index', 'columns' => ['groupe_thematique_id'], 'length' => []],
30 ], 31 ],
31 '_constraints' => [ 32 '_constraints' => [
32 'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []], 33 'primary' => ['type' => 'primary', 'columns' => ['id'], 'length' => []],
33 'login_UNIQUE' => ['type' => 'unique', 'columns' => ['username'], 'length' => []], 34 'login_UNIQUE' => ['type' => 'unique', 'columns' => ['username'], 'length' => []],
34 'fk_users_groupes_travails1' => ['type' => 'foreign', 'columns' => ['groupes_metier_id'], 'references' => ['groupes_metiers', 'id'], 'update' => 'noAction', 'delete' => 'noAction', 'length' => []], 35 'fk_users_groupes_travails1' => ['type' => 'foreign', 'columns' => ['groupes_metier_id'], 'references' => ['groupes_metiers', 'id'], 'update' => 'noAction', 'delete' => 'noAction', 'length' => []],
35 - 'fk_users_groupe_thematique_id' => ['type' => 'foreign', 'columns' => ['groupes_thematique_id'], 'references' => ['groupes_thematiques', 'id'], 'update' => 'noAction', 'delete' => 'noAction', 'length' => []], 36 + 'fk_users_groupe_thematique_id' => ['type' => 'foreign', 'columns' => ['groupe_thematique_id'], 'references' => ['groupes_thematiques', 'id'], 'update' => 'noAction', 'delete' => 'noAction', 'length' => []],
36 ], 37 ],
37 '_options' => [ 38 '_options' => [
38 'engine' => 'InnoDB', 39 'engine' => 'InnoDB',
@@ -55,7 +56,7 @@ class UsersFixture extends TestFixture @@ -55,7 +56,7 @@ class UsersFixture extends TestFixture
55 'email' => 'testa@test.fr', 56 'email' => 'testa@test.fr',
56 'role' => 'Super Administrateur', 57 'role' => 'Super Administrateur',
57 'groupes_metier_id' => 1, 58 'groupes_metier_id' => 1,
58 - 'groupes_thematique_id' => 1 59 + 'groupe_thematique_id' => 1
59 ], 60 ],
60 [ 61 [
61 'id' => 2, 62 'id' => 2,
@@ -65,7 +66,7 @@ class UsersFixture extends TestFixture @@ -65,7 +66,7 @@ class UsersFixture extends TestFixture
65 'email' => 'testz@test.fr', 66 'email' => 'testz@test.fr',
66 'role' => 'Administration Plus', 67 'role' => 'Administration Plus',
67 'groupes_metier_id' => 1, 68 'groupes_metier_id' => 1,
68 - 'groupes_thematique_id' => 1 69 + 'groupe_thematique_id' => 1
69 ], 70 ],
70 [ 71 [
71 'id' => 3, 72 'id' => 3,
@@ -75,7 +76,7 @@ class UsersFixture extends TestFixture @@ -75,7 +76,7 @@ class UsersFixture extends TestFixture
75 'email' => 'teste@test.fr', 76 'email' => 'teste@test.fr',
76 'role' => 'Administration', 77 'role' => 'Administration',
77 'groupes_metier_id' => 1, 78 'groupes_metier_id' => 1,
78 - 'groupes_thematique_id' => 1 79 + 'groupe_thematique_id' => 1
79 ], 80 ],
80 [ 81 [
81 'id' => 4, 82 'id' => 4,
@@ -85,7 +86,7 @@ class UsersFixture extends TestFixture @@ -85,7 +86,7 @@ class UsersFixture extends TestFixture
85 'email' => 'testr@test.fr', 86 'email' => 'testr@test.fr',
86 'role' => 'Responsable', 87 'role' => 'Responsable',
87 'groupes_metier_id' => 1, 88 'groupes_metier_id' => 1,
88 - 'groupes_thematique_id' => 1 89 + 'groupe_thematique_id' => 1
89 ], 90 ],
90 [ 91 [
91 'id' => 5, 92 'id' => 5,
@@ -95,7 +96,7 @@ class UsersFixture extends TestFixture @@ -95,7 +96,7 @@ class UsersFixture extends TestFixture
95 'email' => 'testt@test.fr', 96 'email' => 'testt@test.fr',
96 'role' => 'Utilisateur', 97 'role' => 'Utilisateur',
97 'groupes_metier_id' => 1, 98 'groupes_metier_id' => 1,
98 - 'groupes_thematique_id' => 1 99 + 'groupe_thematique_id' => 1
99 ], 100 ],
100 ]; 101 ];
101 } 102 }
tests/TestCase/Controller/UsersControllerTest.php
@@ -93,7 +93,8 @@ class UsersControllerTest extends IntegrationTestCase @@ -93,7 +93,8 @@ class UsersControllerTest extends IntegrationTestCase
93 'password' => 'test', 93 'password' => 'test',
94 'email' => 'testo@test.fr', 94 'email' => 'testo@test.fr',
95 'role' => 'Super Administrateur', 95 'role' => 'Super Administrateur',
96 - 'groupes_metier_id' => 1 96 + 'groupes_metier_id' => 1,
  97 + 'groupe_thematique_id' => 1
97 ]; 98 ];
98 99
99 $this->post('/users/add', $data); 100 $this->post('/users/add', $data);