Failed Conditions
Push — master ( ac263b...4e0e48 )
by Maximo
17s queued 12s
created

AclTask::setupDefaultRoles()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 8
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 5
c 0
b 0
f 0
nc 1
nop 0
dl 0
loc 8
ccs 0
cts 3
cp 0
crap 2
rs 10
1
<?php
2
3
namespace Canvas\Cli\Tasks;
4
5
use Phalcon\Cli\Task as PhTask;
0 ignored issues
show
Bug introduced by
The type Phalcon\Cli\Task was not found. Maybe you did not declare it correctly or list all dependencies?

The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g. excluded_paths: ["lib/*"], you can move it to the dependency path list as follows:

filter:
    dependency_paths: ["lib/*"]

For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths

Loading history...
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->setupDefaultRoles();
24
        $this->kanvas();
25
    }
26
27
    /**
28
     * Create the default roles of the system.
29
     *
30
     * @return void
31
     */
32
    public function setupDefaultRoles()
33
    {
34
        $this->acl->addRole('Default.Admins');
35
        $this->acl->addRole('Default.Agents');
36
        $this->acl->addRole('Default.Users');
37
38
        $this->acl->addResource('Default.Users', ['read', 'list', 'create', 'update', 'delete', 'test-create', 'test-update']);
39
        $this->acl->allow('Admins', 'Default.Users', ['read', 'list', 'create', 'update', 'delete']);
40
    }
41
42
    /**
43
     * Default roles for the crm system.
44
     *
45
     * @return void
46
     */
47
    public function crmAction()
48
    {
49
        $this->acl->addRole('CRM.Users');
50
        $this->acl->addResource('CRM.Users', ['read', 'list', 'create', 'update', 'delete']);
51
        $this->acl->allow('Users', 'CRM.Users', ['read', 'list', 'create']);
52
        $this->acl->deny('Users', 'CRM.Users', ['update', 'delete']);
53
54
        //Apps Settings
55
        $this->acl->addResource('CRM.AppsSettings', ['read', 'list', 'create', 'update', 'delete']);
56
        $this->acl->allow('Users', 'CRM.AppsSettings', ['read', 'list', 'create', 'update', 'delete']);
57
58
        //Companies Settings
59
        $this->acl->addResource('CRM.CompaniesSettings', ['read', 'list', 'create', 'update', 'delete']);
60
        $this->acl->allow('Users', 'CRM.CompaniesSettings', ['read', 'list', 'create', 'update', 'delete']);
61
62
        //Apps plans
63
        $this->acl->addResource('CRM.Apps-plans', ['read', 'list', 'create', 'update', 'delete']);
64
        $this->acl->allow('Users', 'CRM.Apps-plans', ['read', 'list', 'create', 'update', 'delete']);
65
    }
66
67
    /**
68
     * Default ecosystem ACL.
69
     *
70
     * @return void
71
     */
72
    public function kanvas(): void
73
    {
74
        $this->acl->addResource(
75
            'Default.SettingsMenu',
76
            [
77
                'company-settings',
78
                'app-settings',
79
                'companies-manager',
80
            ]
81
        );
82
83
        $defaultResources = [
84
            'Default.CompanyBranches',
85
            'Default.CompanyUsers',
86
            'Default.CompanyRoles',
87
            'Default.CompanySubscriptions',
88
            'Default.CustomFields',
89
            'Default.CompaniesManager',
90
            'Default.Apps-plans'
91
        ];
92
93
        foreach ($defaultResources as $resource) {
94
            $this->acl->addResource(
95
                $resource,
96
                [
97
                    'read',
98
                    'list',
99
                    'create',
100
                    'update',
101
                    'delete'
102
                ]
103
            );
104
105
            $this->acl->allow(
106
                'Admins',
107
                $resource,
108
                [
109
                    'read',
110
                    'list',
111
                    'create',
112
                    'update',
113
                    'delete'
114
                ]
115
            );
116
        }
117
118
        $this->acl->allow(
119
            'Admins',
120
            'Default.SettingsMenu',
121
            [
122
                'company-settings',
123
                'app-settings',
124
                'companies-manager',
125
            ]
126
        );
127
    }
128
}
129