BizRule   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 43
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 9
eloc 14
dl 0
loc 43
c 0
b 0
f 0
rs 10

3 Methods

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