Commit 3367192b0baf956b6ae65babe5a545218afcba7e
1 parent
974d2dd1
Exists in
master
and in
3 other branches
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
Showing
12 changed files
with
31 additions
and
21 deletions
Show diff stats
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); |