Agregado metodo, ruta, logica de vuex para obtener rol del usuario logeado

This commit is contained in:
Alejandro Tasistro 2025-05-22 21:04:17 -03:00
parent 181fbf924f
commit 128dd05b9a
3 changed files with 17 additions and 4 deletions

View file

@ -11,12 +11,16 @@ use Illuminate\Support\Facades\Auth;
class UserController extends Controller class UserController extends Controller
{ {
public function rol(Request $request) {
return ["rol" => UserRole::find($request->user()->role_id)->nombre];
}
public function grupoDeCompra(Request $request) public function grupoDeCompra(Request $request)
{ {
$user = Auth::user(); $user = Auth::user();
$result = [ 'grupo_de_compra' => null, ]; $result = [ 'grupo_de_compra' => null, ];
$grupo_de_compra = GrupoDeCompra::find($user->grupo_de_compra_id); $grupo_de_compra = GrupoDeCompra::find($user->grupo_de_compra_id);
switch (UserRole::find($user->role_id)->nombre ?? 'error') { switch (UserRole::findOrFail($user->role_id)->nombre) {
case 'barrio': case 'barrio':
$result['grupo_de_compra'] = new GrupoDeCompraReducido($grupo_de_compra); $result['grupo_de_compra'] = new GrupoDeCompraReducido($grupo_de_compra);
break; break;

View file

@ -5,6 +5,7 @@ const state = {
grupos_de_compra: null, grupos_de_compra: null,
region_elegida: null, region_elegida: null,
grupo_de_compra_elegido: null, grupo_de_compra_elegido: null,
rol: null,
}; };
const mutations = { const mutations = {
@ -18,6 +19,9 @@ const mutations = {
selectGrupoDeCompra(state, { grupo_de_compra }) { selectGrupoDeCompra(state, { grupo_de_compra }) {
state.grupo_de_compra_elegido = grupo_de_compra; state.grupo_de_compra_elegido = grupo_de_compra;
}, },
setRol(state, { rol }) {
state.rol = rol;
},
}; };
const actions = { const actions = {
@ -28,17 +32,21 @@ const actions = {
async selectRegion({ commit }, { region }) { async selectRegion({ commit }, { region }) {
const response = await axios.get("/api/grupos-de-compra"); const response = await axios.get("/api/grupos-de-compra");
commit('setRegionYBarrios', { region: region, grupos_de_compra: response.data[region] }); commit('setRegionYBarrios', { region: region, grupos_de_compra: response.data[region] });
},
async getRol({ commit }) {
const response = await axios.get("/user/rol");
commit('setRol', { rol: response.data.rol });
} }
}; };
const getters = { const getters = {
admin() { adminUrl() {
return window.location.pathname.startsWith('/admin'); return window.location.pathname.startsWith('/admin');
}, },
mensajes() { mensajes() {
return { return {
mensaje: `Contraseña de ${getters.admin() ? 'administración ' : ''}del barrio`, mensaje: `Contraseña de ${getters.adminUrl() ? 'administración ' : ''}del barrio`,
ayuda: `Si no la sabés, consultá a ${getters.admin() ? 'la comisión informática ' : 'tus compañerxs'}.` ayuda: `Si no la sabés, consultá a ${getters.adminUrl() ? 'la comisión informática ' : 'tus compañerxs'}.`
}; };
}, },
}; };

View file

@ -25,6 +25,7 @@ Auth::routes(['register' => false]);
Route::get('/', 'RouteController@home')->name('home'); Route::get('/', 'RouteController@home')->name('home');
Route::middleware(['auth'])->group(function () { Route::middleware(['auth'])->group(function () {
Route::get('/user/rol', 'UserController@rol')->name('user.rol');
Route::get('/user/grupo_de_compra', 'UserController@grupoDeCompra'); Route::get('/user/grupo_de_compra', 'UserController@grupoDeCompra');
}); });