Uprawnienia dostępu do kontrolera

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']);
  }
}