public ActionResult Index()
        {
            ATECA_BDEntities db = new ATECA_BDEntities();
            var usuarios        = db.Usuarios.Include(u => u.Role);

            return(View(usuarios.ToList()));
        }
        public ActionResult Registration()
        {
            ATECA_BDEntities db = new ATECA_BDEntities();

            ViewBag.ID_rol = new SelectList(db.Roles, "ID_rol", "nombre");
            return(View());
        }
 public bool CedulaExist(string cedula)
 {
     using (ATECA_BDEntities db = new ATECA_BDEntities())
     {
         var v = db.Usuarios.Where(a => a.cedula == cedula).FirstOrDefault();
         return(v != null);
     }
 }
 public bool IsEmailExist(string correo)
 {
     using (ATECA_BDEntities db = new ATECA_BDEntities())
     {
         var v = db.Usuarios.Where(a => a.correo == correo).FirstOrDefault();
         return(v != null);
     }
 }
Esempio n. 5
0
 public bool ServicioExist(string nombre)
 {
     using (ATECA_BDEntities db = new ATECA_BDEntities())
     {
         var v = db.Servicios.Where(a => a.nombre == nombre).FirstOrDefault();
         return(v != null);
     }
 }
        public ActionResult Login(LoginUsuario login, string ReturnUrl = "")
        {
            string message = "";

            using (ATECA_BDEntities db = new ATECA_BDEntities())
            {
                var v = db.Usuarios.Where(a => a.correo == login.correo).FirstOrDefault();
                if (v != null)
                {
                    if (login.correo.IndexOf("@ccss.sa.cr") >= 1)
                    {
                        /* if(!v.correoVerificado){
                         * ViewBag.Message = "Verifique su email";
                         * return View();
                         * }*/

                        if (string.Compare(Crypto.Hash(login.contraseña), v.contraseña) == 0)
                        {
                            int    timeout   = login.RememberMe ? 525600 : 20; // 525600 min = 1 year
                            var    ticket    = new FormsAuthenticationTicket(login.correo, login.RememberMe, timeout);
                            string encrypted = FormsAuthentication.Encrypt(ticket);
                            var    cookie    = new HttpCookie(FormsAuthentication.FormsCookieName, encrypted);
                            cookie.Expires  = DateTime.Now.AddMinutes(timeout);
                            cookie.HttpOnly = true;
                            Response.Cookies.Add(cookie);


                            if (Url.IsLocalUrl(ReturnUrl))
                            {
                                return(Redirect(ReturnUrl));
                            }
                            else
                            {
                                int combo = Int32.Parse(login.servicio);
                                Console.Write(combo);
                                var vrol = (from s in db.Usuarios
                                            where s.correo == login.correo
                                            select s.ID_rol).FirstOrDefault();
                                Session["SERV"] = combo;
                                Session["ROL"]  = vrol;
                                return(RedirectToAction("Index", "Home"));
                            }
                        }
                        else
                        {
                            message = "Acceso denegado";
                        }
                    }
                    else
                    {
                        message = "Acceso denegado, su correo no pertenece a la CCSS";
                    }
                }
            }
            ViewBag.Message = message;
            return(View());
        }
        public ActionResult AsignarRol([Bind(Include = "ID_usuario,apellidos,nombre,fechaNacimiento,codigoActivacion,correo,cedula,estado,correoVerificado,contraseña,ID_rol")] Usuario usuario)
        {
            ATECA_BDEntities db = new ATECA_BDEntities();

            if (ModelState.IsValid)
            {
                db.Entry(usuario).State = EntityState.Modified;
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }
            ViewBag.ID_rol = new SelectList(db.Roles, "ID_rol", "nombre", usuario.ID_rol);
            return(View(usuario));
        }
        // GET: Usuarios/Edit/5
        public ActionResult AsignarRol(int?id)
        {
            ATECA_BDEntities db = new ATECA_BDEntities();

            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            Usuario usuario = db.Usuarios.Find(id);

            if (usuario == null)
            {
                return(HttpNotFound());
            }
            ViewBag.ID_rol = new SelectList(db.Roles, "ID_rol", "nombre", usuario.ID_rol);
            return(View(usuario));
        }
        public ActionResult VerifyAccount(string id)
        {
            bool Status = false;

            using (ATECA_BDEntities db = new ATECA_BDEntities())
            {
                db.Configuration.ValidateOnSaveEnabled = false; // This line I have added here to avoid
                                                                // Confirm password does not match issue on save changes
                var v = db.Usuarios.Where(a => a.codigoActivacion == new Guid(id)).FirstOrDefault();
                if (v != null)
                {
                    v.correoVerificado = true;
                    db.SaveChanges();
                    Status = true;
                }
                else
                {
                    ViewBag.Message = "Invalid Request";
                }
            }
            ViewBag.Status = Status;
            return(View());
        }
        public ActionResult Registration([Bind(Exclude = "correoVerificado,codigoActivacion")] Usuario usuario)
        {
            ATECA_BDEntities db = new ATECA_BDEntities();

            ViewBag.ID_rol = new SelectList(db.Roles, "ID_rol", "nombre");
            bool   Status  = false;
            string message = "";

            //
            // Model Validation
            if (ModelState.IsValid)
            {
                DateTime fecha_usuario = usuario.fechaNacimiento;

                String ano;
                String mes = "";
                String dia = "";

                if (fecha_usuario.Day < 10)
                {
                    dia = "0" + fecha_usuario.Day;
                }
                else
                {
                    dia = "" + fecha_usuario.Day;
                }
                if (fecha_usuario.Month < 10)
                {
                    mes = "0" + fecha_usuario.Month;
                }
                else
                {
                    mes = "" + fecha_usuario.Month;
                }

                ano = fecha_usuario.Year + mes + dia;

                String anoA;
                String mesA = "";
                String diaA = "";

                if (DateTime.Now.Day < 10)
                {
                    diaA = "0" + DateTime.Now.Day;
                }
                else
                {
                    diaA = "" + DateTime.Now.Day;
                }
                if (DateTime.Now.Month < 10)
                {
                    mesA = "0" + DateTime.Now.Month;
                }
                else
                {
                    mesA = "" + DateTime.Now.Month;
                }

                anoA = DateTime.Now.Year + mesA + diaA;



                if ((Int32.Parse(anoA) - Int32.Parse(ano)) < 180000)
                {
                    ModelState.AddModelError("FechaExist", "No puede ser menor de edad");
                    return(View(usuario));
                }

                #region //Email already Exist
                var correoExist = IsEmailExist(usuario.correo);
                var cedulaExist = CedulaExist(usuario.cedula);
                if (correoExist)
                {
                    ModelState.AddModelError("EmailExist", "El correo ya esta registrado");
                    return(View(usuario));
                }

                if (cedulaExist)
                {
                    ModelState.AddModelError("CedulaExist", "Esta cédula ya se encuentra registrada");
                    return(View(usuario));
                }
                #endregion

                #region Generate Activation Code
                usuario.codigoActivacion = Guid.NewGuid();
                #endregion

                #region  Password Hashing

                string tempPasswd = Membership.GeneratePassword(12, 4);
                usuario.contraseña = Crypto.Hash(tempPasswd);

                //usuario.confirmarcontrasena = Crypto.Hash(usuario.confirmarcontrasena); //
                #endregion
                usuario.correoVerificado = false;
                usuario.estado           = "true";
                usuario.ID_rol           = 1;
                usuario.contraseña       = usuario.contraseña;
                #region Save to Database
                using (db)
                {
                    db.Usuarios.Add(usuario);
                    db.SaveChanges();

                    //Send Email to User
                    SendVerificationLinkEmail(usuario.correo, usuario.codigoActivacion.ToString(), tempPasswd);
                    message = " Se ha registrado exitosamente. Se le ha enviado un mensaje de correo para verificar la activación de cuenta " +
                              " a: " + usuario.correo;
                    Status = true;
                }
                #endregion
            }
            else
            {
                message = "Invalid Request";
            }

            ViewBag.Message = message;
            ViewBag.Status  = Status;
            return(View(usuario));
        }