diff --git a/app/Http/Controllers/Auth/LoginController.php b/app/Http/Controllers/Auth/LoginController.php index c4092fa..f8386c0 100644 --- a/app/Http/Controllers/Auth/LoginController.php +++ b/app/Http/Controllers/Auth/LoginController.php @@ -31,14 +31,7 @@ class LoginController extends Controller protected function authenticated(Request $request, $user) { - if ($user->is_compras) { - return redirect('compras/pedidos'); - } else if ($user->is_admin) { - session(['admin_gdc' => $user->grupo_de_compra_id]); - return redirect('admin/pedidos'); - } else { - return redirect('/'); - } + return redirect('/'); } /** diff --git a/app/Http/Controllers/RouteController.php b/app/Http/Controllers/RouteController.php new file mode 100644 index 0000000..8802251 --- /dev/null +++ b/app/Http/Controllers/RouteController.php @@ -0,0 +1,30 @@ +first(); + $admin = UserRole::where('nombre', 'admin_barrio')->first(); + $comision = UserRole::where('nombre', 'comision')->first(); + + switch ($request->user()->role_id) { + case $barrio->id: + return redirect('/productos'); + case $admin->id: + return redirect('/admin'); + case $comision->id: + return redirect('/compras'); + default: + abort(400, 'Rol de usuario invalido'); + } + } +} diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index 704089a..e499bdc 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -3,6 +3,7 @@ namespace App\Http\Middleware; use Illuminate\Auth\Middleware\Authenticate as Middleware; +use Illuminate\Support\Facades\Auth; class Authenticate extends Middleware { @@ -14,7 +15,12 @@ class Authenticate extends Middleware */ protected function redirectTo($request) { - if (! $request->expectsJson()) { + if (!$request->expectsJson()) { + $path = $request->path(); + if (preg_match('~^admin.*~i', $path)) + return route('admin.login'); + if (preg_match('~^compras.*~i', $path)) + return route('compras.login'); return route('login'); } } diff --git a/resources/views/auth/admin_login.blade.php b/resources/views/auth/admin_login.blade.php index f1d4a07..c288df8 100644 --- a/resources/views/auth/admin_login.blade.php +++ b/resources/views/auth/admin_login.blade.php @@ -22,7 +22,7 @@ @enderror -
+ @csrf diff --git a/resources/views/auth/compras_login.blade.php b/resources/views/auth/compras_login.blade.php index 6217038..ba28780 100644 --- a/resources/views/auth/compras_login.blade.php +++ b/resources/views/auth/compras_login.blade.php @@ -22,7 +22,7 @@ ContraseƱa incorrecta, intentalo nuevamente. @enderror - + @csrf
diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 822042a..8425226 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -24,7 +24,7 @@ @enderror -
+ @csrf diff --git a/routes/web.php b/routes/web.php index 87ab4af..38ad6b1 100644 --- a/routes/web.php +++ b/routes/web.php @@ -20,13 +20,11 @@ if (App::environment('production')) { URL::forceScheme('https'); } -Route::get('/', 'ProductoController@index')->name('productos'); +Route::get('/', 'RouteController@home')->name('home'); Auth::routes(['register' => false]); -Route::get('/productos', 'ProductoController@index')->name('productos.index'); - -Route::get('/admin', 'AdminController@show')->name('admin_login.show'); +Route::get('/admin/login', 'AdminController@show')->name('admin.login'); Route::get('/admin/obtener_sesion', function() { return [ @@ -34,8 +32,8 @@ Route::get('/admin/obtener_sesion', function() { ]; })->name('admin_obtener_sesion'); -Route::middleware(['auth', 'admin'])->group( function () { - Route::get('/admin/pedidos', 'AdminController@index')->name('admin_login.index'); +Route::middleware(['auth', 'role:admin_barrio'])->group( function () { + Route::get('/admin', 'AdminController@index')->name('admin.pedidos'); Route::get('/admin/exportar-planillas-a-pdf/{gdc}', 'AdminController@exportarPedidosAPdf'); @@ -44,7 +42,8 @@ Route::middleware(['auth', 'admin'])->group( function () { Route::get('/admin/exportar-pedido-con-nucleos-a-csv/{gdc}', 'AdminController@exportarPedidoConNucleosACSV'); }); -Route::middleware('auth')->group( function() { +Route::middleware(['auth', 'role:barrio'])->group( function() { + Route::get('/productos', 'ProductoController@index')->name('productos.index'); Route::name('subpedidos.')->prefix("subpedidos")->group( function() { Route::get('/', function() { @@ -77,10 +76,10 @@ Route::middleware('auth')->group( function() { }); }); -Route::get('/compras', 'ComprasController@show')->name('compras_login.show'); +Route::get('/compras/login', 'ComprasController@show')->name('compras.login'); -Route::middleware(['compras'])->group( function() { - Route::get('/compras/pedidos', 'ComprasController@indexPedidos')->name('compras.pedidos'); +Route::middleware(['auth', 'role:comision'])->group( function() { + Route::get('/compras', 'ComprasController@indexPedidos')->name('compras.pedidos'); Route::get('/compras/pedidos/descargar', 'ComprasController@descargarPedidos')->name('compras.pedidos.descargar'); Route::get('/compras/pedidos/notas', 'ComprasController@descargarNotas')->name('compras.pedidos.descargar'); Route::get('/compras/pedidos/pdf', 'ComprasController@pdf')->name('compras.pedidos.pdf');