Completed
Push — master ( c988cc...de9480 )
by Andrii
06:12
created

AuthManager::saveBasicAssignments()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 3
CRAP Score 1

Importance

Changes 0
Metric Value
dl 0
loc 4
ccs 3
cts 3
cp 1
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
crap 1
1
<?php
2
3
/*
4
 * RBAC implementation for HiPanel
5
 *
6
 * @link      https://github.com/hiqdev/hipanel-rbac
7
 * @package   hipanel-rbac
8
 * @license   BSD-3-Clause
9
 * @copyright Copyright (c) 2016, HiQDev (http://hiqdev.com/)
10
 */
11
12
namespace hipanel\rbac;
13
14
use Yii;
15
16
/**
17
 * HiPanel AuthManager.
18
 *
19
 * @author Andrii Vasyliev <[email protected]>
20
 */
21
class AuthManager extends \yii\rbac\PhpManager
22
{
23
    public $itemFile       = '@hipanel/rbac/files/items.php';
24
    public $ruleFile       = '@hipanel/rbac/files/rules.php';
25
    public $assignmentFile = '@hipanel/rbac/files/assignments.php';
26
27
    use SetterTrait;
28
29
    /**
30
     * We don't keep all the assignments, only persistent.
31
     * @see persistAssignments
32
     */
33 6
    protected function saveAssignments()
34
    {
35 6
    }
36
37
    /**
38
     * Does real assignments saving.
39
     * The idea is to split persistent assignments from session only.
40
     */
41 3
    public function persistAssignments()
42
    {
43 3
        parent::saveAssignments();
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (saveAssignments() instead of persistAssignments()). Are you sure this is correct? If so, you might want to change this to $this->saveAssignments().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
44 3
    }
45
46 6
    public function checkAccess($userId, $permission, $params = [])
47
    {
48 6
        $this->setCurrentUserRole();
49 6
        if ($userId === $this->getIdentity()->id) {
50
            $userId = $this->getIdentity()->username;
51
        }
52
53 6
        return parent::checkAccess($userId, $permission, $params);
54
    }
55
56
    protected $_currentUserRole;
57
58 6
    public function setCurrentUserRole()
59
    {
60 6
        if ($this->_currentUserRole === null) {
61 6
            $this->_currentUserRole = $this->getIdentity()->type ?: '';
62 6
            if ($this->_currentUserRole) {
63
                $this->setAssignment($this->_currentUserRole, $this->getIdentity()->username);
64
            }
65 6
        }
66 6
    }
67
68 6
    public function getIdentity()
69
    {
70 6
        return Yii::$app->user->identity;
71
    }
72
}
73