Jeśli brak uprawnień wysyła do strony początkowej
class EventsController extends AppController { public function initialize() { parent::initialize(); if( ! $this->Auth->user('is_rodo') ) { $this->Flash->error(__('Brak dostępu.')); return $this->redirect(['_name' => 'start']); } } ...
Uprawnienia do modułów AppController
$module_ids =[]; $menu_modules =[]; // Pobiera uprawnienia użytkownika $user_right_ids = $this->Modules->ModulesUsers->find() ->select(['module_id', 'rights']) ->where(['user_id' => $this->Auth->user('id')]) ->toArray(); // Tablica module_id foreach($user_right_ids as $ur) { if($ur->rights & 1) { $module_ids[] = $ur->module_id; } } // Pobiera moduły - menu - dostępne dla użytkownika if(!empty($module_ids)) { $menu_modules = $this->Modules->find() ->select(['id', 'name', 'shortname']) ->where(['active' => 1]) ->where(['id IN' => $module_ids]) ->order(['nr']) ; } // Zapewnia dostęp do wszystkich kontrolerów do sprawdzenia po 'shortname' $this->menus = $menu_modules->extract('shortname')->toArray();
Sprawdza w kontrolerze – po jawnej nazwie 'shortname’
public function initialize() { parent::initialize(); if( !in_array('users', $this->menus )) { $this->Flash->error(__('Brak dostępu.')); return $this->redirect(['_name' => 'start']); } }