示例#1
0
 public ActionResult Create(Usuario usuario)
 {
     if (string.IsNullOrEmpty(usuario.colaborador_nombre) && string.IsNullOrEmpty(usuario.username))
         ModelState.AddModelError("colaborador_nombre", "Colaborador no existe, ingrese un código o nombre");
     if (!string.IsNullOrEmpty(usuario.colaborador_nombre) && string.IsNullOrEmpty(usuario.username))
         ModelState.AddModelError("colaborador_nombre", "Colaborador no existe, ingrese un código o nombre");
     if (!string.IsNullOrEmpty(usuario.colaborador_nombre) && !string.IsNullOrEmpty(usuario.username) && db.Usuario.Where(x => x.username == usuario.username).Count() > 0)
         ModelState.AddModelError("colaborador_nombre", "El colaborador ingresado ya tiene un usuario creado");
     if (string.IsNullOrEmpty(usuario.passwordn))
         ModelState.AddModelError("passwordn", "Genere una contraseña");
     if (ModelState.IsValid)
     {
         usuario.password = Halp.GetMD5(usuario.passwordn);
         db.Usuario.Add(usuario);
         db.SaveChanges();
         Colaborador colaborador = db.Colaborador.Where(x => x.codigo == usuario.username).FirstOrDefault();
         colaborador.idusuario = usuario.idusuario;
         db.Entry(colaborador).State = EntityState.Modified;
         db.SaveChanges();
         if (Correo.sepuede)
         {
             string titulo = "Creación de usuario";
             string mensaje = "Su cuenta de usuario fue creada<br/><br/>Código de usuario: " + usuario.username + "<br/>Contraseña: " + usuario.passwordn + "<br/>Rol: " + db.Rol.Find(usuario.idrol).nombre + "<br/>Bloqueado: " + usuario.muestraBloqueado;
             Correo.enviar2(colaborador.correo, titulo, mensaje);
             TempData["alerta"] = "Usuario registrado satisfactoriamente";
         }
         else
             TempData["alerta"] = "Usuario registrado con éxito. Notifique la clave al usuario con la opción del mismo nombre cuando la conexión a Internet haya sido restablecida";
         return RedirectToAction("Create");
     }
     ViewBag.lcolaborador = db.Colaborador.OrderBy(x => x.nombre).Where(x => x.idusuario != null).Include(x => x.usuario).ToList();
     ViewBag.idrol = new SelectList(db.Rol.Where(x => !x.dinamico).OrderBy(x => x.nombre), "idrol", "nombre", usuario.idrol);
     return View(usuario);
 }
示例#2
0
        public ActionResult EditPassword(Usuario usuario)
        {
            ViewBag.password = usuario.password;
            ViewBag.passwordn = usuario.passwordn;
            ViewBag.passwordr = usuario.passwordr;
            bool ok = false;
            Usuario o = db.Usuario.Find(usuario.idusuario);
            if (usuario.password != null && Halp.GetMD5(usuario.password) == o.password)
                ok = true;
            else
            {
                o.intentospass++;
                if (o.intentospass < 5)
                    ModelState.AddModelError("password", "La contraseña ingresada es incorrecta");
                else if (o.intentospass == 5)
                {
                    ModelState.Remove("password");
                    ModelState.AddModelError("password", "La contraseña ingresada es incorrecta. Si falla en el próximo intento su cuenta será bloqueada");
                }
                else
                {
                    o.bloqueado = true;
                    db.Entry(o).State = EntityState.Modified;
                    db.SaveChanges();
                    TempData["alerta"] = "Su cuenta ha sido bloqueada. Comuníquese con el área de soporte";
                    return RedirectToAction("GTFO", "Account", new { Area = "" });
                }
                db.Entry(o).State = EntityState.Modified;
                db.SaveChanges();
            }
            if (string.IsNullOrEmpty(usuario.passwordn) || !Halp.esPassword(usuario.passwordn))
                ModelState.AddModelError("passwordn", "✘");
            else
                ModelState.AddModelError("passwordn", "✔");
            if (string.IsNullOrEmpty(usuario.passwordr) || !Halp.esPassword(usuario.passwordr) || usuario.passwordn != usuario.passwordr)
                ModelState.AddModelError("passwordr", "✘");
            if (!string.IsNullOrEmpty(usuario.passwordn) && !string.IsNullOrEmpty(usuario.passwordr) && Halp.esPassword(usuario.passwordn) && Halp.esPassword(usuario.passwordr) && usuario.passwordn == usuario.passwordr)
            {
                ModelState.AddModelError("passwordn", "✔");
                ModelState.AddModelError("passwordr", "✔");
                if (ok)
                    if (o.password == Halp.GetMD5(usuario.passwordn))
                        ModelState.AddModelError("password", "Nueva contraseña debe ser diferente a la actual");
                    else
                    {
                        o.password = Halp.GetMD5(usuario.passwordn);
                        o.intentospass = 0;
                        db.Entry(o).State = EntityState.Modified;
                        db.SaveChanges();
                        TempData["alerta"] = "Contraseña cambiada con éxito";
                        return RedirectToAction("Index", "Home", new { Area = "" });
                    }
            }

            /*
            if (!string.IsNullOrEmpty(usuario.passwordn) && !string.IsNullOrEmpty(usuario.passwordr) && usuario.passwordn != usuario.passwordr)
            {
                ModelState.AddModelError("passwordn", "✘");
                ModelState.AddModelError("passwordr", "✘");
            }
            else if (!string.IsNullOrEmpty(usuario.passwordn) && !string.IsNullOrEmpty(usuario.passwordr) && usuario.passwordn == usuario.passwordr)
            {
                if (Halp.esPassword(usuario.passwordn))
                {
                    ModelState.AddModelError("passwordn", "✔");
                    ModelState.AddModelError("passwordr", "✔");
                    if (ok)
                        if (o.password == Halp.GetMD5(usuario.passwordn))
                            ModelState.AddModelError("password", "Nueva contraseña debe ser diferente a la actual");
                        else
                        {
                            o.password = Halp.GetMD5(usuario.passwordn);
                            o.intentospass = 0;
                            db.Entry(o).State = EntityState.Modified;
                            db.SaveChanges();
                            TempData["alerta"] = "Contraseña cambiada con éxito";
                            return RedirectToAction("Index", "Home", new { Area = "" });
                        }
                }
                else
                {
                    ModelState.AddModelError("passwordn", "✘");
                    ModelState.AddModelError("passwordr", "✘");
                }
            }
            */
            return View(usuario);
        }
示例#3
0
 public ActionResult Edit(Usuario usuario)
 {
     if (ModelState.IsValid)
     {
         db.Entry(usuario).State = EntityState.Modified;
         if (string.IsNullOrEmpty(usuario.passwordn))
             db.Entry(usuario).Property("password").IsModified = false;
         else
             usuario.password = Halp.GetMD5(usuario.passwordn);
         db.SaveChanges();
         if (Correo.sepuede)
         {
             string titulo = "Actualización de usuario";
             string mensaje = "Su cuenta de usuario fue actualizada<br/><br/>Código de usuario: " + usuario.username + "<br/>Contraseña: " + (string.IsNullOrEmpty(usuario.passwordn) ? "Sin cambio" : usuario.passwordn) + "<br/>Rol: " + db.Rol.Find(usuario.idrol).nombre + "<br/>Bloqueado: " + usuario.muestraBloqueado;
             Correo.enviar2(db.Colaborador.Where(x => x.idusuario == usuario.idusuario).FirstOrDefault().correo, titulo, mensaje);
             TempData["alerta"] = "Usuario actualizado satisfactoriamente";
         }
         else
             TempData["alerta"] = "Usuario actualizado con éxito. Notifique la clave al usuario con la opción del mismo nombre cuando la conexión a Internet haya sido restablecida";
         return RedirectToAction("Create");
     }
     ViewBag.lcolaborador = db.Colaborador.OrderBy(x => x.nombre).Where(x => x.idusuario != null).Include(x => x.usuario).ToList();
     ViewBag.idrol = new SelectList(db.Rol.Where(x => !x.dinamico).OrderBy(x => x.nombre), "idrol", "nombre", usuario.idrol);
     return View(usuario);
 }