Commit bc2274a0e4566f36fe4818cd196f2fd6e7fd04c6

Authored by Alexandre
1 parent a95a41e1

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
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 = &#39;Labinvent 2.0&#39;;
94 94 </i></td>
95 95 <td id="version">
96 96 <!-- VERSION M.m.f.b (version (M)ajeure, version (m)ineure, numero de nouvelle (f)onctionnalite, numero de (b)ugfix) -->
97   - <font color="black">VERSION 2.4.6.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;']
... ...