diff --git a/src/Controller/AppController.php b/src/Controller/AppController.php index e1e7ec7..be3b34a 100755 --- a/src/Controller/AppController.php +++ b/src/Controller/AppController.php @@ -259,15 +259,19 @@ class AppController extends Controller { $USER_IS_ADMIN = ($profile == self::PROFILE_ADMIN); $USER_IS_ADMINPLUS = ($profile == self::PROFILE_ADMINPLUS); $USER_IS_SUPERADMIN = ($profile == self::PROFILE_SUPERADMIN); + $USER_IS_RESPONSABLE_OR_MORE = ($profile >= self::PROFILE_RESPONSABLE); $USER_IS_ADMIN_OR_MORE = ($profile >= self::PROFILE_ADMIN); + $USER_IS_ADMINPLUS_OR_MORE = ($profile >= self::PROFILE_ADMINPLUS); $this->set('USER_IS_UTILISATEUR', $USER_IS_UTILISATEUR); $this->set('USER_IS_RESPONSABLE', $USER_IS_RESPONSABLE); $this->set('USER_IS_ADMIN', $USER_IS_ADMIN); $this->set('USER_IS_ADMINPLUS', $USER_IS_ADMINPLUS); $this->set('USER_IS_SUPERADMIN', $USER_IS_SUPERADMIN); + $this->set('USER_IS_RESPONSABLE_OR_MORE', $USER_IS_RESPONSABLE_OR_MORE); $this->set('USER_IS_ADMIN_OR_MORE', $USER_IS_ADMIN_OR_MORE); - + $this->set('USER_IS_ADMINPLUS_OR_MORE', $USER_IS_ADMINPLUS_OR_MORE); + $this->set('userConnected', $user); $this->set('idGmNa', TableRegistry::get('GroupesMetiers')->find()->where([ diff --git a/src/Template/Materiels/edit.ctp b/src/Template/Materiels/edit.ctp index 41d5e4b..8fd3a62 100755 --- a/src/Template/Materiels/edit.ctp +++ b/src/Template/Materiels/edit.ctp @@ -1,5 +1,23 @@ nom_createur, $materiel->nom_responsable]); + +$USER_IS_RESPONSABLE_AND_SAME_GROUP = + $USER_IS_RESPONSABLE + && + ( + ( + isset($userConnected->groupes_metier_id) + && $materiel->groupes_metier_id == $userConnected->groupes_metier_id + ) + || + ( + isset($userConnected->groupe_thematique_id) + && $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id + ) + ); + $administrationData = array( 'eotp', 'numero_commande', @@ -46,8 +64,9 @@ if ($IS_VALIDATED && $materiel->numero_serie)

Editer un Matériel

Html->link('Aller au formulaire d\'édition avancée', [ + //if ($role == 'Super Administrateur') { + if ($USER_IS_SUPERADMIN) { + echo $this->Html->link('Aller au formulaire d\'édition avancée', [ 'action' => 'administrer', $materiel->id ]); @@ -70,6 +89,8 @@ if ($IS_VALIDATED && $materiel->numero_serie) 'label' => 'Désignation', 'disabled' => $isReadonlyField('designation', $myReadonlyFields) ]); + if ( $USER_IS_ADMIN_OR_MORE || $USER_IS_UTILISATEUR_AND_CREATOR_OR_OWNER || $USER_IS_RESPONSABLE_AND_SAME_GROUP ) { + /* if (in_array($role, [ 'Administration', 'Administration Plus', @@ -77,7 +98,9 @@ if ($IS_VALIDATED && $materiel->numero_serie) ]) || ($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))) { + ]))) || ($role == 'Responsable' && ($materiel->groupes_metier_id == $userConnected->groupes_metier_id || + $materiel->groupes_thematique_id == $userConnected->groupe_thematique_id))) { + */ echo $this->Form->input('hors_service', [ 'label' => 'Appareil hors_service' ]); @@ -140,12 +163,15 @@ if ($IS_VALIDATED && $materiel->numero_serie) 'label' => 'Description', 'disabled' => $isReadonlyField('description', $myReadonlyFields) ]); + if ($USER_IS_RESPONSABLE_OR_MORE) { + /* if (in_array($role, [ 'Responsable', 'Administration', 'Administration Plus', 'Super Administrateur' ])) { + */ echo $this->Form->input('etiquette', [ 'label' => 'Etiquette posée', 'disabled' => $isReadonlyField('etiquette', $myReadonlyFields) @@ -207,10 +233,13 @@ if ($IS_VALIDATED && $materiel->numero_serie) 'class' => 'datepicker', 'default' => NULL ]); + if ($USER_IS_ADMINPLUS_OR_MORE) { + /* if (in_array($role, [ 'Administration Plus', 'Super Administrateur' ])) { + */ echo $this->Form->input('status', [ 'label' => 'Statut', 'options' => [ @@ -237,6 +266,7 @@ if ($IS_VALIDATED && $materiel->numero_serie) 'options' => $groupesMetiers, 'default' => 1 ]); + if (! (in_array($role, [ 'Responsable', 'Administration', @@ -285,7 +315,6 @@ if ($IS_VALIDATED && $materiel->numero_serie) 'role =' => 'Administration' ]) ->toArray(); - var_dump($administrateurs); echo $this->Form->input('gestionnaire_id', [ 'label' => 'Nom du gestionnaire de référence du matériel', 'empty' => 'Choisir un gestionnaire', @@ -311,11 +340,14 @@ if ($IS_VALIDATED && $materiel->numero_serie) 'label' => 'Prix HT (€)', 'disabled' => $isReadonlyField('prix_ht', $myReadonlyFields) ]); + if ($USER_IS_ADMIN_OR_MORE) { + /* if (in_array($role, [ 'Administration', 'Administration Plus', 'Super Administrateur' ])) { + */ echo '
Partie administrative'; echo $this->Form->input('adminEdit', [ 'type' => 'checkbox', -- libgit2 0.21.2