/**
  * Callback for $this->menuWidget() method.
  * @param array $data data to process.
  * @return array processed data.
  */
 public function menuCallback($data)
 {
     $contextMenu = ARTreeMenuWidget::this()->commonOptions()['contextmenu'];
     $contextMenu['items'] = ['create' => $contextMenu['items']['create'], 'delete' => $contextMenu['items']['delete']];
     $data['options'] = ['types' => $this->types, 'contextmenu' => $contextMenu];
     $items = AuthItem::find()->where(['type' => \yii\rbac\Item::TYPE_ROLE])->indexBy('name')->all();
     $relations = AuthItemChild::find()->all();
     $data['items'] = $this->generateTree($items, $relations);
     return $data;
 }
 /**
  * Поиск ролей в базе данных.
  * Поиск идет только для записей с type => 1, что означает "роль", а не "право доступа".
  *
  * @param array $params
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = AuthItem::find();
     $query->where(['type' => Role::TYPE_ROLE]);
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['type' => $this->type, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'description', $this->description])->andFilterWhere(['like', 'rule_name', $this->rule_name])->andFilterWhere(['like', 'data', $this->data]);
     return $dataProvider;
 }
 /**
  * Searches all user assignments.
  * @param object $user user instance
  * @return \yii\web\Query search object
  */
 public static function userAssignments($user)
 {
     $names = self::find()->where(['user_id' => $user->id])->select('item_name')->column();
     return AuthItem::find()->where(['in', 'name', $names]);
 }