Completed
Pull Request — master (#2)
by ARCANEDEV
03:02
created

PermissionsGroupsComposer::composeFilters()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 20
ccs 0
cts 17
cp 0
rs 9.4286
cc 2
eloc 11
nc 2
nop 1
crap 6
1
<?php namespace Arcanesoft\Auth\ViewComposers;
2
3
use Arcanesoft\Auth\Bases\ViewComposer;
4
use Arcanesoft\Auth\Models\PermissionsGroup;
5
use Illuminate\Contracts\View\View;
6
7
/**
8
 * Class     PermissionsGroupsComposer
9
 *
10
 * @package  Arcanesoft\Auth\ViewComposers
11
 * @author   ARCANEDEV <[email protected]>
12
 */
13
class PermissionsGroupsComposer extends ViewComposer
14
{
15
    /* ------------------------------------------------------------------------------------------------
16
     |  Properties
17
     | ------------------------------------------------------------------------------------------------
18
     */
19
    /**
20
     * @var  \Arcanesoft\Auth\Models\PermissionsGroup
21
     */
22
    protected $permissionsGroup;
23
24
    /* ------------------------------------------------------------------------------------------------
25
     |  Constructor
26
     | ------------------------------------------------------------------------------------------------
27
     */
28
    /**
29
     * PermissionsGroupsComposer constructor.
30
     *
31
     * @param  \Arcanesoft\Auth\Models\PermissionsGroup  $permissionsGroup
32
     */
33
    public function __construct(PermissionsGroup $permissionsGroup)
34
    {
35
        $this->permissionsGroup = $permissionsGroup;
36
    }
37
38
    /* ------------------------------------------------------------------------------------------------
39
     |  Main Functions
40
     | ------------------------------------------------------------------------------------------------
41
     */
42
    /**
43
     * Compose the view.
44
     *
45
     * @param  \Illuminate\Contracts\View\View  $view
46
     */
47
    public function composeFilters(View $view)
48
    {
49
        $filters   = [];
50
        $groups    = $this->cacheResults('auth-permissions-groups', function () {
51
            return $this->permissionsGroup->all();
52
        });
53
54
        $filters[] = link_to_route('auth::foundation.permissions.index', 'All');
55
        foreach ($groups as $group) {
56
            /** @var  PermissionsGroup  $group */
57
            $filters[] = link_to_route('auth::foundation.permissions.group', $group->name, [
58
                $group->hashed_id
59
            ]);
60
        }
61
        $filters[] = link_to_route('auth::foundation.permissions.group', 'Custom', [
62
            hasher()->encode(0)
63
        ]);
64
65
        $view->with('groupFilters', $filters);
66
    }
67
}
68