ControllerStartupPermission   A
last analyzed

Complexity

Total Complexity 8

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
eloc 29
c 0
b 0
f 0
dl 0
loc 46
rs 10
wmc 8

1 Method

Rating   Name   Duplication   Size   Complexity  
B index() 0 44 8
1
<?php
2
3
/* 	Divine CMS - Open source CMS for widespread use.
4
    Copyright (c) 2019 Mykola Burakov ([email protected])
5
6
    See SOURCE.txt for other and additional information.
7
8
    This file is part of Divine CMS.
9
10
    This program is free software: you can redistribute it and/or modify
11
    it under the terms of the GNU General Public License as published by
12
    the Free Software Foundation, either version 3 of the License, or
13
    (at your option) any later version.
14
15
    This program is distributed in the hope that it will be useful,
16
    but WITHOUT ANY WARRANTY; without even the implied warranty of
17
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
    GNU General Public License for more details.
19
20
    You should have received a copy of the GNU General Public License
21
    along with this program. If not, see <http://www.gnu.org/licenses/>. */
22
23
class ControllerStartupPermission extends \Divine\Engine\Core\Controller
0 ignored issues
show
Coding Style Compatibility introduced by
PSR1 recommends that each class must be in a namespace of at least one level to avoid collisions.

You can fix this by adding a namespace to your class:

namespace YourVendor;

class YourClass { }

When choosing a vendor namespace, try to pick something that is not too generic to avoid conflicts with other libraries.

Loading history...
24
{
25
    public function index()
0 ignored issues
show
Coding Style introduced by
Expected 2 blank lines before function; 0 found
Loading history...
26
    {
27
        if (isset($this->request->get['route'])) {
28
            $route = '';
29
            
30
            $part = explode('/', $this->request->get['route']);
31
32
            if (isset($part[0])) {
33
                $route .= $part[0];
34
            }
35
36
            if (isset($part[1])) {
37
                $route .= '/' . $part[1];
38
            }
39
40
            // If a 3rd part is found we need to check if its under one of the extension folders.
41
            $extension = array(
42
                'extension/dashboard',
43
                'extension/extension',
44
                'extension/feed',
45
                'extension/module',
46
                'extension/payment',
47
                'extension/shipping',
48
                'extension/theme',
49
                'extension/total'
50
            );
51
52
            if (isset($part[2]) && in_array($route, $extension)) {
53
                $route .= '/' . $part[2];
54
            }
55
            
56
            // We want to ingore some pages from having its permission checked.
57
            $ignore = array(
58
                'common/dashboard',
59
                'common/login',
60
                'common/logout',
61
                'common/forgotten',
62
                'common/reset',
63
                'error/not_found',
64
                'error/permission'
65
            );
66
67
            if (!in_array($route, $ignore) && !$this->user->hasPermission('access', $route)) {
68
                return new \Divine\Engine\Core\Action('error/permission');
69
            }
70
        }
71
    }
72
}
73