public function filterGroupControl($filterChain) { if (!isset($_GET['id'])) { throw new CHttpException(404); } /** @var Group $group */ $group = Group::model()->findByAttributes(['number' => $_GET['id']]); if (!$group) { throw new CHttpException(404, 'Данной группы не существует'); } $is_admin = Yii::app()->user->checkAccess('admin'); $is_owner = $group->owner_id == Yii::app()->user->getId(); $is_member = GroupMember::model()->findByAttributes(['group_id' => $group->id, 'user_id' => Yii::app()->user->getId()]); if (!$is_admin && !$is_owner && !$is_member) { throw new CHttpException(403, 'У вас нет доступа к данной группе'); } self::$group = $group; $filterChain->run(); }