public bool recoverPasswordNew(UsuarioDTO user) { if (user != null) { string newPassword = Functions.GenerateRandomPassword(10); updatePassword(user, newPassword); SendMailPassRecovery(user, newPassword); return true; } return false; }
public UsuarioDTO generateTokenRecoverPassword(UsuarioDTO user) { if(user != null) { user.Token = updateTokenUser(user.IdUsuario); //SendMailResetPassword(user); return user; } return user; }
public bool isValidUser(UsuarioDTO user) { if (user.Cuenta == null || user.Pass == null || user.codigoEmpresa == null) return false; using (var context = getContext()) { /*var result = from r in context.Usuario where r.Estado == true && r.Cuenta == user.Cuenta && r.Empresa.Codigo == user.codigoEmpresa select r;*/ var usuario = context.Usuario.Where(x => x.Estado == true && x.Cuenta == user.Cuenta && x.Empresa.Codigo == user.codigoEmpresa).SingleOrDefault<Usuario>(); //Usuario usuario = result.SingleOrDefault<Usuario>(); if (usuario != null) { if (Encrypt.comparetoCrypt(user.Pass, usuario.Pass)) return true; } } return false; }
public bool update(UsuarioDTO user, string passUser, string passChange, UsuarioDTO currentUser) { using (var context = getContext()) { try { Usuario usuario = context.Usuario.Where(x => x.IdUsuario == user.IdUsuario).SingleOrDefault(); if (usuario != null) { //No se podra actualizar el nombre //usuario.Nombre = user.Nombre; usuario.Email = user.Email; usuario.IdRol = user.IdRol;// >= 2 ? user.IdRol : 3; usuario.Cuenta = user.Cuenta; usuario.Estado = user.Active; usuario.IdCargo = user.IdCargo; usuario.IdEmpresa = user.IdEmpresa; if (!String.IsNullOrWhiteSpace(passUser) && !String.IsNullOrWhiteSpace(passChange)) { if ((currentUser.IdRol <= 2 || currentUser.IdUsuario == user.IdUsuario) && Encrypt.comparetoCrypt(passUser, currentUser.Pass)) { usuario.Pass = Encrypt.GetCrypt(passChange); } else return false; } context.SaveChanges(); return true; } } catch (Exception e) { //throw e; return false; } return false; } }
public ActionResult ResetPassword(ResetPasswordDTO obj) { if (obj.rt == null || obj.emp == null || obj.Password == null || obj.Password == "") { return RedirectToAction("Ingresar", "Admin"); } if (obj.Password != obj.ConfirmPassword) { createResponseMessage(CONSTANTES.ERROR, "<strong>Las contraseñas ingresadas tienen que coincidir.</strong>"); return View(); } UsuariosBL objBL = new UsuariosBL(); UsuarioDTO usuario = new UsuarioDTO() { Token = obj.rt, codigoEmpresa = obj.emp, Pass = obj.Password }; if (objBL.resetPasswordByTokenAndEmp(usuario)) { createResponseMessage(CONSTANTES.SUCCESS, CONSTANTES.SUCCESS_PASSWORD_CHANGE); return RedirectToAction("Ingresar", "Admin"); } createResponseMessage(CONSTANTES.ERROR, "<strong>Usted no puede realizar esta acción o hubo un error al intentar cambiar la contraseña.</strong>"); return View(); }
public UsuarioDTO getUsuarioByCuenta(UsuarioDTO user) { using (var context = getContext()) { var result = from r in context.Usuario where r.Estado == true && r.Cuenta == user.Cuenta && r.Empresa.Codigo == user.codigoEmpresa select new UsuarioDTO { IdUsuario = r.IdUsuario, Nombre = r.Nombre, IdRol = r.IdRol,// ?? 0, Active = r.Estado, Email = r.Email, Pass = r.Pass, Cuenta = r.Cuenta, IdCargo = r.IdCargo, IdEmpresa = r.IdEmpresa, nombreEmpresa = r.Empresa.Nombre ?? "N/A", //empresa = context.Empresa.Where(x => x.IdEmpresa == r.IdEmpresa).Select(y => new EmpresaDTO { IdEmpresa = y.IdEmpresa, Nombre = y.Nombre ?? "N/A", Estado = y.Estado, Descripcion = y.Descripcion, TipoCambio = y.TipoCambio }).FirstOrDefault() }; return result.SingleOrDefault<UsuarioDTO>(); } }
public bool validateUsuarioNoDuplicado(UsuarioDTO user) { using (var context = getContext()) { if (user.IdUsuario > 0 && user.Cuenta != null && user.Email != null) { var element = context.Usuario.Where(x => x.IdUsuario == user.IdUsuario); var list = context.Usuario.Where(x => (x.Cuenta == user.Cuenta || x.Email == user.Email) && x.IdEmpresa == user.IdEmpresa).Except(element).ToList<Usuario>(); if (list.Count == 0) { return true; } return false; } return false; } }
public void SendMailPassRecovery(UsuarioDTO user, string passChange) { string to = user.Email; string subject = "Recuperación de Contraseña"; string body = "Sr(a). " + user.Nombre + " su contraseña es : " + passChange; MailHandler.Send(to, "", subject, body); }
public bool add(UsuarioDTO user) { using (var context = getContext()) { try { Usuario usuario = new Usuario(); usuario.Nombre = user.Nombre; usuario.Email = user.Email; usuario.Cuenta = user.Cuenta; usuario.Pass = Encrypt.GetCrypt(user.Pass); usuario.IdRol = user.IdRol;//>= 2 ? user.IdRol : 3; //usuario.IdCargo = user.IdCargo; usuario.Estado = true; usuario.FechaRegistro = DateTime.Now; usuario.IdCargo = user.IdCargo; usuario.IdEmpresa = user.IdEmpresa; context.Usuario.Add(usuario); context.SaveChanges(); return true; } catch (Exception e) { throw e; } } }
public bool validateUsuario(UsuarioDTO user) { using (var context = getContext()) { if (user.Cuenta != null && user.Email != null) { var result = from r in context.Usuario where (r.Cuenta == user.Cuenta || r.Email == user.Email) && r.IdEmpresa == user.IdEmpresa select r; if (result.FirstOrDefault<Usuario>() == null) { return true; } } return false; } }
public ActionResult AddUser(UsuarioDTO user, string passUser = "", string passChange = "") { if (!this.currentUser()) { return RedirectToAction("Ingresar"); } UsuarioDTO currentUser = getCurrentUser(); if (!this.isAdministrator() && user.IdUsuario != currentUser.IdUsuario) { return RedirectToAction("Index"); } if (user.IdRol == 1 && !this.isSuperAdministrator()) { return RedirectToAction("Index"); } try { UsuariosBL usuariosBL = new UsuariosBL(); if (user.IdUsuario == 0 && usuariosBL.validateUsuario(user)) { if (!this.isSuperAdministrator()) { return RedirectToAction("Index"); } usuariosBL.add(user); createResponseMessage(CONSTANTES.SUCCESS); return RedirectToAction("Usuarios"); } else if (user.IdUsuario != 0 && usuariosBL.validateUsuarioNoDuplicado(user)) { if (usuariosBL.update(user, passUser, passChange, this.getCurrentUser())) { createResponseMessage(CONSTANTES.SUCCESS); if (user.IdUsuario == this.getCurrentUser().IdUsuario) { System.Web.HttpContext.Current.Session["User"] = usuariosBL.getUsuario(user.IdUsuario); if (!this.getCurrentUser().Active) System.Web.HttpContext.Current.Session["User"] = null; } return RedirectToAction("Usuarios"); } else { createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE + "<br>Si está intentando actualizar la contraseña, verifique que ha ingresado la contraseña actual correctamente."); TempData["Usuario"] = user; return RedirectToAction("Usuario", new { id = user.IdUsuario }); } } else { createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_DUPLICATE_USER); } } catch { if (user.IdUsuario != 0) createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_UPDATE_MESSAGE); else createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_INSERT_ACCOUNT); } TempData["Usuario"] = user; return RedirectToAction("Usuario"); }
public ActionResult Usuario(int? id = null) { if (!this.currentUser()) { return RedirectToAction("Ingresar"); } ViewBag.Title = "Usuario"; MenuNavBarSelected(9); UsuarioDTO currentUser = getCurrentUser(); UsuariosBL usuariosBL = new UsuariosBL(); if (!this.isAdministrator() && id != currentUser.IdUsuario) { return RedirectToAction("Index"); } if (!this.isSuperAdministrator() && usuariosBL.getUsuario(id.GetValueOrDefault()).IdRol == 1) { return RedirectToAction("Usuarios"); } //ViewBag.vbRls = usuariosBL.getAllRolesViewBag(false); ViewBag.vbRls = usuariosBL.getRolesDown(currentUser.IdRol); var objSent = TempData["Usuario"]; if (objSent != null) { TempData["Usuario"] = null; return View(objSent); } UsuarioDTO usuario; if (id != null) { usuario = usuariosBL.getUsuarioEnEmpresa(currentUser.IdEmpresa, id.GetValueOrDefault()); if (usuario == null) return RedirectToAction("Usuarios"); if (usuario.IdEmpresa != currentUser.IdEmpresa) return RedirectToAction("Usuarios"); return View(usuario); } usuario = new UsuarioDTO(); usuario.IdEmpresa = currentUser.IdEmpresa; return View(usuario); }
public ActionResult Login(UsuarioDTO user) { UsuariosBL usuariosBL = new UsuariosBL(); if (usuariosBL.isValidUser(user)) { System.Web.HttpContext.Current.Session["User"] = usuariosBL.getUsuarioByCuenta(user); return RedirectToAction("Index"); } createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_LOGIN); return RedirectToAction("Ingresar"); }
public bool updatePassword(UsuarioDTO user, string passChange) { using (var context = getContext()) { try { Usuario usuario = context.Usuario.Where(x => x.IdUsuario == user.IdUsuario).SingleOrDefault(); usuario.Pass = Encrypt.GetCrypt(passChange); context.SaveChanges(); return true; } catch (Exception e) { //throw e; return false; } } }
public UsuarioDTO getUserByAcountOrEmail(UsuarioDTO user) { using (var context = getContext()) { if (user.Cuenta != null || user.Email != null) { var result = context.Usuario.Where(x => (x.Cuenta == user.Cuenta || x.Email == user.Cuenta) && x.Empresa.Codigo == user.codigoEmpresa).Select(x => new UsuarioDTO { IdUsuario = x.IdUsuario, Nombre = x.Nombre, Email = x.Email, Cuenta = x.Cuenta, Token = x.Token, IdRol = x.IdRol, IdEmpresa = x.IdEmpresa, codigoEmpresa = x.Empresa.Codigo }).FirstOrDefault(); if (result == null) { return null; } return result; } return null; } }
public bool resetPasswordByTokenAndEmp(UsuarioDTO user) { using (var context = getContext()) { try { var usuario = context.Usuario.Where(x => x.Empresa.Codigo == user.codigoEmpresa && x.Token == user.Token).SingleOrDefault(); if(usuario != null) { usuario.Pass = Encrypt.GetCrypt(user.Pass); usuario.Token = null; context.SaveChanges(); return true; } return false; } catch (Exception e) { return false; } } }
public bool updateToken(UsuarioDTO usuario) { using (var context = getContext()) { try { var row = context.Usuario.Where(x => x.IdUsuario == usuario.IdUsuario).SingleOrDefault(); row.Token = usuario.Token; context.SaveChanges(); return true; } catch (Exception e) { throw e; } } }
public void SendMailResetPassword(UsuarioDTO user, string link) { string to = user.Email; string subject = "Resetear contraseña"; //url.Action("ResetPassword", "Admin", new { rt = token }) //string resetLink = MailHandler.ResetLink(user.Token, user.codigoEmpresa); string body = "Sr(a). " + user.Nombre + ". Si desea resetear su contraseña acceda al link: " + link; MailHandler.Send(to, "", subject, body); }
public ActionResult ForgotPassword(string UserName, string codigoEmpresa) { UsuariosBL objBL = new UsuariosBL(); UsuarioDTO usuario = new UsuarioDTO() { Cuenta = UserName, Email = UserName, codigoEmpresa = codigoEmpresa }; usuario = objBL.getUserByAcountOrEmail(usuario); if (usuario == null) { createResponseMessage(CONSTANTES.ERROR, CONSTANTES.ERROR_RECOVERY_PASSWORD); return RedirectToAction("ForgotPassword", "Admin"); } else { //if (objBL.recoverPasswordNew(usuario)) usuario = objBL.generateTokenRecoverPassword(usuario); if (usuario.Token != null) { string link = "<a href='" + this.Url.Action("ResetPassword", "Admin", new { rt = usuario.Token, emp = usuario.codigoEmpresa }, this.Request.Url.Scheme) + "'>Reset Password</a>"; objBL.SendMailResetPassword(usuario, link); createResponseMessage(CONSTANTES.SUCCESS, CONSTANTES.SUCCESS_MESSAGE_FOR_RECOVERY_PASSWORD); } else { createResponseMessage(CONSTANTES.ERROR, "<strong>Hubo un error al recuperar la contraseña.</strong>"); return RedirectToAction("ForgotPassword", "Admin"); } } return RedirectToAction("Ingresar", "Admin"); }