public ActionResult ChangePassword(EditarSenhaVM model) { try { // obtem o id do usuario da sessao int idUsuario = Convert.ToInt32(Session["login.UsuarioId"]); using (Context db = new Context()) { // instancia bll do usuario UsuarioBLL usuarioBLL = new UsuarioBLL(db, 0); // consulta usuario pelo id Usuario usuario = usuarioBLL.FindSingle(u => u.idUsuario == idUsuario); // se o usuario do formulario for diferente do usuario da sessao if (usuario.dsLogin != model.Usuario) { throw new Exception("O usuário não confere com o login! Certifique-se de estar alterando o seu usuário."); } //certifica-se de que o usuario informado tem a senha com data expirada // garante que somente um usuário com senha expirada, poderá ser alterado else if (usuario.dtValidade >= DateTime.Now.Date) { throw new Exception("O usuário informado não possui a senha expirada! Certifique-se de estar alterando o seu usuário."); } // se a senha do usuario for diferente da senha informada no formulario else if (!(usuario.dsSenha == RP.Util.Class.Util.getHash(model.Senha))) { // adiciona mensagem no modelstate ModelState.AddModelError("Senha", "Usuário ou senha incorretos"); } // se a nova senha for igual a senha atual do usuario else if (usuario.dsSenha == RP.Util.Class.Util.getHash(model.NovaSenha)) { // adiciona mensagem no modelstate ModelState.AddModelError("NovaSenha", "A nova senha deve ser diferente da senha atual"); } // se modelstate for valido if (ModelState.IsValid) { // seta nova senha criptografada para o usuario usuario.dsSenha = RP.Util.Class.Util.getHash(model.NovaSenha); usuario.dtValidade = DateTime.Now.Date.AddDays(Convert.ToInt32(ConfigurationManager.AppSettings["UsuarioValidadeSenha"])); usuario.flAtivo = "Sim"; // altera o usuario using (var transaction = new RP.DataAccess.RPTransactionScope(db)) { BLL.UsuarioBLL bll = new BLL.UsuarioBLL(db, Helpers.Helper.UserId); bll.Update(usuario); bll.SaveChanges(); transaction.Complete(); } // faz login do usuario no sistema CriarCookieUsuario(usuario, Convert.ToString(Session["login.nrAcesso"]), false); // registra o acesso como sucesso AccessRegister(usuario.dsLogin, true); // remove usuario da sessao Session.Remove("login.UsuarioId"); // remove Id de acesso na sessao Session.Remove("login.nrAcesso"); // adiciona mensagem de sucesso this.AddFlashMessage(RP.Util.Resource.Message.PASSWORD_UPDATE, FlashMessage.SUCCESS); // redireciona para index return RedirectToAction("Index"); } } } catch (Exception ex) { // adiciona mensagem de erro this.AddFlashMessage(RP.Util.Exception.Message.Get(ex), FlashMessage.ERROR); // redireciona para login return RedirectToAction("Login"); } return View(model); }
public ActionResult DesbloquearConfirmed(int id) { try { LogBLL.Insert(new LogDado("DesbloquearConfirmed", "Usuario", _idUsuario)); using (Context db = new Context()) { using (var trans = new RP.DataAccess.RPTransactionScope(db)) { BLL.UsuarioBLL usuarioBLL = new BLL.UsuarioBLL(db, _idUsuario); Usuario usuario = usuarioBLL.FindSingle(u => u.idUsuario == id); if (usuario == null) { throw new Exception(string.Format(RP.Util.Resource.Message.RECORD_NOT_FOUND, id)); } else { usuario.flAtivo = "Sim"; usuario.nrFalhalogin = 0; //usuario.dtValidade = DateTime.Now.AddDays(5); usuarioBLL.Update(usuario); usuarioBLL.SaveChanges(); trans.Complete(); } this.AddFlashMessage("Usuário desbloqueado", FlashMessage.SUCCESS); return RedirectToAction("Index"); } } } catch (Exception ex) { RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario); this.AddFlashMessage(RP.Util.Exception.Message.Get(ex), FlashMessage.ERROR); RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario); return RedirectToAction("Desbloquear", new { id }); } }
public ActionResult Perfil(AlterarPerfilVM model, HttpPostedFileBase fuFoto) { bool AlterarSenha = (!string.IsNullOrEmpty(model.SenhaAtual) && !string.IsNullOrEmpty(model.NovaSenha)); try { LogBLL.Insert(new LogDado("Perfil", "Usuario", _idUsuario)); using (Context db = new Context()) { Usuario usuarioLogado; BLL.UsuarioBLL usuarioBLL = new BLL.UsuarioBLL(db, _idUsuario); using (var trans = new RP.DataAccess.RPTransactionScope(db)) { usuarioLogado = usuarioBLL.FindSingle(u => u.idUsuario == _idUsuario); if (usuarioLogado == null) { throw new Exception(string.Format(RP.Util.Resource.Message.RECORD_NOT_FOUND, _idUsuario)); } if (AlterarSenha && (usuarioLogado.dsSenha != RP.Util.Class.Util.getHash(model.SenhaAtual))) { ModelState.AddModelError("SenhaAtual", "A senha atual está incorreta."); } if (ModelState.IsValid) { if (AlterarSenha) { usuarioLogado.dsSenha = RP.Util.Class.Util.getHash(model.NovaSenha); usuarioLogado.dtValidade = DateTime.Now.Date.AddDays(Convert.ToInt32(System.Configuration.ConfigurationManager.AppSettings["UsuarioValidadeSenha"])); usuarioBLL.Update(usuarioLogado); usuarioBLL.SaveChanges(); trans.Complete(); } string path = System.Configuration.ConfigurationManager.AppSettings["PathFile"] + @"Fotos\Usuarios\"; if (fuFoto != null) { usuarioBLL.SavePhoto(path, usuarioLogado.idUsuario, fuFoto); } else if (this.HttpContext.Request.Params.AllKeys.Contains("fuFoto")) { if (string.IsNullOrEmpty(this.HttpContext.Request.Params["fuFoto"])) { usuarioBLL.RemovePhoto(path, usuarioLogado.idUsuario); } } this.AddFlashMessage("Perfil atualizado com sucesso!", FlashMessage.SUCCESS); return RedirectToAction("Perfil"); } return View(model); } } } catch (Exception ex) { RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario, Url.Action("Index", "Usuario")); return RedirectToAction("Index", "Erro"); } }
public ActionResult BloquearConfirmed(int id) { try { LogBLL.Insert(new LogDado("BloquearConfirmed", "Usuario", _idUsuario)); if (id == _idUsuario) { throw new Exception("Você não pode bloquear seu próprio usuário!"); } using (Context db = new Context()) { using (var trans = new RP.DataAccess.RPTransactionScope(db)) { BLL.UsuarioBLL usuarioBLL = new BLL.UsuarioBLL(db, _idUsuario); Usuario usuario = usuarioBLL.FindSingle(u => u.idUsuario == id); if (usuario == null) { throw new Exception(string.Format(RP.Util.Resource.Message.RECORD_NOT_FOUND, id)); } else { usuario.flAtivo = "Não"; Auth.Class.AuthModel.Remove(usuario.dsLogin); usuarioBLL.Update(usuario); usuarioBLL.SaveChanges(); trans.Complete(); } this.AddFlashMessage("Usuário bloqueado", FlashMessage.SUCCESS); return RedirectToAction("Index"); } } } catch (Exception ex) { RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario); this.AddFlashMessage(RP.Util.Exception.Message.Get(ex), FlashMessage.ERROR); RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario); return RedirectToAction("Bloquear", new { id }); } }
public ActionResult Edit(UsuarioVM model, int id, HttpPostedFileBase fuFoto) { try { LogBLL.Insert(new LogDado("Edit", "Usuario", _idUsuario)); if (ModelState.IsValid) { var usuarioView = model.VM2E(); usuarioView.idUsuario = id; using (Context db = new Context()) { using (var trans = new RP.DataAccess.RPTransactionScope(db)) { BLL.UsuarioBLL usuarioBLL = new BLL.UsuarioBLL(db, _idUsuario); var _usuarioDB = usuarioBLL.FindSingle(u => u.idUsuario == id); _usuarioDB.nmUsuario = usuarioView.nmUsuario; _usuarioDB.dsEmail = usuarioView.dsEmail; usuarioBLL.Update(_usuarioDB); usuarioBLL.SaveChanges(); trans.Complete(); string path = System.Configuration.ConfigurationManager.AppSettings["PathFile"] + @"Fotos\Usuarios\"; if (fuFoto != null) { usuarioBLL.SavePhoto(path, usuarioView.idUsuario, fuFoto); } else if (this.HttpContext.Request.Params.AllKeys.Contains("fuFoto")) { if (string.IsNullOrEmpty(this.HttpContext.Request.Params["fuFoto"])) { usuarioBLL.RemovePhoto(path, usuarioView.idUsuario); } } this.AddFlashMessage(RP.Util.Resource.Message.EDIT_SUCCESS, FlashMessage.SUCCESS); return RedirectToAction("Index"); } } } return View(model); } catch (Exception ex) { RP.Util.Entity.ErroLog.Add(ex, Session.SessionID, _idUsuario, Url.Action("Index", "Usuario")); return RedirectToAction("Index", "Erro"); } }