Cambios en el login interno y externo

This commit is contained in:
Cristian Guerrero 2024-08-26 11:01:08 -05:00
parent b2c7b03166
commit 66eccce253
6 changed files with 88 additions and 17 deletions

View File

@ -41,7 +41,9 @@ namespace ApiGateway
String.Equals(calledUrl, "/ldap/Conectar") ||
String.Equals(calledUrl, "/Ext/Login") ||
String.Equals(calledUrl, "/Auth/Login") ||
String.Equals(calledUrl, "/Auth/BloquearUsuario") ||
String.Equals(calledUrl, "/Auth/CambiarClave") ||
String.Equals(calledUrl, "/UsuariosTemp") ||
String.Equals(calledUrl, "/Auth/TknCambioClave") ||
String.Equals(calledUrl, "/Auth/Proveedor") ||
String.Equals(calledUrl, "/Email") ||

View File

@ -34,5 +34,9 @@ namespace MSAdminUsuarios.Context
public int? NU_TIPOUSUARIO_USUMS { get; set; }
public string? TX_REGPROF_MDC { get; set; }
public string? TX_MSORIGEN_USUMS { get; set; }
public int? NU_INICIO_PRIMERAVEZ_USUMS { get; set; }
public DateTime? FE_INICIOACTIVACION_USUTMP { get; set; }
public DateTime? FE_FINACTIVACION_USUTMP { get; set; }
}
}

View File

@ -70,26 +70,31 @@ namespace MSAdminUsuarios.Controllers
return Ok(new
{
token = token,
user = userldap.TX_PKDOC_USUMS
user = userldap.TX_PKDOC_USUMS,
ldap = 1
});
}
else
{
return BadRequest();
}
}else if(userldap.BL_VIENELDAP_USUMS != 1)
}else if(userldap.BL_VIENELDAP_USUMS != 1) //return BadRequest(new ResLoginExt("No eres un usuario interno.", true, userldap.NU_ESTADO_USUMS));
{
USUARIO? user = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == login.TX_LOGINNAME_USUMS && u.TX_PASSWORD_USUMS == _encript.EncryptPwd(login.TX_PASSWORD_USUMS));
/*USUARIO? user = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == login.TX_LOGINNAME_USUMS && u.TX_PASSWORD_USUMS == _encript.EncryptPwd(login.TX_PASSWORD_USUMS));
if (user == null) return BadRequest("Usuario o contraseña incorrectos");*/
if (user == null) return BadRequest("Usuario o contraseña incorrectos");
//if (userldap.BL_VIENELDAP_USUMS != 1)
return BadRequest("No eres un usuario interno");
string token = Token(user);
/*string token = Token(user);
return Ok(new
{
token = token,
user = user.TX_PKDOC_USUMS
});
user = user.TX_PKDOC_USUMS,
primera = user.NU_INICIO_PRIMERAVEZ_USUMS,
ldap = 0
});*/
}else
{
return BadRequest("Error");
@ -103,7 +108,7 @@ namespace MSAdminUsuarios.Controllers
}
[HttpPost("CambiarClave")]
/*[HttpPost("CambiarClave_old")]
public IActionResult CambiarClave([FromBody] USUARIO us)
{
try
@ -123,7 +128,7 @@ namespace MSAdminUsuarios.Controllers
{
return Conflict(e.Message);
}
}
}*/
[HttpPost("Proveedor")]
public IActionResult LoginProveedores([FromBody] LoginModel login)
@ -139,14 +144,15 @@ namespace MSAdminUsuarios.Controllers
if (userExist == null) return BadRequest(new ResLoginExt("Usuario o contrase<73>a incorrectos"));
USUARIO? user = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == login.TX_LOGINNAME_USUMS && u.TX_PASSWORD_USUMS == _encript.EncryptPwd(login.TX_PASSWORD_USUMS));
if (user == null) return BadRequest(new ResLoginExt("Usuario o contraseña incorrectos", true, userExist.NU_ESTADO_USUMS));
if (user == null) return BadRequest(new ResLoginExt("Usuario o contrase<73>a incorrectos", true, userExist.NU_ESTADO_USUMS));
if (user.NU_ESTADO_USUMS != 1) return BadRequest(new ResLoginExt("Usuario inactivo, bloqueado o eliminado.", true, user.NU_ESTADO_USUMS));
if (user.NU_ESTADO_USUMS != 1) return BadRequest(new ResLoginExt("Usuario inactivo o eliminado.", true, user.NU_ESTADO_USUMS));
if (user.BL_VIENELDAP_USUMS != 0) return BadRequest(new ResLoginExt("No eres un usuario externo.", true, user.NU_ESTADO_USUMS));
string token = Token(user);
return Ok(new ResLoginExt("Bienvenido al sistema.", true, user.NU_ESTADO_USUMS, token));
return Ok(new ResLoginExt("Bienvenido al sistema.", true, user.NU_ESTADO_USUMS, token, user.NU_INICIO_PRIMERAVEZ_USUMS, user.TX_PKDOC_USUMS, user.BL_VIENELDAP_USUMS));
}
catch (Exception e)
@ -319,17 +325,53 @@ namespace MSAdminUsuarios.Controllers
if (usuario == null) throw new Exception("Usuario no encontrado");
USUARIO? user = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == usuario);
if (user == null) throw new Exception("Usuario no encontrado");
user.NU_BLOQUEO_USUMS = 0;
//user.NU_BLOQUEO_USUMS = 0;
user.NU_ESTADO_USUMS = 2;
_context.USUARIOSMs.Update(user);
_context.SaveChanges();
return Ok(new { message = "Su cuenta ha sido bloqueada debido a demasiados intentos fallidos" });
//return Ok(new { message = "Su cuenta ha sido bloqueada debido a demasiados intentos fallidos" });
//return Ok("Su cuenta ha sido bloqueada debido a demasiados intentos fallidos");
return Ok(new ResLoginExt("Su cuenta ha sido bloqueada debido a demasiados intentos fallidos.", true));
}
catch (Exception ex)
{
return BadRequest(new { message = ex.Message });
//return BadRequest(new { message = ex.Message });
//return BadRequest(ex.Message);
return BadRequest(new ResLoginExt(ex.Message, true));
}
}
[HttpPost("CambiarClave")]
public IActionResult CambiarClave([FromBody] CambiarClaveModel model)
{
if (model.NewPassword != model.ConfirmPassword)
{
return BadRequest("Las contraseñas no coinciden.");
}
try
{
if (model == null) throw new Exception("No se recibieron datos");
USUARIO? user = _context.USUARIOSMs.FirstOrDefault(u => u.TX_LOGINNAME_USUMS == model.User);
if (user == null) return BadRequest("Usuario no encontrado.");
string newPass = _encript.EncryptPwd(model.NewPassword!);
user.TX_PASSWORD_USUMS = newPass;
user.NU_INICIO_PRIMERAVEZ_USUMS = 1;
_context.USUARIOSMs.Update(user);
_context.SaveChanges();
//return Ok("Contrase<73>a restablecida con éxito.");
//return Ok(new { message = "Contrase<73>a restablecida con éxito." });
return Ok(new ResLoginExt("Contrase<73>a restablecida con éxito.", true));
}
catch (Exception ex)
{
//return Conflict(e.Message);
//return BadRequest(new { message = ex.Message });
return BadRequest(ex.Message);
}
}
@ -378,18 +420,31 @@ namespace MSAdminUsuarios.Controllers
public class ResLoginExt
{
public ResLoginExt(string _message, bool _exist = false, int? _estado = null, string? _token = "")
public ResLoginExt(string _message, bool _exist = false, int? _estado = null, string? _token = "", int? _primera = null, string? _user = "", int? _ldap = null)
{
Message = _message;
Token = _token;
Existe = _exist;
Estado = _estado;
Primera = _primera;
User = _user;
Ldap = _ldap;
}
public bool Existe { get; set; }
public int? Estado { get; set; }
public string? Token { get; set; }
public string Message { get; set; } = null!;
public int? Primera { get; set; }
public string? User { get; set; }
public int? Ldap { get; set; }
}
public class CambiarClaveModel
{
public string User { get; set; }
public string NewPassword { get; set; }
public string ConfirmPassword { get; set; }
}
static class Options

View File

@ -22,7 +22,7 @@ namespace MSAdminUsuarios.Controllers
{
/*var consulta = from dm in _context.MICROSERVICIOs
select dm;*/
List<MICROSERVICIO> microservicios = await _context.MICROSERVICIOs.OrderBy(m => m.NU_PK_MS).ToListAsync();
List<MICROSERVICIO> microservicios = await _context.MICROSERVICIOs.OrderBy(m => m.TX_SECCION_MS).ToListAsync();
return Ok(microservicios);
}
catch (Exception ex)

View File

@ -284,6 +284,8 @@ namespace MSAdminUsuarios.Controllers
existe.NU_BLOQUEO_USUMS = editado.NU_BLOQUEO_USUMS;
existe.NU_TIPOUSUARIO_USUMS = editado.NU_TIPOUSUARIO_USUMS;
existe.TX_REGPROF_MDC = editado.TX_REGPROF_MDC;
existe.FE_INICIOACTIVACION_USUTMP = editado.FE_INICIOACTIVACION_USUTMP;
existe.FE_FINACTIVACION_USUTMP = editado.FE_FINACTIVACION_USUTMP;
ErrorModel errorPFLxUSUMS = await ActualizarRelaciones(existe.TX_PKDOC_USUMS, editado.TX_PKDOC_USUMS);
@ -592,6 +594,8 @@ namespace MSAdminUsuarios.Controllers
nuevo.usuario.TX_SEDES_USUMS = "[0]";
}
nuevo.usuario.NU_INICIO_PRIMERAVEZ_USUMS = 0;
_context.USUARIOSMs.Add(nuevo.usuario);
await _context.SaveChangesAsync();
@ -625,6 +629,8 @@ namespace MSAdminUsuarios.Controllers
existe.NU_BLOQUEO_USUMS = nuevo.usuario.NU_BLOQUEO_USUMS;
existe.NU_TIPOUSUARIO_USUMS = nuevo.usuario.NU_TIPOUSUARIO_USUMS;
existe.TX_REGPROF_MDC = nuevo.usuario.TX_REGPROF_MDC;
existe.FE_INICIOACTIVACION_USUTMP = nuevo.usuario.FE_INICIOACTIVACION_USUTMP;
existe.FE_FINACTIVACION_USUTMP = nuevo.usuario.FE_FINACTIVACION_USUTMP;
if (existe.TX_PASSWORD_USUMS == null || existe.TX_PASSWORD_USUMS == "")
{
@ -789,6 +795,8 @@ namespace MSAdminUsuarios.Controllers
existe.NU_BLOQUEO_USUMS = nuevo.usuario.NU_BLOQUEO_USUMS;
existe.NU_TIPOUSUARIO_USUMS = nuevo.usuario.NU_TIPOUSUARIO_USUMS;
existe.TX_REGPROF_MDC = nuevo.usuario.TX_REGPROF_MDC;
existe.FE_INICIOACTIVACION_USUTMP = nuevo.usuario.FE_INICIOACTIVACION_USUTMP;
existe.FE_FINACTIVACION_USUTMP = nuevo.usuario.FE_FINACTIVACION_USUTMP;
if (existe.TX_PASSWORD_USUMS == null || existe.TX_PASSWORD_USUMS == "")
{

View File

@ -41,5 +41,7 @@ namespace MSAdminUsuarios.Dto
public string? TX_UUID_USUMS { get; set; }
public int? NU_TIPOUSUARIO_USUMS { get; set; }
public string? TX_REGPROF_MDC { get; set; }
public DateTime? FE_INICIOACTIVACION_USUTMP { get; set; }
public DateTime? FE_FINACTIVACION_USUTMP { get; set; }
}
}