confLabinvent; // $role = TableRegistry::get('Users')->find()->where(['username' => $user[$configuration->authentificationType_ldap][0]])->first()['role']; $action = $this->request->getAttribute('params')['action']; $role = $this->getUserRole($user); // TOUS // if ($action == 'view') return true; // Super-Admin peut accéder à chaque action // if ($role == 'Super Administrateur') return true; // return false; return parent::isAuthorized($user); } /** * 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); // le $this->request->data et peut-être déprécié, mais osef on veut TOUT le tableau data if ($this->Configurations->save($configurationObj)) { $this->Flash->success(__('La configuration a bien été sauvegardée.')); // On reload la configuration $this->confLabinvent = TableRegistry::get('Configurations')->find() ->where([ 'id =' => 1 ]) ->first(); 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ée.')); } } // 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 ($ldap !== null) { 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' ]); } }