BizRule.php 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. namespace common\modules\rbac\models\searchs;
  3. use common\modules\rbac\components\RouteRule;
  4. use common\modules\rbac\models\BizRule as MBizRule;
  5. use Yii;
  6. use yii\base\Model;
  7. use yii\data\ArrayDataProvider;
  8. /**
  9. * Description of BizRule.
  10. *
  11. * @author Misbahul D Munir <misbahuldmunir@gmail.com>
  12. *
  13. * @since 1.0
  14. */
  15. class BizRule extends Model
  16. {
  17. /**
  18. * @var string name of the rule
  19. */
  20. public $name;
  21. public function rules()
  22. {
  23. return [
  24. [['name'], 'safe'],
  25. ];
  26. }
  27. /**
  28. * {@inheritdoc}
  29. */
  30. public function attributeLabels()
  31. {
  32. return [
  33. 'name' => Yii::t('rbac', 'Name'),
  34. 'className' => Yii::t('rbac', 'className'),
  35. ];
  36. }
  37. /**
  38. * Search BizRule.
  39. *
  40. * @param array $params
  41. *
  42. * @return \yii\data\ActiveDataProvider|\yii\data\ArrayDataProvider
  43. */
  44. public function search($params)
  45. {
  46. /* @var \yii\rbac\Manager $authManager */
  47. $authManager = Yii::$app->authManager;
  48. $models = [];
  49. $included = !($this->load($params) && $this->validate() && trim($this->name) !== '');
  50. foreach ($authManager->getRules() as $name => $item) {
  51. if ($name != RouteRule::RULE_NAME && ($included || stripos($item->name, $this->name) !== false)) {
  52. $models[$name] = new MBizRule($item);
  53. }
  54. }
  55. return new ArrayDataProvider([
  56. 'allModels' => $models,
  57. ]);
  58. }
  59. }