public ActionResult UpdateSession(string Token) { try{ if (!string.IsNullOrEmpty(Token)) { GEM.Repository.Usuario usuario = GEM.Repository.Usuario.FirstOrDefault(new { Token }); if (usuario == null) { return(Json("Informe email e senha no login")); } if (!usuario.Ativo) { throw new Exception("Usuário com acesso bloqueado.<br /> Clique em solicitar novo acesso!"); } usuario.Comum = Comum.Find(usuario.Cod_Comum).Nome; UserSession.SetUsuario(Request.HttpContext, usuario); return(Json("ok")); } else { return(Json("Informe email e senha no login")); } }catch (Exception ex) { return(Json(ex.Message)); } }
public ActionResult Login(string Email, string Senha) { try { GEM.Repository.Usuario usuario = GEM.Repository.Usuario.FindByEmail(Email); if (usuario != null) { if (Encryption.md5(Senha) != usuario.Senha) { throw new Exception("Senha incorreta"); } if (!usuario.Ativo) { throw new Exception("Usuário com acesso bloqueado.<br /> Clique em solicitar novo acesso!"); } usuario.Senha = ""; usuario.Token = Guid.NewGuid().ToString(); usuario.UpdateToken(); UserSession.SetUsuario(Request.HttpContext, usuario); return(RedirectToAction("Index", "Home")); } else { throw new Exception("Email não cadastrado"); } } catch (Exception ex) { ViewBag.error = ex.Message; return(View()); } }
public ActionResult Cadastrar(string Nome = "", string Email = "", int Cod_Comum = 0, string Comum = "", string Cidade = "", string Estado = "", string Token = "") { try{ if (Encryption.md5(Nome + Email + Comum) != Token) { throw new Exception("Token inválido!"); } GEM.Repository.Comum comum = GEM.Repository.Comum.FirstOrDefault(new { Nome = Comum, Cidade, Estado }); if (Cod_Comum == 0) { if (comum == null) { comum = new GEM.Repository.Comum(); comum.Nome = Comum; comum.Cidade = Cidade; comum.Estado = Estado; comum.Save(); } } else { comum = GEM.Repository.Comum.Find(Cod_Comum); } GEM.Repository.Usuario usuario = GEM.Repository.Usuario.FindByEmail(Email); if (usuario == null) { usuario = new Usuario(); usuario.Nome = Nome; usuario.Email = Email; usuario.Cod_Comum = comum.Cod_Comum; usuario.Comum = comum.Nome; usuario.Instrutor = true; usuario.Oficializado = true; usuario.Ativo = true; usuario.Save(); UsuarioPermissao permissao = UsuarioPermissao.Find(usuario.Cod_Usuario); permissao.Instrutor = true; permissao.Oficializado = true; permissao.Ativo = true; permissao.Update(); } EnviarConvite(Email); GEM.Helpers.UserSession.SetUsuario(Request.HttpContext, usuario); return(RedirectToAction("Index", "Home")); } catch (Exception ex) { return(Content(ex.Message)); } }
public ActionResult RecuperarSenha(string id) { GEM.Repository.Usuario usuario = GEM.Repository.Usuario.FindByRecuperarSenha(id); if (usuario == null) { ViewBag.error = "Código de recuperação inválido!"; } return(View(usuario)); }
public ActionResult Impersonate(string Email) { try{ GEM.Repository.Usuario usuario = GEM.Repository.Usuario.FindByEmail(Email); if (!usuario.Ativo) { throw new Exception("Usuário com acesso bloqueado.<br /> Clique em solicitar novo acesso!"); } UserSession.SetUsuario(Request.HttpContext, usuario); return(RedirectToAction("Index", "Home")); } catch (Exception ex) { ViewBag.error = ex.Message; return(View()); } }
public ActionResult EnviarConvite(string Email) { try { GEM.Repository.Usuario usuario = GEM.Repository.Usuario.FindByEmail(Email); if (usuario == null) { throw new Exception("Email não cadastrado"); } usuario.RecuperarSenha = Encryption.md5(usuario.Cod_Usuario.ToString() + usuario.Senha); usuario.UpdateRecuperarSenha(); System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12 | System.Net.SecurityProtocolType.Tls11 | System.Net.SecurityProtocolType.Tls; //http://myaccount.google.com/u/2/lesssecureapps?pli=1&pageId=none Helpers.Mail mail = new Helpers.Mail("smtp.gmail.com", "*****@*****.**", "GEM@ccb01", true, true, 587); string html = string.Format(@"<html> <body style='font-family: sans-serif;background-color: #f8f9fa;'> <table c width='100%' style='border: solid 1px #189999;'> <tr> <td style='background-color: #189999; color: #fff; padding: 20px 10px;'>Músicos - CCB - Convite de acesso ao sistema</td> </tr> <tr> <td style='padding: 10px;'> <span>Seja muito bem vindo(a) ao sistema criado para os Músicos CCB! <br />Para acessar o sistema Músicos CCB crie uma nova senha clicando no link abaixo ou copie e cole este link no seu navegador</span> <br /><br /> <a href='{0}/home/RecuperarSenha/{1}' style='background-color: #495057; color:#fff;padding: 5px;border-radius: 5px;' hre='#'>{0}/home/RecuperarSenha/{1}</a> <br /><br /> </td> </tr> </table> </body> </html>", SITE, usuario.RecuperarSenha); mail.SendMail(html, true, new System.Net.Mail.MailAddress("*****@*****.**", "Músicos CCB"), Email, "Músicos - CCB - Convite", null); //ViewBag.success = "Email enviado com sucesso!"; return(Json("ok")); } catch (Exception ex) { //ViewBag.error = ex.Message; return(Json(ex.Message)); } }
public ActionResult NovaSenha(string id, string Senha, string ConfirmarSenha) { GEM.Repository.Usuario usuario = GEM.Repository.Usuario.FindByRecuperarSenha(id); if (usuario == null) { ViewBag.error = "Código de recuperação inválido!"; return(View("RecuperarSenha", usuario)); } if (Senha == ConfirmarSenha) { usuario.Senha = Encryption.md5(Senha); usuario.UpdateSenha(); UserSession.SetUsuario(Request.HttpContext, usuario); return(RedirectToAction("Index", "Home")); } else { ViewBag.error = "A senha e confirmação deverão ser idênticas!"; return(View("RecuperarSenha", usuario)); } }