Passed
Push — master ( 27a2d0...ca40cb )
by Daniel
17:58 queued 10:56
created

TestPermissionNode::canDelete()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 2
nop 1
dl 0
loc 6
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace SilverStripe\Security\Tests\InheritedPermissionsTest;
4
5
use SilverStripe\Core\Injector\Injector;
6
use SilverStripe\Dev\TestOnly;
7
use SilverStripe\ORM\DataObject;
8
use SilverStripe\Security\InheritedPermissions;
9
use SilverStripe\Security\InheritedPermissionsExtension;
10
use SilverStripe\Security\Member;
11
use SilverStripe\Security\PermissionChecker;
12
use SilverStripe\Security\Security;
13
use SilverStripe\Versioned\Versioned;
14
15
/**
16
 * @method TestPermissionNode Parent()
17
 * @mixin Versioned
18
 * @mixin InheritedPermissionsExtension
19
 */
20
class TestPermissionNode extends DataObject implements TestOnly
21
{
22
    private static $db = [
23
        "Title" => "Varchar(255)",
24
    ];
25
26
    private static $has_one = [
27
        "Parent" => self::class,
28
    ];
29
30
    private static $table_name = 'InheritedPermissionsTest_TestPermissionNode';
31
32
    private static $extensions = [
33
        Versioned::class,
34
        InheritedPermissionsExtension::class,
35
    ];
36
37
    /**
38
     * @return InheritedPermissions
39
     */
40
    public static function getInheritedPermissions()
41
    {
42
        /** @var InheritedPermissions $permissions */
43
        return Injector::inst()->get(PermissionChecker::class . '.testpermissions');
44
    }
45
46
    public function canEdit($member = null)
47
    {
48
        if (!$member) {
49
            $member = Security::getCurrentUser();
50
        }
51
        return static::getInheritedPermissions()->canEdit($this->ID, $member);
52
    }
53
54
    public function canView($member = null)
55
    {
56
        if (!$member) {
57
            $member = Security::getCurrentUser();
58
        }
59
        return static::getInheritedPermissions()->canView($this->ID, $member);
60
    }
61
62
    public function canDelete($member = null)
63
    {
64
        if (!$member) {
65
            $member = Security::getCurrentUser();
66
        }
67
        return static::getInheritedPermissions()->canDelete($this->ID, $member);
68
    }
69
}
70