Configurations->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($action == 'view') return true; // Par défaut refuser return false; } /** * View method * * @param string|null $id Configuration id. * @return \Cake\Network\Response|null * @throws \Cake\Datasource\Exception\RecordNotFoundException When record not found. */ public function view($id = null) { $configurationObj = $this->Configurations->get($id, [ 'contain' => [] ]); $this->set('configurationObj', $configurationObj); $this->set('_serialize', ['configurationObj']); } /** * Edit method * * @param string|null $id Configuration 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) { $configurationObj = $this->Configurations->get($id, [ 'contain' => [] ]); if ($this->request->is(['patch', 'post', 'put'])) { $configurationObj = $this->Configurations->patchEntity($configurationObj, $this->request->data); if ($this->Configurations->save($configurationObj)) { $this->Flash->success(__('La configuration a bien été sauvegardé.')); if($configurationObj->get('mode_install')) { return $this->redirect(['controller' => 'pages', 'action' => 'home']); } else { return $this->redirect(['action' => 'view', $id]); } } else { $this->Flash->error(__('La configuration n\'a pas pu être sauvegardé.')); } } // Gestion du lieu de stockage : soit on cache la DIV 'interne' et on affiche la DIV 'externe', soit on fait l'inverse (par defaut, interne) $disp = 'display:block'; $ldap = $configurationObj->get('use_ldap'); if (isset($ldap)) { if ($ldap) { $disp = 'display:block'; } else { $disp = 'display:none'; } } $this->set(compact('configurationObj', 'disp')); $this->set('_serialize', ['configurationObj']); } /** * Activate debug mode * * @return \Cake\Network\Response|NULL */ public function debugOn() { $config = $this->Configurations->get('1')->set('mode_debug', 1); if ($this->Configurations->save($config)) { $this->Flash->success(__('Le mode debug a bien été démarré.')); } return $this->redirect(['controller' => 'pages', 'action' => 'tools']); } /** * Desactivate debug mode * * @return \Cake\Network\Response|NULL */ public function debugOff() { $config = $this->Configurations->get('1')->set('mode_debug', 0); if ($this->Configurations->save($config)) { $this->Flash->success(__('Le mode debug a bien été arrété.')); } return $this->redirect(['controller' => 'pages', 'action' => 'tools']); } /** * Activate install mode * * @return \Cake\Network\Response|NULL */ public function installOn() { $config = $this->Configurations->get('1')->set('mode_install', 1); if ($this->Configurations->save($config)) { $this->Flash->success(__('Le mode install a bien été démarré.')); } return $this->redirect(['controller' => 'pages', 'action' => 'home']); } /** * Desactivate install mode * * @return \Cake\Network\Response|NULL */ public function installOff() { $config = $this->Configurations->get('1')->set('mode_install', 0); if ($this->Configurations->save($config)) { $this->Flash->success(__('Le mode install a bien été arrété.')); } return $this->redirect(['controller' => 'pages', 'action' => 'tools']); } }