/** * Creates data provider instance with search query applied * * @param array $params * * @return ArrayDataProvider */ public function search($params) { $query = new ArrayQuery(Yii::$app->authManager->getRules()); if ($this->load($params) && $this->validate()) { $query->addCondition('name', $this->name ? "~{$this->name}" : null); } return new ArrayDataProvider(['allModels' => $query->find(), 'sort' => ['attributes' => ['name']], 'pagination' => ['pageSize' => 25]]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return \yii\data\ActiveDataProvider|\yii\data\ArrayDataProvider */ public function search($params) { $authManager = Yii::$app->getAuthManager(); if ($this->type == Item::TYPE_ROLE) { $items = $authManager->getRoles(); } else { $items = array_filter($authManager->getPermissions(), function ($item) { return $this->type == Item::TYPE_PERMISSION xor strncmp($item->name, '/', 1) === 0; }); } $query = new ArrayQuery($items); $this->load($params); if ($this->validate()) { $query->addCondition('name', $this->name ? "~{$this->name}" : null)->addCondition('ruleName', $this->ruleName ? "~{$this->ruleName}" : null)->addCondition('description', $this->description ? "~{$this->description}" : null); } return new ArrayDataProvider(['allModels' => $query->find(), 'sort' => ['attributes' => ['name']], 'pagination' => ['pageSize' => 25]]); }