Ejemplo n.º 1
0
 public bool recoverPasswordNew(UsuarioDTO user)
 {
     if (user != null)
     {
         string newPassword = Functions.GenerateRandomPassword(10);
         updatePassword(user, newPassword);
         SendMailPassRecovery(user, newPassword);
         return true;
     }
     return false;
 }
Ejemplo n.º 2
0
 public UsuarioDTO generateTokenRecoverPassword(UsuarioDTO user)
 {
     if(user != null)
     {
         user.Token = updateTokenUser(user.IdUsuario);
         //SendMailResetPassword(user);
         return user;
     }
     return user;
 }
Ejemplo n.º 3
0
        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;
        }
Ejemplo n.º 4
0
 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;
     }
 }
Ejemplo n.º 5
0
        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();
        }
Ejemplo n.º 6
0
        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>();
            }
        }
Ejemplo n.º 7
0
        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;
            }
        }
Ejemplo n.º 8
0
 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); 
 }
Ejemplo n.º 9
0
 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;
         }
     }
 }
Ejemplo n.º 10
0
 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;
     }
 }
Ejemplo n.º 11
0
        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");
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
 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");
 }
Ejemplo n.º 14
0
 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;
         }
     }
 }
Ejemplo n.º 15
0
 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;
     }
 }
Ejemplo n.º 16
0
 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;
         }
     }
 }
Ejemplo n.º 17
0
 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;
         }
     }
 }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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");
        }