Code Duplication    Length = 23-25 lines in 2 locations

src/Middlewares/PermissionMiddleware.php 1 location

@@ 9-33 (lines=25) @@
6
use Illuminate\Support\Facades\Auth;
7
use Spatie\Permission\Exceptions\UnauthorizedException;
8
9
class PermissionMiddleware
10
{
11
    public function handle($request, Closure $next, $permission, $guard = null)
12
    {
13
        if (is_null($guard)) {
14
            $guard = (require config_path('auth.php'))['defaults']['guard'];
15
        }
16
17
        if (Auth::guard($guard)->guest()) {
18
            throw UnauthorizedException::notLoggedIn();
19
        }
20
21
        $permissions = is_array($permission)
22
            ? $permission
23
            : explode('|', $permission);
24
25
        foreach ($permissions as $permission) {
26
            if (Auth::guard($guard)->user()->can($permission, $guard)) {
27
                return $next($request);
28
            }
29
        }
30
31
        throw UnauthorizedException::forPermissions($permissions);
32
    }
33
}
34
35

src/Middlewares/RoleMiddleware.php 1 location

@@ 9-31 (lines=23) @@
6
use Illuminate\Support\Facades\Auth;
7
use Spatie\Permission\Exceptions\UnauthorizedException;
8
9
class RoleMiddleware
10
{
11
    public function handle($request, Closure $next, $role, $guard = null)
12
    {
13
        if (is_null($guard)) {
14
            $guard = (require config_path('auth.php'))['defaults']['guard'];
15
        }
16
        
17
        if (Auth::guard($guard)->guest()) {
18
            throw UnauthorizedException::notLoggedIn();
19
        }
20
21
        $roles = is_array($role)
22
            ? $role
23
            : explode('|', $role);
24
25
        if (! Auth::guard($guard)->user()->hasAnyRole($roles, $guard)) {
26
            throw UnauthorizedException::forRoles($roles);
27
        }
28
29
        return $next($request);
30
    }
31
}
32