ahora esta la gestion de permisos

This commit is contained in:
2025-04-22 21:00:58 -03:00
parent e118a3acd2
commit eeb2ff1c65
5 changed files with 117 additions and 36 deletions

View File

@@ -1,5 +1,6 @@
using Microsoft.AspNetCore.Mvc;
using Modelo;
using Entidades;
using Entidades.Dto;
using AlquilaFacil.Builder;
namespace AlquilaFacil.Controllers;
@@ -7,18 +8,40 @@ namespace AlquilaFacil.Controllers;
[ApiController]
public class PermisoController : ControllerBase
{
[HttpPost("api/admin/grupos")]
[HttpPost("api/permisos")]
public IActionResult CrearPermiso([FromHeader(Name = "Auth")] string Auth, PermisoDto perm)
{
//WIP
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 (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 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();
}