Code Duplication    Length = 29-31 lines in 2 locations

src/Middlewares/PermissionMiddleware.php 1 location

@@ 8-38 (lines=31) @@
5
use Closure;
6
use Illuminate\Support\Facades\Auth;
7
8
class PermissionMiddleware
9
{
10
    public function handle($request, Closure $next, $permission)
11
    {
12
        $routeNameRedirect = config('permission.unauthorized_route_name_redirect');
13
14
        if (Auth::guest()) {
15
            if (! is_null($routeNameRedirect)) {
16
                return redirect()
17
                    ->route($routeNameRedirect);
18
            }
19
            abort(403);
20
        }
21
22
        $permissions = is_array($permission)
23
            ? $permission
24
            : explode('|', $permission);
25
26
        foreach ($permissions as $permission) {
27
            if (Auth::user()->can($permission)) {
28
                return $next($request);
29
            }
30
        }
31
32
        if (! is_null($routeNameRedirect)) {
33
            return redirect()
34
                ->route($routeNameRedirect);
35
        }
36
        abort(403);
37
    }
38
}
39

src/Middlewares/RoleMiddleware.php 1 location

@@ 8-36 (lines=29) @@
5
use Closure;
6
use Illuminate\Support\Facades\Auth;
7
8
class RoleMiddleware
9
{
10
    public function handle($request, Closure $next, $role)
11
    {
12
        $routeNameRedirect = config('permission.unauthorized_route_name_redirect');
13
14
        if (Auth::guest()) {
15
            if (! is_null($routeNameRedirect)) {
16
                return redirect()
17
                    ->route($routeNameRedirect);
18
            }
19
            abort(403);
20
        }
21
22
        $role = is_array($role)
23
            ? $role
24
            : explode('|', $role);
25
26
        if (! Auth::user()->hasAnyRole($role)) {
27
            if (! is_null($routeNameRedirect)) {
28
                return redirect()
29
                    ->route($routeNameRedirect);
30
            }
31
            abort(403);
32
        }
33
34
        return $next($request);
35
    }
36
}
37