Failed Conditions
Push — master ( 7bc298...ac263b )
by Maximo
20s queued 11s
created

AclTask   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 102
Duplicated Lines 0 %

Test Coverage

Coverage 0%

Importance

Changes 6
Bugs 0 Features 1
Metric Value
eloc 52
dl 0
loc 102
ccs 0
cts 19
cp 0
rs 10
c 6
b 0
f 1
wmc 4

3 Methods

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