public function init() { parent::init(); $this->controller->attachBehavior('accessCreate', ['class' => AdminAccessControl::className(), 'only' => [$this->id], 'rules' => [['allow' => true, 'matchCallback' => function ($rule, $action) { //Если такая привилегия заведена, нужно ее проверять. if ($permission = \Yii::$app->authManager->getPermission(CmsManager::PERMISSION_ALLOW_MODEL_CREATE)) { if (!\Yii::$app->user->can($permission->name)) { return false; } } return true; }]]]); }
/** * Проверка доступа к админке * @return array */ public function behaviors() { return ['adminAccess' => ['class' => AdminAccessControl::className(), 'rules' => [['allow' => true, 'roles' => [CmsManager::PERMISSION_ADMIN_ACCESS]]]], 'adminActionsAccess' => ['class' => AdminAccessControl::className(), 'rules' => [['allow' => true, 'matchCallback' => function ($rule, $action) { if ($permission = \Yii::$app->authManager->getPermission($this->permissionName)) { if (!\Yii::$app->user->can($permission->name)) { return false; } } return true; }]]], 'adminLastActivityAccess' => ['class' => AdminLastActivityAccessControl::className(), 'rules' => [['allow' => true, 'matchCallback' => function ($rule, $action) { if (\Yii::$app->user->identity->lastAdminActivityAgo > \Yii::$app->admin->blockedTime) { return false; } if (\Yii::$app->user->identity) { \Yii::$app->user->identity->updateLastAdminActivity(); } return true; }]]]]; }
public function init() { parent::init(); //Для работы с любой моделью нужно как минимум иметь привилегию CmsManager::PERMISSION_ALLOW_MODEL_UPDATE $this->controller->attachBehavior('accessCreate', ['class' => AdminAccessControl::className(), 'only' => [$this->id], 'rules' => [['allow' => true, 'matchCallback' => [$this, 'checkUpdateAccess']]]]); }
/** * Проверка доступа к админке * @return array */ public function behaviors() { return ['adminAccess' => ['class' => AdminAccessControl::className(), 'rules' => [['allow' => true, 'roles' => [CmsManager::PERMISSION_EDIT_VIEW_FILES]]]]]; }
public function behaviors() { return ['access' => ['class' => AdminAccessControl::className(), 'only' => ['logout', 'lock'], 'rules' => [['actions' => ['logout', 'lock'], 'allow' => true, 'roles' => ['@']]]], 'verbs' => ['class' => VerbFilter::className(), 'actions' => ['logout' => ['post'], 'lock' => ['post']]]]; }
/** * @return array */ public function behaviors() { $behaviors = ArrayHelper::merge(parent::behaviors(), ['verbs' => ['class' => VerbFilter::className(), 'actions' => ['delete' => ['post'], 'delete-multi' => ['post']]], 'accessDelete' => ['class' => AdminAccessControl::className(), 'only' => ['delete'], 'rules' => [['allow' => true, 'matchCallback' => function ($rule, $action) { if (Validate::validate(new HasBehavior(BlameableBehavior::className()), $this->model)->isValid()) { //Если такая привилегия заведена, нужно ее проверять. if ($permission = \Yii::$app->authManager->getPermission(CmsManager::PERMISSION_ALLOW_MODEL_DELETE)) { if (!\Yii::$app->user->can($permission->name, ['model' => $this->model])) { return false; } } } return true; }]]]]); return $behaviors; }
/** * Проверка доступа к админке * @return array */ public function behaviors() { return ArrayHelper::merge(parent::behaviors(), ['adminViewEditAccess' => ['class' => AdminAccessControl::className(), 'only' => ['view-file-edit'], 'rules' => [['allow' => true, 'roles' => [CmsManager::PERMISSION_EDIT_VIEW_FILES]]]]]); }