primeros cambios para manejar los permisos y grupos

This commit is contained in:
2024-11-02 15:41:15 -03:00
parent e550952397
commit 735cdfc344
16 changed files with 249 additions and 86 deletions
+9 -5
View File
@@ -1,3 +1,4 @@
using Entidades.Dto;
using Microsoft.AspNetCore.Mvc;
using Modelo;
@@ -7,14 +8,17 @@ namespace AlquilaFacil.Controllers;
public class AccionesController: ControllerBase {
[HttpPost("api/acciones")]
public IActionResult ListarAccionesPorUsuario([FromBody] string email) {
Request.Cookies.TryGetValue("token", out var token);
if (token == null) return Unauthorized(new { esValido = false});
public IActionResult ListarAccionesPorUsuario([FromBody] LoginDto email, [FromHeader(Name = "Auth")] string Auth) {
if (email.Email == "" || email.Email == null) return BadRequest();
bool esValido = RepositorioUsuarios.Singleton.CheckToken(email, token);
if (Auth == "") return Unauthorized(new { esValido = false});
bool esValido = RepositorioUsuarios.Singleton.CheckToken(email.Email, Auth);
if (!esValido) return Unauthorized();
var Permisos = RepositorioPermisos.Singleton.ListarPermisos(email);
var Permisos = RepositorioPermisos.Singleton.ListarPermisos(email.Email);
Response.Headers["Content-Type"] = "application/json";
return Ok(Permisos);
}
}
+18
View File
@@ -0,0 +1,18 @@
#if DEBUG
using Microsoft.AspNetCore.Mvc;
using Modelo;
namespace AlquilaFacil.Controllers;
[ApiController]
public class GruposController: ControllerBase {
[HttpPost("api/admin/grupos")]
public IActionResult CrearPermisos([FromBody] AdminGrupo grupo) {
if (String.IsNullOrEmpty(grupo.descripcion)) return BadRequest();
bool ret = RepositorioGrupos.Singleton.CrearGrupo(grupo.descripcion);
return (ret) ? Ok(ret) : BadRequest();
}
}
public record AdminGrupo(string descripcion);
#endif
+10 -2
View File
@@ -12,8 +12,16 @@ public class InquilinoController: ControllerBase
{
[HttpGet("api/inquilino")]
public IActionResult Get() {
return Ok();
public IActionResult Get([FromHeader(Name = "Auth")] string Auth) {
if (!string.IsNullOrEmpty(Auth)) return BadRequest();
string path = Request.Path;
var ret = RepositorioPermisos.Singleton.CheckPermisos(Auth, path);
if (ret == false) return BadRequest(ret);
var list = RepositorioInquilinos.Singleton.GetInquilinos();
return Ok(list);
}
[HttpPost("api/inquilino")]
+14 -9
View File
@@ -24,19 +24,19 @@ public class LoginController: ControllerBase
var cookieOptions = new CookieOptions
{
HttpOnly = true,
Secure = true,
//SameSite = SameSiteMode.Strict,
Expires = DateTimeOffset.UtcNow.AddHours(1)
Secure = true,
SameSite = SameSiteMode.None,
Path = "/Menu",
Expires = DateTimeOffset.UtcNow.AddHours(1)
};
Response.Cookies.Append("token", tokenString, cookieOptions);
return Ok( new {Email = loginDto.Email, Redirect = "/Menu"});
return Ok( new {Email = loginDto.Email, Token = tokenString, Redirect = "/Menu"});
}
[HttpPost("api/login/validar")]
public IActionResult Verificar([FromBody] AccessDto request){
Request.Cookies.TryGetValue("token", out var token);
public IActionResult Verificar([FromBody] AccessDto request, [FromHeader(Name = "Auth")] string token){
if (request.Email == String.Empty || token == null ||request.Redirect == string.Empty)
{
@@ -44,8 +44,13 @@ public class LoginController: ControllerBase
}
bool esValido = RepositorioUsuarios.Singleton.CheckToken(request.Email, token);
return (esValido) ?
Ok( new { esValido = true}) : Unauthorized( new {esValido = false});
if (esValido) {
return Ok(new {esValido = esValido});
} else {
return Unauthorized(new {esValido = "el token no es valido"});
}
}
+18
View File
@@ -0,0 +1,18 @@
#if DEBUG
using Microsoft.AspNetCore.Mvc;
using Modelo;
namespace AlquilaFacil.Controllers;
[ApiController]
public class PermisosController: ControllerBase {
[HttpPost("api/admin/permisos")]
public IActionResult CrearPermisos([FromBody] AdminPermiso permiso) {
if (String.IsNullOrEmpty(permiso.descripcion)) return BadRequest();
bool ret = RepositorioPermisos.Singleton.CrearPermiso(permiso.descripcion);
return (ret) ? Ok(ret) : BadRequest();
}
}
public record AdminPermiso(string descripcion);
#endif