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