<?php

namespace App\Http\Middleware;

use Closure;

class RevisarPerfil
{
    /**
     * Revisa si el usuario actual tiene permiso para acceder al recurso solicitado.
     * Creado por Fabian Sanchez 24/11/2017
     *
     * @param  \Illuminate\Http\Request $request
     * @param  \Closure $next
     * @return mixed
     */
    public function handle($request, Closure $next)
    {
        //Obtenemos la direccion a la que quiere acceder el usuario
        $path = $request->path();

        //Obtenemos los modulos de la sesion actual
        if (!isset($_SESSION)) session_start();
        $modulos = $_SESSION['accesos'];

        //Iteramos sobre los modulos
        foreach ($modulos as $modulo) {
            //Iteramos sobre cada acceso de cada modulo
            foreach ($modulo['accesos'] as $acceso) {
                //Si la ruta que quiere acceder existe en los accesos se le deja continuar
                if($acceso['url'] == $path)
                    return $next($request);
            }
        }

        //Si el usuario no tubo acceso a la ruta se manda un 403
        abort(403);

    }
}
