ahora esta la gestion de permisos
This commit is contained in:
@@ -6,4 +6,10 @@ public class PermisoBuilder : Builder<Permiso>
|
|||||||
data.Descripcion = desc;
|
data.Descripcion = desc;
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public PermisoBuilder SetID(int id)
|
||||||
|
{
|
||||||
|
data.Id = id;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -39,34 +39,35 @@ public class AccionesController : ControllerBase
|
|||||||
var permisos = RepositorioGrupos.Singleton.ListarPermisosDeGrupo(req.Grupo);
|
var permisos = RepositorioGrupos.Singleton.ListarPermisosDeGrupo(req.Grupo);
|
||||||
return Ok(permisos);
|
return Ok(permisos);
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
[HttpPost("api/acciones/crear")] //creo que es codido duplicado
|
[HttpPost("api/acciones/crear")] //creo que es codido duplicado
|
||||||
public IActionResult CrearAcciones([FromHeader(Name = "Auth")] string Auth,
|
public IActionResult CrearAcciones([FromHeader(Name = "Auth")] string Auth,
|
||||||
[FromBody] CrearAccionesDto req)
|
[FromBody] CrearAccionesDto req)
|
||||||
{
|
|
||||||
if (string.IsNullOrEmpty(Auth)) return BadRequest();
|
|
||||||
|
|
||||||
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
|
||||||
if (cli == null) return Unauthorized();
|
|
||||||
|
|
||||||
var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 1); //wip lo voy a usar para crear el permiso que va
|
|
||||||
if (ret == false) return Unauthorized();
|
|
||||||
|
|
||||||
if (string.IsNullOrWhiteSpace(req.Descripcion))
|
|
||||||
{
|
{
|
||||||
return BadRequest(new { message = "La descripción no puede estar vacía" });
|
if (string.IsNullOrEmpty(Auth)) return BadRequest();
|
||||||
|
|
||||||
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||||
|
if (cli == null) return Unauthorized();
|
||||||
|
|
||||||
|
var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, 1); //wip lo voy a usar para crear el permiso que va
|
||||||
|
if (ret == false) return Unauthorized();
|
||||||
|
|
||||||
|
if (string.IsNullOrWhiteSpace(req.Descripcion))
|
||||||
|
{
|
||||||
|
return BadRequest(new { message = "La descripción no puede estar vacía" });
|
||||||
|
}
|
||||||
|
|
||||||
|
if (req.Descripcion.Length > 25)
|
||||||
|
{
|
||||||
|
return BadRequest(new { message = "La descripción no puede ser mayor a 25 caracteres" });
|
||||||
|
}
|
||||||
|
|
||||||
|
var per = new Permiso
|
||||||
|
{
|
||||||
|
Descripcion = req.Descripcion,
|
||||||
|
};
|
||||||
|
var ret2 = RepositorioPermisos.Singleton.CrearPermiso(per);
|
||||||
|
return ret2 ? Ok(new { message = "se creo correctamente" }) : BadRequest(new { message = "No se pudo crear el permiso" });
|
||||||
}
|
}
|
||||||
|
*/
|
||||||
if (req.Descripcion.Length > 25)
|
|
||||||
{
|
|
||||||
return BadRequest(new { message = "La descripción no puede ser mayor a 25 caracteres" });
|
|
||||||
}
|
|
||||||
|
|
||||||
var per = new Permiso
|
|
||||||
{
|
|
||||||
Descripcion = req.Descripcion,
|
|
||||||
};
|
|
||||||
var ret2 = RepositorioPermisos.Singleton.CrearPermiso(per);
|
|
||||||
return ret2 ? Ok(new { message = "se creo correctamente" }) : BadRequest(new { message = "No se pudo crear el permiso" });
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Modelo;
|
using Modelo;
|
||||||
|
using Entidades;
|
||||||
using Entidades.Dto;
|
using Entidades.Dto;
|
||||||
using AlquilaFacil.Builder;
|
using AlquilaFacil.Builder;
|
||||||
namespace AlquilaFacil.Controllers;
|
namespace AlquilaFacil.Controllers;
|
||||||
@@ -7,18 +8,40 @@ namespace AlquilaFacil.Controllers;
|
|||||||
[ApiController]
|
[ApiController]
|
||||||
public class PermisoController : ControllerBase
|
public class PermisoController : ControllerBase
|
||||||
{
|
{
|
||||||
[HttpPost("api/admin/grupos")]
|
[HttpPost("api/permisos")]
|
||||||
public IActionResult CrearPermiso([FromHeader(Name = "Auth")] string Auth, PermisoDto perm)
|
public IActionResult CrearPermiso([FromHeader(Name = "Auth")] string Auth, PermisoDto perm)
|
||||||
{
|
{
|
||||||
//WIP
|
|
||||||
var ret1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 17);
|
var ret1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 17);
|
||||||
|
if (ret1 == false) return BadRequest(new { message = "No tienes permiso para esto" });
|
||||||
|
|
||||||
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||||
|
if (cli == null) return BadRequest(new { message = "No hay un cliente por el token que enviaste" });
|
||||||
|
|
||||||
if (String.IsNullOrWhiteSpace(perm.Descripcion)) return BadRequest(new { message = "No puede tener una descripcion vacia" });
|
if (String.IsNullOrWhiteSpace(perm.Descripcion)) return BadRequest(new { message = "No puede tener una descripcion vacia" });
|
||||||
if (perm.Descripcion.Length > 25) return BadRequest(new { message = "la descripcion no puede tener más de 25 caractéres" });
|
if (perm.Descripcion.Length > 25) return BadRequest(new { message = "la descripcion no puede tener más de 25 caractéres" });
|
||||||
|
|
||||||
var permiso = new PermisoBuilder().SetDescripcion(perm.Descripcion).Build();
|
var permiso = new PermisoBuilder().SetDescripcion(perm.Descripcion).Build();
|
||||||
|
|
||||||
var ret = RepositorioPermisos.Singleton.CrearPermiso(permiso);
|
var ret = RepositorioPermisos.Singleton.CrearPermiso(permiso, cli);
|
||||||
|
|
||||||
|
return ret ? Ok() : BadRequest();
|
||||||
|
}
|
||||||
|
[HttpPatch("api/permisos")]
|
||||||
|
public IActionResult PatchPermiso([FromHeader(Name = "Auth")] string Auth, PermisoDto perm)
|
||||||
|
{
|
||||||
|
var ret1 = RepositorioPermisos.Singleton.CheckPermisos(Auth, 17);
|
||||||
|
if (ret1 == false) return BadRequest(new { message = "No tienes permiso para esto" });
|
||||||
|
|
||||||
|
Cliente? cli = RepositorioUsuarios.Singleton.ObtenerClientePorToken(Auth);
|
||||||
|
if (cli == null) return BadRequest(new { message = "No hay un cliente por el token que enviaste" });
|
||||||
|
|
||||||
|
if (perm.Id <= 0) return BadRequest(new { message = "No puede haber una id 0 o menor" });
|
||||||
|
if (String.IsNullOrWhiteSpace(perm.Descripcion)) return BadRequest(new { message = "No puede tener una descripcion vacia" });
|
||||||
|
if (perm.Descripcion.Length > 25) return BadRequest(new { message = "la descripcion no puede tener más de 25 caractéres" });
|
||||||
|
|
||||||
|
var permiso = new PermisoBuilder().SetDescripcion(perm.Descripcion).SetID(perm.Id).Build();
|
||||||
|
|
||||||
|
var ret = RepositorioPermisos.Singleton.PatchPermiso(permiso, cli);
|
||||||
|
|
||||||
return ret ? Ok() : BadRequest();
|
return ret ? Ok() : BadRequest();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,6 +8,8 @@
|
|||||||
import BotonEsquina from "../Componentes/BotonEsquina.svelte";
|
import BotonEsquina from "../Componentes/BotonEsquina.svelte";
|
||||||
import ModalEditarPermiso from "../Componentes/ModalEditarPermiso.svelte";
|
import ModalEditarPermiso from "../Componentes/ModalEditarPermiso.svelte";
|
||||||
import Login from "./login.svelte";
|
import Login from "./login.svelte";
|
||||||
|
import { Modal } from "@sveltestrap/sveltestrap";
|
||||||
|
import ModalLogs from "../Componentes/ModalLogs.svelte";
|
||||||
|
|
||||||
const token: string = sessionStorage.getItem("token") || "";
|
const token: string = sessionStorage.getItem("token") || "";
|
||||||
|
|
||||||
@@ -60,12 +62,48 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function NuevoPermiso(a: PermisoDto): void {
|
async function NuevoPermiso(a: PermisoDto) {
|
||||||
throw new Error("Function not implemented.WIP");
|
let b = a;
|
||||||
|
try {
|
||||||
|
const req = await fetch($urlG + "/api/permisos", {
|
||||||
|
method: "POST",
|
||||||
|
headers: {
|
||||||
|
Auth: token,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify(b),
|
||||||
|
});
|
||||||
|
if (req.ok) {
|
||||||
|
obtenerPermisos();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
modaldat = "Hubieron problemas creando el permiso";
|
||||||
|
return;
|
||||||
|
} catch {
|
||||||
|
modaldat = "Fallo al hacer la request";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function PatchPermiso(): void {
|
async function PatchPermiso(a: PermisoDto) {
|
||||||
throw new Error("Function not implemented.WIP");
|
let b = a;
|
||||||
|
try {
|
||||||
|
const req = await fetch($urlG + "/api/permisos", {
|
||||||
|
method: "PATCH",
|
||||||
|
headers: {
|
||||||
|
Auth: token,
|
||||||
|
"Content-Type": "application/json",
|
||||||
|
},
|
||||||
|
body: JSON.stringify(b),
|
||||||
|
});
|
||||||
|
if (req.ok) {
|
||||||
|
obtenerPermisos();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
modaldat = "Hubieron problemas editando el permiso";
|
||||||
|
return;
|
||||||
|
} catch {
|
||||||
|
modaldat = "Fallo al hacer la request";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|||||||
@@ -51,11 +51,24 @@ public class RepositorioPermisos : RepositorioBase<RepositorioPermisos>
|
|||||||
return tienePermiso;
|
return tienePermiso;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool CrearPermiso(Permiso per)
|
public bool CrearPermiso(Permiso per, Cliente cli)
|
||||||
{
|
{
|
||||||
var con = Context;
|
var con = Context;
|
||||||
per.Id = con.Permisos.Any() ? con.Permisos.Max(x => x.Id) + 1 : 1;
|
per.Id = con.Permisos.Any() ? con.Permisos.Max(x => x.Id) + 1 : 1;
|
||||||
con.Permisos.Add(per);
|
con.Permisos.Add(per);
|
||||||
|
GenerarLog(con, cli.Dni, $"Creado Permiso {per.Descripcion}");
|
||||||
return Guardar(con);
|
return Guardar(con);
|
||||||
}
|
}
|
||||||
|
public bool PatchPermiso(Permiso per, Cliente cli)
|
||||||
|
{
|
||||||
|
var con = Context;
|
||||||
|
var perm = con.Permisos.FirstOrDefault(x => x.Id == per.Id);
|
||||||
|
if (perm == null) return false;
|
||||||
|
|
||||||
|
perm.Descripcion = per.Descripcion;
|
||||||
|
|
||||||
|
GenerarLog(con, cli.Dni, $"Editado Permiso {per.Id}");
|
||||||
|
return Guardar(con);
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user