Моя проблема в том, что когда я хочу получить доступ к маршруту, я получаю сообщение об ошибке 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('/');
}
}
}
Я должен сообщить вам, что у меня есть другие маршруты, которые работают правильно в маршруте промежуточного программного обеспечения, которые работают правильно, как я могу решить эту проблему, пожалуйста?