From 61e4c341f332590c3aa2dac1785ca1324f2edeae Mon Sep 17 00:00:00 2001
From: ale <ale.tasistro@gmail.com>
Date: Sun, 18 May 2025 17:48:38 -0300
Subject: [PATCH] Quitado auth middleware de la ruta, ahora devuelve booleano
 con dato sobre estado de auth + actualizado para guardar el grupo de compra
 entero y no solo la id

---
 app/Http/Controllers/UserController.php | 43 +++++++++++++------------
 resources/js/store/modules/session.js   | 16 ++++-----
 routes/web.php                          |  4 +--
 3 files changed, 31 insertions(+), 32 deletions(-)

diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php
index 6a5d79a..388ad65 100644
--- a/app/Http/Controllers/UserController.php
+++ b/app/Http/Controllers/UserController.php
@@ -8,32 +8,33 @@ use App\Http\Resources\GrupoDeCompraResource;
 use App\UserRole;
 use Illuminate\Http\Request;
 use Illuminate\Support\Facades\Auth;
-use App\User;
-use Illuminate\Support\Facades\Log;
 
 class UserController extends Controller
 {
     public function session(Request $request)
     {
-        $user = Auth::user();
-        $role = UserRole::find($user->role_id);
-        $grupo_de_compra = GrupoDeCompra::find($user->grupo_de_compra_id);
-        $result = [
-            'role_id' => $user->role_id,
-            'grupo_de_compra' => null,
-        ];
-        switch ($role->nombre ?? 'error') {
-            case 'barrio':
-                $result['grupo_de_compra'] = new GrupoDeCompraReducidoResource($grupo_de_compra);
-                break;
-            case 'admin_barrio':
-                $result['grupo_de_compra'] = new GrupoDeCompraResource($grupo_de_compra);
-                break;
-            case 'comision':
-                break;
-            default:
-                abort(400, 'Rol invalido');
+        if (Auth::check()) {
+            $user = Auth::user();
+            $grupo_de_compra = GrupoDeCompra::find($user->grupo_de_compra_id);
+            $result = [
+                'is_authenticated' => true,
+                'role_id' => $user->role_id,
+                'grupo_de_compra' => null,
+            ];
+            switch (UserRole::find($user->role_id)->nombre ?? 'error') {
+                case 'barrio':
+                    $result['grupo_de_compra'] = new GrupoDeCompraReducidoResource($grupo_de_compra);
+                    break;
+                case 'admin_barrio':
+                    $result['grupo_de_compra'] = new GrupoDeCompraResource($grupo_de_compra);
+                    break;
+                case 'comision':
+                    break;
+                default:
+                    abort(400, 'Rol invalido');
+            }
+            return $result;
         }
-        return $result;
+        return ['is_authenticated' => false];
     }
 }
diff --git a/resources/js/store/modules/session.js b/resources/js/store/modules/session.js
index 9dd00d2..dfbe183 100644
--- a/resources/js/store/modules/session.js
+++ b/resources/js/store/modules/session.js
@@ -1,23 +1,23 @@
 const state = {
+    isAuthenticated: false,
     role_id: null,
-    grupo_de_compra_id: null,
+    grupo_de_compra: null,
 };
 
 const mutations = {
-    SET_SESSION(state, { role_id, grupo_de_compra_id }) {
+    SET_SESSION(state, { role_id, grupo_de_compra, is_authenticated }) {
+        state.isAuthenticated = is_authenticated;
         state.role_id = role_id;
-        state.grupo_de_compra_id = grupo_de_compra_id;
+        state.grupo_de_compra = grupo_de_compra;
+
+        console.log(state);
     },
 };
 
 const actions = {
     async fetchSession({ commit }) {
         const response = await axios.get('/session');
-        console.log(response.data);
-        commit('SET_SESSION', {
-            role_id: response.data.role_id,
-            grupo_de_compra_id: response.data.grupo_de_compra_id,
-        });
+        commit('SET_SESSION', response.data);
     },
 };
 
diff --git a/routes/web.php b/routes/web.php
index b21cfbd..de16ed6 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -24,9 +24,7 @@ Auth::routes(['register' => false]);
 
 Route::get('/', 'RouteController@home')->name('home');
 
-Route::middleware('auth')->group(function () {
-    Route::get('/session', 'UserController@session')->name('session');
-});
+Route::get('/session', 'UserController@session')->name('session');
 
 Route::middleware(['auth', 'role:barrio'])->group( function() {
     Route::get('/productos', 'ProductoController@index')->name('productos.index');