confLabinvent; $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; $action = $this->request->getAttribute('params')['action']; // Super-Admin peut accéder à chaque action if($role == 'Super Administrateur') return true; // Administration peut ajouter, supprimer ou modifier une thematique if($role == 'Administration' && in_array($action,['add','delete','edit'])) return true; if (in_array($action, ['view', 'index'])) { return true; } if($this->userHasRoleAtLeast('Administration Plus')) { if($action != 'delete') return true; } return false; } /** * Index method * * @return \Cake\Network\Response|null */ public function index() { $groupesThematiques = $this->paginate($this->GroupesThematiques); $this->set(compact('groupesThematiques')); $this->set('_serialize', ['groupesThematiques']); } /** * View method * * @param string|null $id Groupes Thematique id. * @return \Cake\Network\Response|null * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ public function view($id = null) { $groupesThematique = $this->GroupesThematiques->get($id, [ 'contain' => ['Materiels'] ]); $materiels = TableRegistry::get('Materiels')->find('all')->where(['groupes_thematique_id =' => $id]); $this->set('materiels', $materiels); $utilisateurs = TableRegistry::get('Users')->find('all')->where(['groupe_thematique_id =' => $id]); $this->set('utilisateurs', $utilisateurs); $suivis = TableRegistry::get('Suivis')->find('all')->where(['groupes_thematique_id =' => $id]); $this->set('suivis', $suivis); $this->set('groupesThematique', $groupesThematique); $this->set('_serialize', ['groupesThematique']); } /** * Add method * * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. */ public function add() { $groupesThematique = $this->GroupesThematiques->newEntity(); if ($this->request->is('post')) { $groupesThematique = $this->GroupesThematiques->patchEntity($groupesThematique, $this->request->data); if ($this->GroupesThematiques->save($groupesThematique)) { $this->Flash->success(__('Le groupe thématique a bien été ajouté.')); return $this->redirect(['action' => 'view', $groupesThematique->id]); } else { $this->Flash->error(__('Le groupe thématique n\'as pas pu être ajouté.')); } } $this->set(compact('groupesThematique')); $this->set('_serialize', ['groupesThematique']); } /** * Edit method * * @param string|null $id Groupes Thematique id. * @return \Cake\Network\Response|void Redirects on successful edit, renders view otherwise. * @throws \Cake\Network\Exception\NotFoundException When record not found. */ public function edit($id = null) { $groupesThematique = $this->GroupesThematiques->get($id, [ 'contain' => [] ]); if ($this->request->is(['patch', 'post', 'put'])) { $groupesThematique = $this->GroupesThematiques->patchEntity($groupesThematique, $this->request->data); if ($this->GroupesThematiques->save($groupesThematique)) { $this->Flash->success(__('Le groupe thématique a bien été édité.')); return $this->redirect(['action' => 'view', $id]); } else { $this->Flash->error(__('Le groupe thématique n\'as pas pu être édité.')); } } $this->set(compact('groupesThematique')); $this->set('_serialize', ['groupesThematique']); } /** * Delete method * * @param string|null $id Groupes Thematique id. * @return \Cake\Network\Response|null Redirects to index. * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ public function delete($id = null) { $this->request->allowMethod(['post', 'delete']); $groupesThematique = $this->GroupesThematiques->get($id); if ($this->GroupesThematiques->delete($groupesThematique)) { $this->Flash->success(__('Le groupe thématique a bien été supprimé.')); } else { $this->Flash->error(__('Le groupe thématique n\'as pas pu être supprimé.')); } return $this->redirect(['action' => 'index']); } }