SubsiteMemberReportExtension   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 37
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 3

Importance

Changes 0
Metric Value
wmc 1
lcom 1
cbo 3
dl 0
loc 37
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
A getSubsiteDescription() 0 10 1
1
<?php
2
3
namespace SilverStripe\SecurityReport\Subsites;
4
5
use SilverStripe\ORM\DataExtension;
6
use SilverStripe\Subsites\Model\Subsite;
7
8
/**
9
 * Adds 'SubsiteDescription' for to show which subsites this Member has edit access to
10
 *
11
 * @author Damian Mooyman <[email protected]>
12
 */
13
class SubsiteMemberReportExtension extends DataExtension
14
{
15
    
16
    /**
17
     * Set cast of additional field
18
     *
19
     * @var array
20
     * @config
21
     */
22
    private static $casting = array(
23
        'SubsiteDescription' => 'Text'
24
    );
25
    
26
    /**
27
     * Default permission to filter for
28
     *
29
     * @var string
30
     * @config
31
     */
32
    private static $subsite_description_permission = 'SITETREE_EDIT_ALL';
33
    
34
    /**
35
     * Describes the subsites this user has SITETREE_EDIT_ALL access to
36
     *
37
     * @return string
38
     */
39
    public function getSubsiteDescription()
40
    {
41
        $subsites = Subsite::accessible_sites(
42
            $this->owner->config()->get('subsite_description_permission'),
43
            true,
44
            "Main site",
45
            $this->owner
46
        );
47
        return implode(', ', $subsites->column('Title'));
48
    }
49
}
50