pages = $pages; } public function behaviors(): array { return [ 'access' => [ 'class' => AccessControl::class, 'rules' => [ [ 'actions' => ['view'], 'allow' => true, //'roles' => ['Pages'], ], [ 'actions' => ['preview'], 'allow' => true, 'roles' => ['PagesManagement'], ], [ // all the action are accessible to admin 'allow' => true, 'roles' => ['admin'], ], ], ], ]; } /** * @param $id * * @return string * @throws NotFoundHttpException * @internal param string $slug */ public function actionView($id): string { if (!$page = $this->pages->find($id)) { throw new NotFoundHttpException('The requested page does not exist.'); } return $this->render('view', [ 'page' => $page, ]); } /** * @param $id * @param string $language * @return string * @throws NotFoundHttpException */ public function actionPreview($id, string $language = ''): string { if (!$page = $this->pages->findPreview($id, $language)) { throw new NotFoundHttpException('The requested page does not exist.'); } return $this->render('view', [ 'page' => $page, ]); } }