PermissionController   A
last analyzed

Complexity

Total Complexity 9

Size/Duplication

Total Lines 88
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 9
eloc 17
c 1
b 0
f 0
dl 0
loc 88
rs 10

7 Methods

Rating   Name   Duplication   Size   Complexity  
A delete() 0 12 3
A index() 0 5 1
A create() 0 3 1
A edit() 0 3 1
A update() 0 6 1
A store() 0 5 1
A show() 0 5 1
1
<?php
2
3
namespace Itstructure\LaRbac\Http\Controllers;
4
5
use Itstructure\LaRbac\Models\Permission;
6
use Itstructure\LaRbac\Http\Requests\{
7
    StorePermission as StorePermissionRequest,
8
    UpdatePermission as UpdatePermissionRequest,
9
    Delete as DeletePermissionRequest
10
};
11
use Itstructure\GridView\DataProviders\EloquentDataProvider;
12
13
/**
14
 * Class PermissionController
15
 *
16
 * @package Itstructure\LaRbac\Http\Controllers
17
 *
18
 * @author Andrey Girnik <[email protected]>
19
 */
20
class PermissionController extends Controller
21
{
22
    /**
23
     * Get list of all permissions.
24
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
25
     */
26
    public function index()
27
    {
28
        $dataProvider = new EloquentDataProvider(Permission::query());
29
30
        return view('rbac::permissions.index', compact('dataProvider'));
31
    }
32
33
    /**
34
     * Render page to create new permission.
35
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
36
     */
37
    public function create()
38
    {
39
        return view('rbac::permissions.create');
40
    }
41
42
    /**
43
     * Store new permission data.
44
     * @param StorePermissionRequest $request
45
     * @return \Illuminate\Http\RedirectResponse
46
     */
47
    public function store(StorePermissionRequest $request)
48
    {
49
        Permission::create($request->all());
50
51
        return redirect()->route('list_permissions');
52
    }
53
54
    /**
55
     * Render page to edit current permission.
56
     * @param Permission $permission
57
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
58
     */
59
    public function edit(Permission $permission)
60
    {
61
        return view('rbac::permissions.edit', compact('permission'));
62
    }
63
64
    /**
65
     * Update current permission data.
66
     * @param Permission $permission
67
     * @param UpdatePermissionRequest $request
68
     * @return \Illuminate\Http\RedirectResponse
69
     */
70
    public function update(Permission $permission, UpdatePermissionRequest $request)
71
    {
72
        $permission->fill($request->all())->save();
73
74
        return redirect()->route('show_permission', [
75
            'id' => $permission->id
76
        ]);
77
    }
78
79
    /**
80
     * Render page to show current permission.
81
     * @param int $id
82
     * @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
83
     */
84
    public function show(int $id)
85
    {
86
        $permission = Permission::findOrFail($id);
87
88
        return view('rbac::permissions.show', compact('permission'));
89
    }
90
91
    /**
92
     * Delete current permission data.
93
     * @param DeletePermissionRequest $request
94
     * @return \Illuminate\Http\RedirectResponse
95
     */
96
    public function delete(DeletePermissionRequest $request)
97
    {
98
        foreach ($request->items as $item) {
99
100
            if (!is_numeric($item)) {
101
                continue;
102
            }
103
104
            Permission::destroy($item);
105
        }
106
107
        return redirect()->route('list_permissions');
108
    }
109
}
110