Exemplo n.º 1
0
        public ActionResult RecuperarSenha(String login)
        {
            if (ModelState.IsValid)
            {
                UsuarioAtivo usuarioAtivo = models.consultarUsuarioAtivoPorLogin(login);

                if (usuarioAtivo != null)
                {
                    try {
                        var salt = Crypto.SHA1(usuarioAtivo.Email + DateTime.Today + usuarioAtivo.DataRegistro);
                        models.editarSalt(usuarioAtivo, salt);

                        enviarEmail(usuarioAtivo, salt);
                        TempData["Sucesso"] = "Um link para redefinição de senha foi enviado para seu e-mail ^^";
                    } catch (SmtpException e) {
                        TempData["Erro"] = e.Message;
                    }
                }
                else
                {
                    TempData["Erro"] = "Não encontramos nenhum usuário cadastrado com esse e-mail :/";
                }
            }

            return(RedirectToAction("Login", "Home"));
        }
Exemplo n.º 2
0
        public bool editarUsuarioAtivo(UsuarioAtivo usuarioAtivo, string salt)
        {
            bool valida = true;

            try
            {
                if (ValidarSenha(usuarioAtivo.Senha))
                {
                    usuarioAtivo.Senha = Hash.CriarSenhaHash(usuarioAtivo.Senha, salt);
                    usuarioAtivo.Salt  = salt;

                    db.Entry(usuarioAtivo).State = EntityState.Modified;
                    db.SaveChanges();
                }
                else
                {
                    valida = false;
                }
            }
            catch (Exception ex)
            {
                //
            }

            return(valida);
        }
Exemplo n.º 3
0
        public ActionResult RedefinirSenha(RedefinicaoSenhaViewModels viewModels)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    UsuarioAtivo usuarioAtivo = models.consultarUsuariosAtivosPorId(viewModels.IdUsuarioAtivo);

                    usuarioAtivo.Senha = viewModels.Senha;
                    var salt = Crypto.SHA1(usuarioAtivo.Senha);

                    if (!models.editarUsuarioAtivo(usuarioAtivo, salt))
                    {
                        ModelState.AddModelError("PasswordError", "Algo está errado em sua senha :/ Sua senha deve possuir no mínimo 7 caracteres, sendo obrigatório conter pelo menos um dígito, um caractere especial e uma letra maiúscula");
                    }
                    else
                    {
                        TempData["Sucesso"] = "Sua senha foi redefinida. Entre com seu usuário e sua nova senha ^^";
                        return(RedirectToAction("Index"));
                    }
                }
                catch (Exception e)
                {
                    TempData["Erro"] = "Parece que houve um erro ao redefinir sua senha :/";
                }
            }
            else
            {
                ModelState.AddModelError("FieldsError", "Alguns campos não estão preenchidos corretamente :/");
            }

            return(View());
        }
Exemplo n.º 4
0
 public JsonResult Excluir(int?id)
 {
     if (Session["UsuarioAtivoId"] == null)
     {
         return(Json("", JsonRequestBehavior.AllowGet));
         //return Json(null, JsonRequestBehavior.AllowGet);
     }
     try
     {
         UsuarioAtivo usuarioAtivo     = models.consultarUsuariosAtivosPorId((int)id);
         var          usuariosPassivos = usuarioAtivo.UsuariosPassivos.ToList <UsuarioPassivo>();
         if (usuariosPassivos != null)
         {
             models.excluirTodosUsuariosPassivos(usuariosPassivos);
         }
         if (ModelState.IsValid)
         {
             models.excluirUsuarioAtivo(usuarioAtivo);
             return(Json("", JsonRequestBehavior.AllowGet));
         }
         return(Json("Erro"));
     }
     catch (Exception ex)
     {
         return(Json("Erro de comunicação com o banco de dados. - " + ex.Message));
     }
 }
Exemplo n.º 5
0
        public ActionResult Login(string email, string senha)
        {
            if (ModelState.IsValid)
            {
                UsuarioAtivo user = models.VerificarUsuario(email, senha);

                if (user != null)
                {
                    Session["UsuarioAtivoNome"] = user.Nome;
                    Session["UsuarioAtivoId"]   = user.Id;
                    FormsAuthentication.SetAuthCookie(user.Nome, false);
                    return(RedirectToAction("Index", "Evento"));
                }
                else
                {
                    ModelState.AddModelError("", "O usuário ou senha estão incorretos :/");
                }
            }
            else
            {
                var errors = ModelState.Values.SelectMany(v => v.Errors).ToString();
                ModelState.AddModelError("", errors);
            }
            return(View());
        }
Exemplo n.º 6
0
        public UsuarioAtivo retornarUsuarioLogado()
        {
            var          userId = Convert.ToInt32(HttpContext.Current.Session["UsuarioAtivoId"]);
            UsuarioAtivo us     = db.UsuariosAtivos.FirstOrDefault(a => a.Id == userId);

            return(us);
        }
Exemplo n.º 7
0
        public ActionResult Editar(UsuarioAtivoViewModels usuarioAtivoViewModels)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    UsuarioAtivo usuarioAtivo = new UsuarioAtivo();

                    usuarioAtivo.Id        = usuarioAtivoViewModels.Id;
                    usuarioAtivo.Nome      = usuarioAtivoViewModels.Nome;
                    usuarioAtivo.Sobrenome = usuarioAtivoViewModels.Sobrenome;
                    usuarioAtivo.Endereco  = usuarioAtivoViewModels.Endereco;
                    usuarioAtivo.Telefone  = usuarioAtivoViewModels.Telefone;
                    usuarioAtivo.Email     = usuarioAtivoViewModels.Email;
                    usuarioAtivo.Senha     = usuarioAtivoViewModels.Senha;


                    //  models.editarUsuarioAtivo(usuarioAtivo, salt);
                    TempData["Sucesso"] = "Seus dados foram atualizados ^^";
                    return(RedirectToAction("Index"));
                }
                catch (Exception e) {
                    TempData["Erro"] = "Houve algum erro ao atualizar seus dados ><";
                }
            }
            else
            {
                ModelState.AddModelError("FieldsError", "VAlguns campos não estão preenchidos corretamente :/");
            }

            return(View());
        }
Exemplo n.º 8
0
        public void inserirUsuarioPassivo(UsuarioPassivo usuarioPassivo)
        {
            var          id = Convert.ToInt32(HttpContext.Current.Session["UsuarioAtivoId"]);
            UsuarioAtivo us = db.UsuariosAtivos.SingleOrDefault(a => a.Id == id);

            usuarioPassivo.UsuarioAtivo = us;
            db.UsuariosPassivos.Add(usuarioPassivo);
            db.SaveChanges();
        }
Exemplo n.º 9
0
        public ActionResult Visualizar(int?id)
        {
            if (Session["UsuarioAtivoId"] == null)
            {
                return(RedirectToAction("Login", "Home"));
            }
            UsuarioAtivo usuarioAtivo = models.consultarUsuariosAtivosPorId((int)id);

            return(View(usuarioAtivo));
        }
Exemplo n.º 10
0
 public void excluirUsuarioAtivo(UsuarioAtivo usuarioAtivo)
 {
     try
     {
         db.Entry(usuarioAtivo).State = EntityState.Deleted;
         db.SaveChanges();
     }
     catch (Exception ex)
     {
         //
     }
 }
Exemplo n.º 11
0
        public bool editarSalt(UsuarioAtivo usuarioAtivo, string salt)
        {
            bool valida = true;

            try
            {
                usuarioAtivo.Salt = salt;

                db.Entry(usuarioAtivo).State = EntityState.Modified;
                db.SaveChanges();
            }
            catch (Exception ex)
            {
                //
            }

            return(valida);
        }
Exemplo n.º 12
0
        public UsuarioAtivo consultarUsuarioAtivoPorLogin(string login)
        {
            var usuarioAtivo = new UsuarioAtivo();

            try
            {
                usuarioAtivo = db.UsuariosAtivos.Where(a => a.Email == login).FirstOrDefault();

                if (usuarioAtivo != null)
                {
                    return(usuarioAtivo);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(usuarioAtivo);
        }
Exemplo n.º 13
0
        public UsuarioAtivo consultarUsuarioAtivoPorSalt(string salt)
        {
            var usuarioAtivo = new UsuarioAtivo();

            try
            {
                usuarioAtivo = db.UsuariosAtivos.Where(a => a.Salt == salt).FirstOrDefault();

                if (usuarioAtivo != null)
                {
                    return(usuarioAtivo);
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(usuarioAtivo);
        }
Exemplo n.º 14
0
        public bool inserirUsuarioAtivo(UsuarioAtivo usuarioAtivo)
        {
            bool valida = true;

            if (ValidarSenha(usuarioAtivo.Senha))
            {
                var salt = Crypto.GenerateSalt();
                usuarioAtivo.Senha = Hash.CriarSenhaHash(usuarioAtivo.Senha, salt);
                usuarioAtivo.Salt  = salt;

                db.UsuariosAtivos.Add(usuarioAtivo);
                db.SaveChanges();
            }
            else
            {
                valida = false;
            }

            return(valida);
        }
Exemplo n.º 15
0
        public ActionResult Inserir(UsuarioAtivoViewModels usuarioAtivoViewModels)
        {
            if (ModelState.IsValid)
            {
                UsuarioAtivo usuarioAtivo = new UsuarioAtivo();

                usuarioAtivo.Id        = usuarioAtivoViewModels.Id;
                usuarioAtivo.Nome      = usuarioAtivoViewModels.Nome;
                usuarioAtivo.Sobrenome = usuarioAtivoViewModels.Sobrenome;
                usuarioAtivo.Endereco  = usuarioAtivoViewModels.Endereco;
                usuarioAtivo.Telefone  = usuarioAtivoViewModels.Telefone;
                usuarioAtivo.Email     = usuarioAtivoViewModels.Email;
                usuarioAtivo.Senha     = usuarioAtivoViewModels.Senha;
                if (usuarioAtivoViewModels.Sexo == "1")
                {
                    usuarioAtivo.Sexo = 1;
                }
                else
                {
                    usuarioAtivo.Sexo = 2;
                }

                if (!models.inserirUsuarioAtivo(usuarioAtivo))
                {
                    ModelState.AddModelError("PasswordError", "Algo está errado em sua senha :/ Sua senha deve possuir no mínimo 7 caracteres, sendo obrigatório conter pelo menos um dígito, um caractere especial e uma letra maiúscula");
                }
                else
                {
                    TempData["Sucesso"] = "Bem vindo ao Mazul! \\o/ Entre com seu login e senha e aproveite todos os recursos que preparamos para você!";
                    return(RedirectToAction("Login", "Home"));
                }
            }
            else
            {
                ModelState.AddModelError("FieldsError", "Alguns campos não estão preenchidos corretamente :/");
            }
            return(View());
        }
Exemplo n.º 16
0
        public JsonResult RecuperarDados(int?id)
        {
            if (Session["UsuarioAtivoId"] == null)
            {
                return(Json(new
                {
                    redirectUrl = Url.Action("Login", "Home"),
                    isRedirect = true
                }));
            }
            try
            {
                UsuarioAtivo usuarioAtivo = models.consultarUsuariosAtivosPorId((int)id);

                var usuarioAtivoViewModels = new UsuarioAtivoViewModels();
                usuarioAtivoViewModels.Id        = usuarioAtivo.Id;
                usuarioAtivoViewModels.Nome      = usuarioAtivo.Nome;
                usuarioAtivoViewModels.Sobrenome = usuarioAtivo.Sobrenome;
                usuarioAtivoViewModels.Endereco  = usuarioAtivo.Endereco;
                usuarioAtivoViewModels.Telefone  = usuarioAtivo.Telefone;
                usuarioAtivoViewModels.Email     = usuarioAtivo.Email;
                if (usuarioAtivo.Sexo == 1)
                {
                    usuarioAtivoViewModels.Sexo = "Masculino";
                }
                else
                {
                    usuarioAtivoViewModels.Sexo = "Feminino";
                }

                return(Json(usuarioAtivoViewModels, JsonRequestBehavior.AllowGet));
            }
            catch (Exception ex)
            {
                return(Json("Erro de comunicação com o banco de dados. - " + ex.Message));
            }
        }
Exemplo n.º 17
0
        public UsuarioAtivo VerificarUsuario(string email, string senha)
        {
            var usuarioAtivo = new UsuarioAtivo();

            try
            {
                db.Database.Connection.Open();

                usuarioAtivo = db.UsuariosAtivos.Where(a => a.Email == email).FirstOrDefault();

                if (usuarioAtivo != null)
                {
                    if (usuarioAtivo.Senha == Hash.CriarSenhaHash(senha, usuarioAtivo.Salt))
                    {
                        return(usuarioAtivo);
                    }
                }
            }
            catch (Exception ex)
            {
                throw;
            }
            return(usuarioAtivo);
        }
Exemplo n.º 18
0
        private void enviarEmail(UsuarioAtivo usuarioAtivo, string salt)
        {
            string body = @"<html><body>
                                          <p>Olá! <br /><br />" + usuarioAtivo.Nome + " " + usuarioAtivo.Sobrenome + ", você solicitou pelo nosso site ajuda para recuperar sua senha. Para voltar a aproveitar todas os recursos de nosso site você precisa criar uma nova senha, para isso basta clicar no link a seguir: </p> <p><strong>http://localhost:6272/usuarioAtivo/redefinirsenha/" + salt + "</strong></p><br /><p>Fácil né?!  Esperamos que tudo dê certo! ^^ <br /><br /> Atenciosamente, Mazul.</p></body></html>";

            try
            {
                MailMessage mail = new MailMessage("*****@*****.**", "*****@*****.**", "Redefinição de senha - MAZUL", body);
                mail.From       = new MailAddress("*****@*****.**", "Mazul");
                mail.IsBodyHtml = true; // necessary if you're using html email

                NetworkCredential credential = new NetworkCredential("*****@*****.**", "Asdzxc123$");
                SmtpClient        smtp       = new SmtpClient("smtp.gmail.com", 587);
                smtp.EnableSsl             = true;
                smtp.UseDefaultCredentials = false;
                smtp.Credentials           = credential;
                smtp.Send(mail);
            }
            catch (SmtpException e)
            {
                Console.WriteLine(e);
                throw new SmtpException("Parece que houve um problema e não conseguimos enviar para seu e-mail o link de recuperação de senha. ><  Mas fique tranquilo, já estamos solucionando o problema o/");
            }
        }