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

AclTask::crmAction()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
nc 1
nop 0
dl 0
loc 15
ccs 0
cts 10
cp 0
crap 2
rs 9.7666
c 0
b 0
f 0
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
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
54
    /**
55
     * Default ecosystem ACL.
56
     *
57
     * @return void
58
     */
59
    public function kanvas(): void
60
    {
61
        $this->acl->addResource(
62
            'Default.SettingsMenu',
63
            [
64
                'company-settings',
65
                'app-settings',
66
                'companies-manager',
67
            ]
68
        );
69
70
        $defaultResources = [
71
            'Default.CompanyBranches',
72
            'Default.CompanyUsers',
73
            'Default.CompanyRoles',
74
            'Default.CompanySubscriptions',
75
            'Default.CustomFields',
76
            'Default.CompaniesManager',
77
        ];
78
79
        foreach ($defaultResources as $resource) {
80
            $this->acl->addResource(
81
                $resource,
82
                [
83
                    'read',
84
                    'list',
85
                    'create',
86
                    'update',
87
                    'delete'
88
                ]
89
            );
90
91
            $this->acl->allow(
92
                'Admins',
93
                $resource,
94
                [
95
                    'read',
96
                    'list',
97
                    'create',
98
                    'update',
99
                    'delete'
100
                ]
101
            );
102
        }
103
104
        $this->acl->allow(
105
            'Admins',
106
            'Default.SettingsMenu',
107
            [
108
                'company-settings',
109
                'app-settings',
110
                'companies-manager',
111
            ]
112
        );
113
    }
114
}
115