Completed
Push — master ( 01cdf2...ef180e )
by wen
02:58
created

AdminMenu::getCurrentMenuIds()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 10
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
c 0
b 0
f 0
dl 0
loc 10
rs 9.4285
ccs 0
cts 0
cp 0
cc 2
eloc 6
nc 2
nop 0
crap 6
1
<?php
2
3
namespace Sco\Admin\Http\Middleware;
4
5
use Closure;
6
use Route;
7
use Sco\Admin\Models\Permission;
8
9
class AdminMenu
10
{
11
    /**
12
     * Handle an incoming request.
13
     *
14
     * @param \Illuminate\Http\Request $request
15
     * @param \Closure                 $next
16
     *
17
     * @return mixed
18
     */
19
    public function handle($request, Closure $next)
20
    {
21
        $request->attributes->set('admin.menu', $this->getAdminMenu());
22
        return $next($request);
23
    }
24
25
    protected function getAdminMenu()
26
    {
27
        return $this->checkMenuPermission((new Permission())->getMenuList());
28
29
    }
30
31
    private function checkMenuPermission($list)
32
    {
33
34
        $return = $list->filter(function ($permission, $key) {
0 ignored issues
show
Unused Code introduced by
The parameter $key is not used and could be removed.

This check looks from parameters that have been defined for a function or method, but which are not used in the method body.

Loading history...
35
            if (request()->user()->can($permission->name)) {
36
                if (!$permission->child->isEmpty()) {
37
                    $permission->child = $this->checkMenuPermission($permission->child);
38
                }
39
                return $permission;
40
            }
41
        });
42
43
        return $return;
44
    }
45
}
46