Failed Conditions
Pull Request — master (#278)
by Maximo
03:06
created

AclTask::kanvasAction()   B

Complexity

Conditions 2
Paths 2

Size

Total Lines 55

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
cc 2
nc 2
nop 0
dl 0
loc 55
ccs 0
cts 0
cp 0
crap 6
rs 8.9818
c 0
b 0
f 0

How to fix   Long Method   

Long Method

Small methods make your code easier to understand, in particular if combined with a good name. Besides, if your method is small, finding a good name is usually much easier.

For example, if you find yourself adding comments to a method's body, this is usually a good sign to extract the commented part to a new method, and use the comment as a starting point when coming up with a good name for this new method.

Commonly applied refactorings include:

1
<?php
2
3
namespace Canvas\Cli\Tasks;
4
5
use Phalcon\Cli\Task as PhTask;
6
7
/**
8
 * Class AclTask.
9
 *
10
 * @package Canvas\Cli\Tasks;
11
 *
12
 * @property \Canvas\Acl\Manager $acl
13
 */
14
class AclTask extends PhTask
15
{
16
    /**
17
     * Create the default roles of the system.
18
     *
19
     * @return void
20
     */
21
    public function mainAction()
22
    {
23
        $this->acl->addRole('Default.Admins');
24
        $this->acl->addRole('Default.Agents');
25
        $this->acl->addRole('Default.Users');
26
27
        $this->acl->addResource('Default.Users', ['read', 'list', 'create', 'update', 'delete']);
28
        $this->acl->allow('Admins', 'Default.Users', ['read', 'list', 'create', 'update', 'delete']);
29
        //$this->acl->deny('Admins', 'Default.Users', []);
30
    }
31
32
    /**
33
     * Default roles for the crm system.
34
     *
35
     * @return void
36
     */
37
    public function crmAction()
38
    {
39
        $this->acl->addRole('CRM.Users');
40
        $this->acl->addResource('CRM.Users', ['read', 'list', 'create', 'update', 'delete']);
41
        $this->acl->allow('Users', 'CRM.Users', ['read', 'list', 'create']);
42
        $this->acl->deny('Users', 'CRM.Users', ['update', 'delete']);
43
44
        //Apps Settings
45
        $this->acl->addResource('CRM.AppsSettings', ['read', 'list', 'create', 'update', 'delete']);
46
        $this->acl->allow('Users', 'CRM.AppsSettings', ['read', 'list', 'create', 'update', 'delete']);
47
48
        //Companies Settings
49
        $this->acl->addResource('CRM.CompaniesSettings', ['read', 'list', 'create', 'update', 'delete']);
50
        $this->acl->allow('Users', 'CRM.CompaniesSettings', ['read', 'list', 'create', 'update', 'delete']);
51
    }
52
53
    /**
54
     * Default ecosystem ACL.
55
     *
56
     * @return void
57
     */
58
    public function kanvasAction()
59
    {
60
        $this->acl->addResource(
61
            'Default.SettingsMenu',
62
            [
63
                'company-settings',
64
                'app-settings',
65
                'companies-manager',
66
            ]
67
        );
68
69
        $defaultResources = [
70
            'Default.CompanyBranches',
71
            'Default.CompanyUsers',
72
            'Default.CompanyRoles',
73
            'Default.CompanySubscriptions',
74
            'Default.CustomFields',
75
            'Default.CompaniesManager',
76
        ];
77
78
        foreach ($defaultResources as $resource) {
79
            $this->acl->addResource(
80
                $resource,
81
                [
82
                    'read',
83
                    'list',
84
                    'create',
85
                    'update',
86
                    'delete'
87
                ]
88
            );
89
90
            $this->acl->allow(
91
                'Admins',
92
                $resource,
93
                [
94
                    'read',
95
                    'list',
96
                    'create',
97
                    'update',
98
                    'delete'
99
                ]
100
            );
101
        }
102
103
        $this->acl->allow(
104
            'Admins',
105
            'Default.SettingsMenu',
106
            [
107
                'company-settings',
108
                'app-settings',
109
                'companies-manager',
110
            ]
111
        );
112
    }
113
}
114