Code Coverage
 
Classes and Traits
Functions and Methods
Lines
Total
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
CRAP
0.00% covered (danger)
0.00%
0 / 77
CheckPermission
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
1406
0.00% covered (danger)
0.00%
0 / 77
 handle
0.00% covered (danger)
0.00%
0 / 1
1406
0.00% covered (danger)
0.00%
0 / 77
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Route;
use GetShiftDetailHelper;
class CheckPermission
{
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @param  string|null  $guard
     * @return mixed
     */
    public function handle($request, Closure $next, $guard = null)
    {
        /*if (Auth::guard($guard)->check()) {*/
        $currentroutename = Route::currentRouteName();
        $route_basic_name = array();
        $route_basic_name = explode(".", $currentroutename);
        switch ($route_basic_name[0]) {
            case "organisation":
                if (auth()->user()->can('View organization module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "department":
                if (auth()->user()->can('View Departments module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "team":
                if (auth()->user()->can('View Team module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "shift":
                if (auth()->user()->can('View Shifts module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "role":
                if (auth()->user()->can('View Roles module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "user-details":
                if (auth()->user()->can('View Users module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "platform":
                if (auth()->user()->can('View Users module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
                case "GeoFence":
                    if (auth()->user()->can('View Users module'))
                        return $next($request);
                    else
                        return redirect('/home');
                    break;
            case "holiday":
                if (auth()->user()->can('View Holidays (Master List) module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "holiday-list":
                if (auth()->user()->can('View Holiday List module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "leave":
                if (auth()->user()->can('View define leaves'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "setting":
                if (auth()->user()->can('View Settings module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "audit":
                if (auth()->user()->can('View Audit Log module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "notification":
                if (auth()->user()->can('View setup module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "holidaycalendar":
                if (auth()->user()->can('View Holiday List module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "manage-team":
                if (count(GetShiftDetailHelper::getMyReportingEmployeesIds()) > 0)
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "my-team":
                if (count(GetShiftDetailHelper::getMyReportingEmployeesIds()) > 0)
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "platform":
                if (auth()->user()->can('View Platform module'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
                
            default:
                return redirect('/home');
        }
    }
}