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 / 37
AttendancePermission
0.00% covered (danger)
0.00%
0 / 1
0.00% covered (danger)
0.00%
0 / 1
650
0.00% covered (danger)
0.00%
0 / 37
 handle
0.00% covered (danger)
0.00%
0 / 1
650
0.00% covered (danger)
0.00%
0 / 37
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Support\Facades\Auth;
use Route;
class AttendancePermission
{
    /**
     * 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 "approve-attendance":
                if(auth()->user()->can('View All Attendance request') || auth()->user()->can('View All Attendance requests of assigned employees'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "update-attendance":
                if(auth()->user()->can('Can mark Attendance for all employees') || auth()->user()->can('Can mark Attendance for reporting employees'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "attendance-approval":
                if(auth()->user()->can('View Attendance Approval'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "request-attendance":
                if(auth()->user()->can('Request Attendance For Self'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "attendance-individual-report":
                if(auth()->user()->can('View Self Attendance Report'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "attendance-report":
                if(auth()->user()->can('View All Attendance Report') || auth()->user()->can('View Team Attendance Report') || auth()->user()->can('View Reporting Employees Report'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
                case "daily-attendance-report":
                if(auth()->user()->can('View My Daily Attendance Report') ||auth()->user()->can('View My Team Daily Attendance Report') ||auth()->user()->can('View Org Daily Attendance Report'))
                    return $next($request);
                else
                    return redirect('/home');
                break;
            case "attendance-request-report":
                if(auth()->user()->can('View All Attendance Report') || auth()->user()->can('View Team Attendance Report') || auth()->user()->can('View Reporting Employees Report'))
                    return $next($request);
                else
                    return redirect('/home');
                break;    
            default:
                return redirect('/home');
        }
    }
}