find()->where(['id =' => 1])->first(); $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; $action = $this->request->params['action']; // Super-Admin peut accéder à chaque action if($role == 'Super Administrateur') return true; if (in_array($action, ['getBySurCategorie', 'getAll', 'view', 'index'])) { return true; } if($this->userHasRole('Administration')) { if($action != 'delete') return true; } return false; } /** * Index method * * @return \Cake\Network\Response|null */ public function index() { $this->paginate = [ 'contain' => ['SurCategories'] ]; $categories = $this->paginate($this->Categories); $this->set(compact('categories')); $this->set('_serialize', ['categories']); } /** * View method * * @param string|null $id Category id. * @return \Cake\Network\Response|null * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ public function view($id = null) { $category = $this->Categories->get($id, [ 'contain' => ['SurCategories'] ]); $sousCategories = TableRegistry::get('SousCategories')->find('all')->where(['categorie_id =' => $id]); $this->set('sousCategories', $sousCategories); $this->set('category', $category); $this->set('_serialize', ['category']); } /** * Add method * * @return \Cake\Network\Response|void Redirects on successful add, renders view otherwise. */ public function add() { $category = $this->Categories->newEntity(); if ($this->request->is('post')) { $category = $this->Categories->patchEntity($category, $this->request->data); if ($this->Categories->save($category)) { $this->Flash->success(__('La catégorie a bien été ajouté.')); return $this->redirect(['action' => 'view', $category->id]); } else { $this->Flash->error(__('La catégorie n\'a pas pu être ajouté.')); } } $surCategories = $this->Categories->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); $this->set(compact('category', 'surCategories')); $this->set('_serialize', ['category']); } /** * Edit method * * @param string|null $id Category 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) { $category = $this->Categories->get($id, [ 'contain' => [] ]); if ($this->request->is(['patch', 'post', 'put'])) { $category = $this->Categories->patchEntity($category, $this->request->data); if ($this->Categories->save($category)) { $this->Flash->success(__('La catégorie a bien été édité.')); return $this->redirect(['action' => 'view', $id]); } else { $this->Flash->error(__('La catégorie n\'a pas pu être édité.')); } } $surCategories = $this->Categories->SurCategories->find('list', [ 'keyField' => 'id', 'valueField' => 'nom']); $this->set(compact('category', 'surCategories')); $this->set('_serialize', ['category']); } /** * Delete method * * @param string|null $id Category 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']); $category = $this->Categories->get($id); if ($this->Categories->delete($category)) { $this->Flash->success(__('La catégorie a bien été supprimé.')); } else { $this->Flash->error(__('La catégorie n\'a pas pu être supprimé.')); } return $this->redirect(['action' => 'index']); } public function getBySurCategorie() { if (isset($this->request->data['s_sur_categorie_id'])) $sur_categorie_id = $this->request->data['s_sur_categorie_id']; else $sur_categorie_id = $this->request->data['sur_categorie_id']; $categories = $this->Categories->find('list', [ 'conditions' => ['Categories.sur_categorie_id' => $sur_categorie_id], 'order' => ['Categories.nom'], 'recursive' => -1, 'keyField' => 'id', 'valueField' => 'nom' ]); $this->set('categories',$categories); $this->viewBuilder()->layout = 'ajax'; } // called from view ADD/EDIT (scaffold.form.ctp) on domain select change (javascript event) public function getAll() { $categories = $this->Categories->find('list', [ 'order' => ['Categories.nom'], 'recursive' => -1, 'keyField' => 'id', 'valueField' => 'nom' ]); $this->set('categories',$categories); $this->viewBuilder()->layout = 'ajax'; } }