Как я могу решить проблему с промежуточным программным обеспечением относительно объекта `file`, отправленного из Бэкэнда? - PullRequest
0 голосов
/ 22 февраля 2019

Моя проблема в том, что когда я хочу получить доступ к маршруту, я получаю сообщение об ошибке 403 (доступ не разрешен), я должен удалить его из маршрута middleware , который группирует все модели моей базы данных,для управления ролями и разрешениями, которые должен иметь каждый пользователь системы, который я разрабатываю (как показано ниже)

web.php

<?php

// ACCESO
Route::get('/', 'AccesoController@index');
Route::post('/login', 'AccesoController@login')->name('login');
Route::get('/logout', 'AccesoController@logout')->name('logout');


Route::get('/archivo/archivos_palabra/{idModulo}', 'ArchivoController@index')->name('archivo');

// MODULOS
Route::group(['middleware' => ['verifica_session', 'verifica_permiso']], function () {

    // archivo

    Route::post('/archivo/form', 'ArchivoController@form')->name('archivo.form');
    Route::post('/archivo/save', 'ArchivoController@save')->name('archivo.save');
    Route::post('/archivo/delete', 'ArchivoController@delete')->name('archivo.delete');



});

установка в Kernel.php

'verifica_session' => \App\Http\Middleware\verificaSessionMiddleware::class, 
'verifica_permiso' => \App\Http\Middleware\verificaPermisoMiddleware::class,

verificaPermisoMiddleware.php

<?php

namespace App\Http\Middleware;

use Closure;
use Session;

class verificaPermisoMiddleware {
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next) {
        $recurso = substr($request->getPathInfo(), 1);

        $tienePermiso = ($recurso == 'principal' || $recurso == 'perfil');

        if(!$tienePermiso) {
            foreach (session('recursos') as $objetoRecurso) {

                if(starts_with($recurso, $objetoRecurso->nombreRecurso)) {
                    if($objetoRecurso->esMenu) {
                        Session::put('menu-item', ('menu-item-' . $objetoRecurso->nombreRecurso));
                    }
                    $tienePermiso = true;
                    break;
                }
            }
        }
        if($tienePermiso) {
            return $next($request);
        } else {
            abort(403);
        }
    }
}

verificaSessionMiddleware.php

<?php

namespace App\Http\Middleware;

use Closure;

class verificaSessionMiddleware {
    /**
     * Handle an incoming request.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  \Closure  $next
     * @return mixed
     */
    public function handle($request, Closure $next) {
        if(session('username')) {
            return $next($request);
        } else {
            return redirect('/');
        }

    }
}

Я должен сообщить вам, что у меня есть другие маршруты, которые работают правильно в маршруте промежуточного программного обеспечения, которые работают правильно, как я могу решить эту проблему, пожалуйста?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...