Commit bc2274a0e4566f36fe4818cd196f2fd6e7fd04c6
1 parent
a95a41e1
Exists in
master
and in
3 other branches
Version: 2.4.6.3
Materiels (date_archivage) + materiel (fonctionnent responsable si gmétier OU gthématique) Demande (terminé) : https://projects.irap.omp.eu/issues/3803 https://projects.irap.omp.eu/issues/3808 Version majeure en cours (2.4): https://projects.irap.omp.eu/versions/107 ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap
Showing
13 changed files
with
102 additions
and
43 deletions
Show diff stats
README-LABINVENT.md
... | ... | @@ -51,12 +51,13 @@ Logiciel testé et validé sur les configurations suivantes : |
51 | 51 | VERSION ACTUELLE |
52 | 52 | |
53 | 53 | Date: 21/06/2016 |
54 | -Version: 2.4.6.2 | |
54 | +Version: 2.4.6.3 | |
55 | 55 | |
56 | -Ajout "from_mail" (configurations) | |
56 | +Materiels (date_archivage) + materiel (fonctionnent responsable si gmétier OU gthématique) | |
57 | 57 | |
58 | -Demande (terminé) : https://projects.irap.omp.eu/issues/3858 | |
59 | - | |
58 | +Demande (terminé) : https://projects.irap.omp.eu/issues/3803 | |
59 | + https://projects.irap.omp.eu/issues/3808 | |
60 | + | |
60 | 61 | Version majeure en cours (2.4): https://projects.irap.omp.eu/versions/107 |
61 | 62 | |
62 | 63 | ROADMAP: https://projects.irap.omp.eu/projects/labinvent/roadmap | ... | ... |
src/Controller/AppController.php
... | ... | @@ -140,6 +140,15 @@ class AppController extends Controller |
140 | 140 | $this->LdapAuth->config('authError', "Désolé, vous n'êtes pas autorisés à accéder à cette zone."); |
141 | 141 | } |
142 | 142 | |
143 | + public function afterFilter(Event $event) | |
144 | + { | |
145 | + if(in_array($this->request->params['action'], ['edit', 'add'])) { | |
146 | + $this->request->session()->write("retourForm1", true); | |
147 | + } | |
148 | + else if($this->request->params['action'] != 'creer') { | |
149 | + $this->request->session()->write("retourForm1", false); | |
150 | + } | |
151 | + } | |
143 | 152 | |
144 | 153 | /** |
145 | 154 | * Before render callback. |
... | ... | @@ -163,21 +172,20 @@ class AppController extends Controller |
163 | 172 | $this->set('configuration', $configuration); |
164 | 173 | $this->request->session()->write("authType", $configuration->authentificationType_ldap); |
165 | 174 | |
166 | - $role = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first()['role']; | |
175 | + $user = TableRegistry::get('Users')->find()->where(['username' => $this->LdapAuth->user($configuration->authentificationType_ldap)[0]])->first(); | |
176 | + | |
177 | + $role = $user['role']; | |
167 | 178 | if($role == null) $role = 'Utilisateur'; |
168 | 179 | $this->set('role', $role); |
169 | 180 | |
181 | + $this->set('userConnected', $user); | |
182 | + | |
170 | 183 | $displayElement = function ($nom, $valeur) { |
171 | 184 | if ($valeur != "") |
172 | 185 | echo '<tr><td><strong>'.$nom.' </strong></td><td>'.$valeur.'</td></tr>'; |
173 | 186 | }; |
174 | 187 | $this->set('displayElement', $displayElement); |
175 | 188 | |
176 | - if(in_array($this->request->params['action'], ['edit', 'add'])) { | |
177 | - $this->request->session()->write("retourForm", true); | |
178 | - } | |
179 | - | |
180 | - | |
181 | 189 | } |
182 | 190 | |
183 | 191 | // "le materiel", "le suivi"... | ... | ... |
src/Controller/MaterielsController.php
... | ... | @@ -39,7 +39,10 @@ class MaterielsController extends AppController |
39 | 39 | if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['givenname'][0].' '.$user['sn'][0])) { |
40 | 40 | return true; |
41 | 41 | } |
42 | - else if ($this->userHasRole('Responsable')) { | |
42 | + else if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) { | |
43 | + return true; | |
44 | + } | |
45 | + else if ($this->userHasRole('Administration')) { | |
43 | 46 | return true; |
44 | 47 | } |
45 | 48 | } |
... | ... | @@ -55,7 +58,10 @@ class MaterielsController extends AppController |
55 | 58 | if ($role == 'Utilisateur' && $this->isOwnedBy($id, $user['givenname'][0].' '.$user['sn'][0])) { |
56 | 59 | return true; |
57 | 60 | } |
58 | - else if ($this->userHasRole('Responsable')) { | |
61 | + else if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) { | |
62 | + return true; | |
63 | + } | |
64 | + else if ($this->userHasRole('Administration')) { | |
59 | 65 | return true; |
60 | 66 | } |
61 | 67 | } |
... | ... | @@ -63,7 +69,12 @@ class MaterielsController extends AppController |
63 | 69 | |
64 | 70 | if ($action == 'statusValidated') { |
65 | 71 | $id = (int)$this->request->params['pass'][0]; |
66 | - if ($this->userHasRole('Responsable')) { | |
72 | + if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) { | |
73 | + if($this->isCreated($id)) { | |
74 | + return true; | |
75 | + } | |
76 | + } | |
77 | + else if ($this->userHasRole('Administration')) { | |
67 | 78 | if($this->isCreated($id)) { |
68 | 79 | return true; |
69 | 80 | } |
... | ... | @@ -72,7 +83,12 @@ class MaterielsController extends AppController |
72 | 83 | |
73 | 84 | if ($action == 'statusToBeArchived') { |
74 | 85 | $id = (int)$this->request->params['pass'][0]; |
75 | - if ($this->userHasRole('Responsable')) { | |
86 | + if ($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) { | |
87 | + if($this->isValidated($id)) { | |
88 | + return true; | |
89 | + } | |
90 | + } | |
91 | + else if ($this->userHasRole('Administration')) { | |
76 | 92 | if($this->isValidated($id)) { |
77 | 93 | return true; |
78 | 94 | } |
... | ... | @@ -115,6 +131,13 @@ class MaterielsController extends AppController |
115 | 131 | return ($this->Materiels->exists(['id' => $id, 'nom_createur' => $nomCreateur]) || $this->Materiels->exists(['id' => $id, 'nom_responsable' => $nomCreateur])); |
116 | 132 | } |
117 | 133 | |
134 | + public function isRespGroup($id, $loginResponsable) | |
135 | + { | |
136 | + $u = TableRegistry::get('Users')->find()->where(['username' => $loginResponsable])->first(); | |
137 | + | |
138 | + return ($this->Materiels->exists(['id' => $id, 'groupes_metier_id' => $u['groupes_metier_id']]) || $this->Materiels->exists(['id' => $id, 'groupes_thematique_id' => $u['groupe_thematique_id']])); | |
139 | + } | |
140 | + | |
118 | 141 | public function isCreated($id) |
119 | 142 | { |
120 | 143 | return $this->Materiels->exists(['id' => $id, 'status' => 'CREATED']); |
... | ... | @@ -336,6 +359,10 @@ class MaterielsController extends AppController |
336 | 359 | private function statusSetTo($newStatus, $message, $id = null, $from = 'index') { |
337 | 360 | $materiel = $this->Materiels->get($id)->set('status', $newStatus); |
338 | 361 | |
362 | + if($newStatus == 'ARCHIVED') { | |
363 | + $materiel->set('date_archivage', date('Y-m-d')); | |
364 | + } | |
365 | + | |
339 | 366 | if ($this->Materiels->save($materiel, ['checkRules' => false, 'checkExisting' => false])) { |
340 | 367 | $this->Flash->success(__($message)); |
341 | 368 | $this->sendEmailToManagement($id); | ... | ... |
src/Controller/SuivisController.php
... | ... | @@ -26,12 +26,13 @@ class SuivisController extends AppController |
26 | 26 | |
27 | 27 | $action = $this->request->params['action']; |
28 | 28 | |
29 | - if($this->userHasRole('Responsable')) return true; | |
29 | + if($this->userHasRole('Administration')) return true; | |
30 | 30 | |
31 | 31 | //Pour un "utilisateur" |
32 | 32 | if (in_array($action, ['edit', 'delete'])) { |
33 | 33 | $id = (int)$this->request->params['pass'][0]; |
34 | 34 | if($this->isOwnedBy($id, $user['givenname'][0].' '.$user['sn'][0])) return true; |
35 | + if($role == 'Responsable' && $this->isRespGroup($id, $user[$configuration->authentificationType_ldap][0])) return true; | |
35 | 36 | } |
36 | 37 | |
37 | 38 | return parent::isAuthorized($user); |
... | ... | @@ -43,6 +44,12 @@ class SuivisController extends AppController |
43 | 44 | return $this->Suivis->exists(['id' => $id, 'nom_createur' => $nomCreateur]); |
44 | 45 | } |
45 | 46 | |
47 | + public function isRespGroup($id, $loginResponsable) | |
48 | + { | |
49 | + $u = TableRegistry::get('Users')->find()->where(['username' => $loginResponsable])->first(); | |
50 | + | |
51 | + return ($this->Suivis->exists(['id' => $id, 'groupes_metier_id' => $u['groupes_metier_id']]) || $this->Suivis->exists(['id' => $id, 'groupes_thematique_id' => $u['groupe_thematique_id']])); | |
52 | + } | |
46 | 53 | |
47 | 54 | /** |
48 | 55 | * Index method | ... | ... |
src/Template/Element/menu_view.ctp
... | ... | @@ -17,7 +17,7 @@ |
17 | 17 | <!-- RETOUR action --> |
18 | 18 | <li> |
19 | 19 | <?php |
20 | - if($this->request->session()->read("retourForm")) { | |
20 | + if($this->request->session()->read("retourForm1")) { | |
21 | 21 | echo $this->Html->link ('<i class="icon-arrow-left"></i> Retour', 'javascript:window.history.go(-2)', ['escape' => false]); |
22 | 22 | } else { |
23 | 23 | echo $this->Html->link ('<i class="icon-arrow-left"></i> Retour', 'javascript:window.history.go(-1)', ['escape' => false]); |
... | ... | @@ -32,7 +32,7 @@ |
32 | 32 | |
33 | 33 | if($singularHumanName == 'Matériel') { |
34 | 34 | if (in_array($materiel->status, ['CREATED', 'VALIDATED'])) { |
35 | - if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { | |
35 | + if(($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)) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']))) { | |
36 | 36 | $isAuthorized = true; |
37 | 37 | } |
38 | 38 | }else { |
... | ... | @@ -42,17 +42,23 @@ |
42 | 42 | } |
43 | 43 | } |
44 | 44 | else if (in_array($singularHumanName, ['Suivi', 'Emprunt'])) { |
45 | - if (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur'])) { | |
45 | + if (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) { | |
46 | 46 | $isAuthorized = true; |
47 | 47 | }else { |
48 | 48 | if($singularHumanName == 'Suivi') { |
49 | 49 | if(in_array($username, [$suivi->nom_createur])) { |
50 | 50 | $isAuthorized = true; |
51 | 51 | } |
52 | + else if ($role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) { | |
53 | + $isAuthorized = true; | |
54 | + } | |
52 | 55 | } else { |
53 | 56 | if(in_array($username, [$emprunt->nom_createur, $emprunt->nom_emprunteur])) { |
54 | 57 | $isAuthorized = true; |
55 | 58 | } |
59 | + else if ($role == 'Responsable') { | |
60 | + $isAuthorized = true; | |
61 | + } | |
56 | 62 | } |
57 | 63 | } |
58 | 64 | } |
... | ... | @@ -97,23 +103,29 @@ |
97 | 103 | |
98 | 104 | if($singularHumanName == 'Matériel') { |
99 | 105 | if ($materiel->status == 'CREATED') { |
100 | - if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { | |
106 | + if(($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)) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']))) { | |
101 | 107 | $isAuthorized = true; |
102 | 108 | } |
103 | 109 | } |
104 | 110 | } |
105 | 111 | else if (in_array($singularHumanName, ['Suivi', 'Emprunt'])) { |
106 | - if (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur'])) { | |
112 | + if (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) { | |
107 | 113 | $isAuthorized = true; |
108 | 114 | }else { |
109 | 115 | if($singularHumanName == 'Suivi') { |
110 | 116 | if(in_array($username, [$suivi->nom_createur])) { |
111 | 117 | $isAuthorized = true; |
118 | + } | |
119 | + else if ($role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) { | |
120 | + $isAuthorized = true; | |
112 | 121 | } |
113 | 122 | } else { |
114 | 123 | if(in_array($username, [$emprunt->nom_createur, $emprunt->nom_emprunteur])) { |
115 | 124 | $isAuthorized = true; |
116 | 125 | } |
126 | + else if ($role == 'Responsable') { | |
127 | + $isAuthorized = true; | |
128 | + } | |
117 | 129 | } |
118 | 130 | } |
119 | 131 | } | ... | ... |
src/Template/Layout/default.ctp
... | ... | @@ -94,7 +94,7 @@ $cakeDescription = 'Labinvent 2.0'; |
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.2 (21/06/2016)</font> | |
97 | + <font color="black">VERSION 2.4.6.3 (21/06/2016)</font> | |
98 | 98 | </td> |
99 | 99 | </tr> |
100 | 100 | </table> | ... | ... |
src/Template/Materiels/edit.ctp
... | ... | @@ -22,8 +22,6 @@ if ($IS_VALIDATED) |
22 | 22 | 'site_id', |
23 | 23 | 'date_acquisition', |
24 | 24 | 'date_reception', |
25 | - 'nom_responsable', | |
26 | - 'fournisseur', | |
27 | 25 | 'organisme_id', |
28 | 26 | 'prix_ht' |
29 | 27 | ), |
... | ... | @@ -191,7 +189,7 @@ if ($IS_VALIDATED) |
191 | 189 | |
192 | 190 | echo $this->Form->input('fournisseur', [ |
193 | 191 | 'label' => 'Fournisseur', |
194 | - 'disabled' => $isReadonlyField('email_responsable', $myReadonlyFields) | |
192 | + 'disabled' => $isReadonlyField('fournisseur', $myReadonlyFields) | |
195 | 193 | ]); |
196 | 194 | echo $this->Form->input('organisme_id', [ |
197 | 195 | 'options' => $organismes, | ... | ... |
src/Template/Materiels/find.ctp
... | ... | @@ -259,7 +259,7 @@ if ($r) { |
259 | 259 | * ACTION 'edit' |
260 | 260 | */ |
261 | 261 | if (in_array($material->status, ['CREATED', 'VALIDATED'])) { |
262 | - if(($role == 'Utilisateur' && (in_array($username, [$material->nom_createur, $material->nom_responsable]))) || (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { | |
262 | + if(($role == 'Utilisateur' && (in_array($username, [$material->nom_createur, $material->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || ($role == 'Responsable' && ($material->groupes_metier_id == $userConnected->groupes_metier_id || $material->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | |
263 | 263 | echo '<td class="actions" style="padding: 6px 0;">'; |
264 | 264 | echo $this->Html->link('<i class="icon-pencil"></i>', |
265 | 265 | ['action' => 'edit', $material->id], |
... | ... | @@ -280,14 +280,14 @@ if ($r) { |
280 | 280 | |
281 | 281 | |
282 | 282 | echo '<td class="actions" style="padding: 6px 0;">'; |
283 | - if(in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur'])) { | |
283 | + if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']) || ($role == 'Responsable' && ($material->groupes_metier_id == $userConnected->groupes_metier_id || $material->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | |
284 | 284 | if(h($material->status) == 'CREATED') { |
285 | 285 | echo $this->Html->link('<i class="icon-ok-sign"></i>', |
286 | 286 | ['action' => 'statusValidated', $material->id], |
287 | 287 | ['title' => 'Valider', 'style' => 'margin: 0 2px', 'escape' => false, |
288 | 288 | 'confirm' => 'Êtes-vous sur de vouloir validé '.$material->designation.' ?']); |
289 | 289 | } |
290 | - else if (h($material->status) == 'VALIDATED' && h($material->nom_responsable) == $username) { | |
290 | + else if (h($material->status) == 'VALIDATED') { | |
291 | 291 | echo $this->Html->link('<i class="icon-inbox"></i>', |
292 | 292 | ['action' => 'statusToBeArchived', $material->id], |
293 | 293 | ['title' => 'Demander la sortie de l\'inventaire', 'style' => 'margin: 0 2px', 'escape' => false, |
... | ... | @@ -309,7 +309,7 @@ if ($r) { |
309 | 309 | */ |
310 | 310 | // Seul un materiel CREATED peut être supprimer |
311 | 311 | if ($material->status == 'CREATED') { |
312 | - if($role != 'Utilisateur' || in_array($username, [$material->nom_createur, $material->nom_responsable])) { | |
312 | + if(($role != 'Utilisateur' && $role != 'Responsable') || in_array($username, [$material->nom_createur, $material->nom_responsable]) || ($role == 'Responsable' && ($material->groupes_metier_id == $userConnected->groupes_metier_id || $material->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | |
313 | 313 | echo $this->Html->link(__('<i class="icon-trash"></i>'), |
314 | 314 | ['action' => 'delete', $material->id], |
315 | 315 | ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $material->designation)] | ... | ... |
src/Template/Materiels/index.ctp
... | ... | @@ -166,7 +166,7 @@ if (isset ( $STATUS )) { |
166 | 166 | |
167 | 167 | <td class="actions" style="padding: 6px 0;"> |
168 | 168 | <?php if (in_array($materiel->status, ['CREATED', 'VALIDATED'])): |
169 | - if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { | |
169 | + if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | |
170 | 170 | ?> |
171 | 171 | <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $materiel->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> |
172 | 172 | <?php } endif; ?> |
... | ... | @@ -174,7 +174,7 @@ if (isset ( $STATUS )) { |
174 | 174 | |
175 | 175 | <td class="actions" style="padding: 6px 0;"> |
176 | 176 | <?php |
177 | - if(in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur'])) { | |
177 | + if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | |
178 | 178 | |
179 | 179 | if(h($materiel->status) == 'CREATED') { |
180 | 180 | echo $this->Html->link('<i class="icon-ok-sign"></i>', |
... | ... | @@ -203,7 +203,7 @@ if (isset ( $STATUS )) { |
203 | 203 | <td class="actions" style="padding: 6px 0;"> |
204 | 204 | <?php |
205 | 205 | if (h($materiel->status) == 'CREATED') { |
206 | - if($role != 'Utilisateur' || in_array($username, [$materiel->nom_createur, $materiel->nom_responsable])) { | |
206 | + if(($role != 'Utilisateur' && $role != 'Responsable') || 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))) { | |
207 | 207 | echo $this->Html->link(__('<i class="icon-trash"></i>'), |
208 | 208 | ['action' => 'delete', $materiel->id], |
209 | 209 | ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $materiel->designation)]); | ... | ... |
src/Template/Materiels/view.ctp
... | ... | @@ -23,7 +23,7 @@ |
23 | 23 | <div class="actions" style="margin-bottom: 20px; width: 100%; float: none; padding: 10px 0;"> |
24 | 24 | <?php |
25 | 25 | if (in_array($materiel->status, ['CREATED', 'VALIDATED'])) { |
26 | - if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { | |
26 | + if(($role == 'Utilisateur' && (in_array($username, [$materiel->nom_createur, $materiel->nom_responsable]))) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | |
27 | 27 | echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce matériel'), |
28 | 28 | ['action' => 'edit', $materiel->id], |
29 | 29 | ['escape' => false, |
... | ... | @@ -91,7 +91,7 @@ |
91 | 91 | } |
92 | 92 | } |
93 | 93 | |
94 | - if(in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur'])) { | |
94 | + if(in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur']) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) { | |
95 | 95 | // 2) Bouton de changement de statut : Valider, Demander archivage, ou Archiver |
96 | 96 | switch ($materiel->status) { |
97 | 97 | case "CREATED": |
... | ... | @@ -201,7 +201,9 @@ |
201 | 201 | $displayElement(__($configuration->nom_groupe_metier), $materiel->has('groupes_metier') ? $this->Html->link($materiel->groupes_metier->nom, ['controller' => 'GroupesMetiers', 'action' => 'view', $materiel->groupes_metier->id]) : ''); |
202 | 202 | $displayElement(__('Date d\'achat'), h($materiel->date_acquisition)); |
203 | 203 | $displayElement(__('Statut'), h($materiel->status)); |
204 | - | |
204 | + if($materiel->status == 'ARCHIVED') { | |
205 | + $displayElement(__('Date d\'archivage'), h($materiel->date_archivage)); | |
206 | + } | |
205 | 207 | $displayElement(__('Prix (HT)'), h($materiel->prix_ht).' €'); |
206 | 208 | $displayElement(__('Fournisseur'), h($materiel->fournisseur)); |
207 | 209 | ... | ... |
src/Template/Suivis/find.ctp
... | ... | @@ -126,14 +126,18 @@ $r = isset ($_results); |
126 | 126 | |
127 | 127 | <?php |
128 | 128 | echo '<td class="actions" style="padding: 6px 0;">'; |
129 | - $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $suivi->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]); | |
130 | - if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { | |
131 | - $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $suivi->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]); | |
132 | - $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $suivi->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivi->id)]); | |
133 | - } | |
134 | - echo '</td>'; | |
129 | + echo $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $suivi->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]); | |
130 | + | |
135 | 131 | |
136 | - echo '<tr>'; | |
132 | + if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || $role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) { | |
133 | + | |
134 | + echo $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $suivi->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]); | |
135 | + echo $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $suivi->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivi->id)]); | |
136 | + echo '</td>'; | |
137 | + } | |
138 | + | |
139 | + | |
140 | + echo '</tr>'; | |
137 | 141 | endforeach; |
138 | 142 | echo '</tbody>'; |
139 | 143 | echo '</table>'; | ... | ... |
src/Template/Suivis/index.ctp
... | ... | @@ -25,7 +25,7 @@ |
25 | 25 | |
26 | 26 | <td class="actions" style="padding: 6px 0;"> |
27 | 27 | <?= $this->Html->link(__('<i class="icon-eye-open"></i>'), ['action' => 'view', $suivi->id], ['title' => 'Visualiser', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> |
28 | - <?php if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { ?> | |
28 | + <?php if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || $role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) { ?> | |
29 | 29 | <?= $this->Html->link(__('<i class="icon-pencil"></i>'), ['action' => 'edit', $suivi->id], ['title' => 'Editer', 'style' => 'margin: 0 2px', 'escape' => false ]) ?> |
30 | 30 | <?= $this->Form->postLink(__('<i class="icon-trash"></i>'), ['action' => 'delete', $suivi->id], ['title' => 'Supprimer', 'style' => 'margin: 0 2px', 'escape' => false, 'confirm' => __('Êtes-vous sur de vouloir supprimer # {0}?', $suivi->id)]) ?> |
31 | 31 | <?php } ?> | ... | ... |
src/Template/Suivis/view.ctp
... | ... | @@ -6,7 +6,7 @@ |
6 | 6 | <tr><th style="width: 250px;"></th><th></th></tr> |
7 | 7 | |
8 | 8 | <?php |
9 | - if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Responsable', 'Administration', 'Administration Plus', 'Super Administrateur']))) { | |
9 | + if(($role == 'Utilisateur' && in_array($username, [$suivi->nom_createur])) || (in_array($role, ['Administration', 'Administration Plus', 'Super Administrateur'])) || $role == 'Responsable' && ($suivi->groupes_metier_id == $userConnected->groupes_metier_id || $suivi->groupes_thematique_id == $userConnected->groupe_thematique_id)) { | |
10 | 10 | echo $this->Html->link(__('<i class="icon-pencil"></i> Editer ce suivi'), |
11 | 11 | ['action' => 'edit', $suivi->id], |
12 | 12 | ['escape' => false,'onclick' => 'return true;'] | ... | ... |