/// <summary> /// Atualiza senha de um usuário /// </summary> /// <param name="usuario">obj usuario com id valida</param> /// <param name="notificacao">notificacoes de erro ou sucesso</param> /// <returns>verdadeiro se não houver erros</returns> public bool AtualizarSenha(Usuario usuario, out Notificacao notificacao) { if (!Recuperar(usuario, out notificacao)) { return false; } if (string.IsNullOrEmpty(usuario.Senha)) { notificacao = new Notificacao("A senha nao pode ser em branco, digite uma senha valida!", 'e'); return false; } if (usuario.Senha != usuario.SenhaConfirma) { notificacao = new Notificacao("Senhas diferentes, informe a senha novamente", 'e'); return false; } usuario.Senha = GerarMD5(usuario.Senha);//encripta senha em md5 if (!new UsuarioBD().AtualizarSenha(usuario)) { notificacao = new Notificacao("Não foi possivel atualizar a senha do usuário, Erro no Banco de Dados", 'e'); return false; } notificacao = new Notificacao("Senha do usuário " + usuario.Login + " Atualizada com sucesso", 's'); return true; }
/// <summary> /// Grava um usuario inserindo ou atualizando o mesmo /// </summary> /// <param name="usuario">obj categoria com descricao valida</param> /// <param name="notificacao">notificacoes de erro ou sucesso</param> /// <returns>verdadeiro se não houver erros</returns> public bool Gravar(Usuario usuario, out Notificacao notificacao) { bool cadastro = usuario.Id == 0; if (string.IsNullOrEmpty(usuario.Login)) { notificacao = new Notificacao("Login inválido, informe um login valido para gravar", 'e'); return false; } if (usuario.Login.Length < 4 || usuario.Login.Length > 20) { notificacao = new Notificacao("Login inválido, o login deve conter no minimo 4 e no maximo 20 caracteres", 'e'); return false; } if (cadastro)//somente para cadastro { if (usuario.Senha.Length < 4 || usuario.Senha.Length > 8) { notificacao = new Notificacao("A senha deve conter de 4 a 8 caracteres, escolha uma nova senha", 'e'); return false; } if (usuario.Senha != usuario.SenhaConfirma) { notificacao = new Notificacao("Senhas diferentes, informe a senha novamente", 'e'); return false; } } if (!new PessoaCtrl().Recuperar(usuario.Utilizador, out notificacao)) { notificacao = new Notificacao("A Pessoa informada é Invalida, selecione uma pessoa fisica valida disponivel ou cadastre-a", 'e'); return false; } if (cadastro) { usuario.Login = usuario.Login.Trim();//elimina espaços laterais usuario.Senha = GerarMD5(usuario.Senha);//encripta senha em md5 } if (!(cadastro ? new UsuarioBD().Inserir(usuario) : new UsuarioBD().Atualizar(usuario))) { if (cadastro && usuario.Id > 0) notificacao = new Notificacao("Este Login já foi utilizado e não pode se repetir, selecione outro login", 'a'); else { notificacao = new Notificacao("Erro de banco de dados, notifique o administrador", 'e'); } return false; } notificacao = cadastro ? new Notificacao("Conta de usuário cadastrada com Sucesso", 's') : new Notificacao("Conta de usuário atualizada com Sucesso", 's'); return true; }
/// <summary> /// Desativa uma conta de usuario /// </summary> /// <param name="usuario">obj usuario com id valida</param> /// <param name="notificacao">notificacoes de erro ou sucesso</param> /// <returns>verdadeiro se não houver erros</returns> public bool Excluir(Usuario usuario, out Notificacao notificacao) { if (usuario.Id <= 0) { notificacao = new Notificacao("Não foi possivel identificar o codigo da Conta de Usuário a ser excluida", 'e'); return false; } if (new UsuarioBD().Excluir(usuario)) { notificacao = new Notificacao("Conta de Usuario excluida com Sucesso", 's'); return true; } notificacao = new Notificacao("Não foi possivel excluir a Conta de Usuário informada, tente novamente, se o erro persistir contate o adminsitrador", 'e'); return false; }
public void BtnOpcoes(object sender, CommandEventArgs e) { switch (e.CommandName) { case "entrar": { var usuario = new Usuario(ttbLogin.Text, ttbSenha.Text); if (new UsuarioCtrl().LogarUsuario(usuario, out notificacao)) { Response.Redirect("/View/menu/principal.aspx"); } boxErro.Visible = true; lblErro.Text = notificacao.Descricao; } break; } }
/// <summary> /// Atualiza senha de Usuario no Banco de Dados /// </summary> /// <param name="usuario">Obj usuario</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool AtualizarSenha(Usuario usuario) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"UPDATE usuarios SET senha = @senha WHERE id = @id"; _bd.Cmd.Parameters.AddWithValue("@senha", usuario.Senha); _bd.Cmd.Parameters.AddWithValue("@id", usuario.Id); if (!(_bd.ExecuteNonQuery() > 0)) { return false; } } catch (Exception) { return false; } return true; }
/// <summary> /// Exclui logicamente um usuario no Banco de Dados /// </summary> /// <param name="usuario">Obj usuario</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Excluir(Usuario usuario) { _bd = new Persistencia(); try { _bd.Cmd.Parameters.Clear(); _bd.Cmd.CommandText = @"UPDATE usuarios SET excluido = @value WHERE id = @id"; _bd.Cmd.Parameters.AddWithValue("@value", 1);//1== excluido _bd.Cmd.Parameters.AddWithValue("@id", usuario.Id); _bd.ExecuteNonQuery(); } catch (Exception) { return false; } //se excluiu ou desativou =sucesso return true; }
/// <summary> /// Atualiza um Usuario no Banco de Dados /// </summary> /// <param name="usuario">Obj usuario</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Atualizar(Usuario usuario) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"UPDATE usuarios SET login = @login, pessoa_id = @pessoa_id WHERE id = @id"; _bd.Cmd.Parameters.AddWithValue("@login", usuario.Login); _bd.Cmd.Parameters.AddWithValue("@pessoa_id", usuario.Utilizador.Id); _bd.Cmd.Parameters.AddWithValue("@id", usuario.Id); if (!(_bd.ExecuteNonQuery() > 0)) { return false; } } catch (Exception) { return false; } return true; }
protected List<Notificacao> notificacoes = new List<Notificacao>(); //notificações #endregion Fields #region Methods /// <summary> /// Opcoes da Interface /// </summary> public void BtnOpcoes(object sender, CommandEventArgs e) { switch (e.CommandName) { case "trocarAba": { tab.Value = e.CommandArgument.ToString(); boxUsuarios.Visible = e.CommandArgument.ToString() == "a"; boxPermissoes.Visible = e.CommandArgument.ToString() == "b"; LimparCampos(); } break; case "gravar": { Notificacao notificacao; if (loginBox.Visible)//cadastro ou atualizacao de usuario { Usuario usuario; if (senhaBox.Visible)//cadastro { usuario = new Usuario(Convert.ToInt32(userId.Value), ttbLogin.Text, ttbSenha.Text, ttbConfirmaSenha.Text, new Pessoa(Convert.ToInt32(pesId.Value))); } else//atualizacao { usuario = new Usuario(Convert.ToInt32(userId.Value), ttbLogin.Text, new Pessoa(Convert.ToInt32(pesId.Value))); } bool gravou = new UsuarioCtrl().Gravar(usuario, out notificacao); notificacoes.Add(notificacao); if (gravou) { LimparCampos(); ListarUsuarios(); } else { ListarNotificacoes(); } } else // atualizacao de senha { var usuario = new Usuario(Convert.ToInt32(userId.Value), ttbSenha.Text, ttbConfirmaSenha.Text); if (new UsuarioCtrl().AtualizarSenha(usuario, out notificacao)) { notificacoes.Add(notificacao); LimparCampos(); ListarUsuarios(); } else { notificacoes.Add(notificacao); ListarNotificacoes(); } } } break; case "cancelar": { LimparCampos(); ListarUsuarios(); } break; case "remover": { Notificacao notificacao; bool excluiu = new UsuarioCtrl().Excluir(new Usuario(Convert.ToInt32(userId.Value)), out notificacao); notificacoes.Add(notificacao); if (excluiu) { LimparCampos();//zera id e limpa caso o amado usuário tenha solicitado edicao antes de excluir a categoria... ListarUsuarios(); } else ListarNotificacoes(); } break; case "editar": { Notificacao notificacao; var usuario = new Usuario(Convert.ToInt32(e.CommandArgument)); bool recuperou = new UsuarioCtrl().Recuperar(usuario, out notificacao); if (recuperou) { btnCancelar.Visible = true; loginBox.Visible = true; senhaBox.Visible = false; userId.Value = usuario.Id.ToString();//salva a id em edicao pesId.Value = usuario.Utilizador.Id.ToString();//exibe descricao selecionada ttbLogin.Text = usuario.Login; ttbPessoa.Text = usuario.Utilizador.Nome; ListarUsuarios(); } else {//informa o erro notificacoes.Add(notificacao); ListarNotificacoes(); } } break; case "editarS": { Notificacao notificacao; var usuario = new Usuario(Convert.ToInt32(e.CommandArgument)); bool recuperou = new UsuarioCtrl().Recuperar(usuario, out notificacao); if (recuperou) { btnCancelar.Visible = true; loginBox.Visible = false; senhaBox.Visible = true; userId.Value = usuario.Id.ToString();//salva a id em edicao pesId.Value = usuario.Utilizador.Id.ToString();//exibe descricao selecionada ttbLogin.Text = usuario.Login; ttbPessoa.Text = usuario.Utilizador.Nome; ListarUsuarios(); } else {//informa o erro notificacoes.Add(notificacao); ListarNotificacoes(); } } break; } }
/// <summary> /// Recupera uma conta de usuario /// </summary> /// <param name="usuario">obj usuario com id valida</param> /// <param name="notificacao">notificacoes de erro ou sucesso</param> /// <returns>verdadeiro se não houver erros</returns> public bool Recuperar(Usuario usuario, out Notificacao notificacao) { if (!new UsuarioBD().Recuperar(usuario)) { notificacao = new Notificacao("Não foi possivel recuperar a Conta de Usuário, Erro no Banco de Dados", 'e'); return false; } notificacao = new Notificacao("Usuario recuperado com sucesso", 's'); return true; }
/// <summary> /// Loga um usuario no sistema /// </summary> /// <param name="usuario"></param> /// <param name="notificacao"></param> /// <returns></returns> public bool LogarUsuario(Usuario usuario, out Notificacao notificacao) { if (!new UsuarioBD().LoginCheck(usuario))//recupera id { notificacao = new Notificacao("Conta de usuário inválida", 'e'); return false; } if (!new UsuarioBD().SenhaRecuperar(usuario))//recupera senha pela id { notificacao = new Notificacao("Erro no banco de dados, notifique o administrador", 'e'); return false; } string tes = GerarMD5(usuario.Senha); if (GerarMD5(usuario.Senha) != usuario.SenhaConfirma)//compara senhas { notificacao = new Notificacao("Usuário ou senha inválido", 'e'); return false; } usuario = new Usuario(usuario.Id); notificacao = new Notificacao("Login Efetuado com sucesso", 'e'); return true; }
/// <summary> /// Loga um usuario no sistema /// </summary> /// <param name="usuario"></param> /// <param name="notificacao"></param> /// <returns></returns> public bool LogarUsuario(Usuario usuario, out Notificacao notificacao) { if (!new UsuarioBD().LoginCheck(usuario))//recupera id { notificacao = new Notificacao("Conta de usuário inválida", 'e'); return false; } if (!new UsuarioBD().SenhaRecuperar(usuario))//recupera senha pela id { notificacao = new Notificacao("Erro no banco de dados, notifique o administrador", 'e'); return false; } if (GerarMD5(usuario.Senha) != usuario.SenhaConfirma)//compara senhas { notificacao = new Notificacao("Usuário ou senha inválido", 'e'); return false; } usuario = new Usuario(usuario.Id); System.Web.HttpContext.Current.Session["user"] = usuario;//cria sessao notificacao = new Notificacao("Login Efetuado com sucesso", 'e'); return true; }
/// <summary> /// recupera a senha no banco de dados para confirmação /// </summary> /// <param name="usuario"></param> /// <returns></returns> public bool SenhaRecuperar(Usuario usuario) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"Select senha from usuarios where id = @id"; _bd.Cmd.Parameters.AddWithValue("@id", usuario.Id); usuario.SenhaConfirma = _bd.ExecuteScalar().ToString(); } catch (Exception) { return false; } return true; }
/// <summary> /// Recupera os dados de usuario pela id no Banco de Dados, exceto senha! /// </summary> /// <param name="usuario">Obj usuario</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Recuperar(Usuario usuario) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"select u.login, u.pessoa_id, p.nome from usuarios u left join pessoas p on u.pessoa_id = p.id where u.id = @id"; _bd.Cmd.Parameters.AddWithValue("@id", usuario.Id); DataTable dado = _bd.ExecuteReader(); usuario.Login = dado.Rows[0]["login"].ToString(); usuario.Utilizador = new Pessoa(Convert.ToInt32(dado.Rows[0]["pessoa_id"].ToString()), dado.Rows[0]["nome"].ToString()); } catch { return false; } return true; }
/// <summary> /// Verifica um login em banco de dados /// </summary> /// <param name="usuario"></param> /// <returns></returns> public bool LoginCheck(Usuario usuario) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"Select id from usuarios where login = @login"; _bd.Cmd.Parameters.AddWithValue("@login", usuario.Login); usuario.Id = Convert.ToInt32(_bd.ExecuteScalar()); if (usuario.Id == 0) return false; return true;//retorna se encontrou } catch (Exception) { return false; } }
/// <summary> /// Insere um usuario no Banco de dados /// </summary> /// <param name="usuario">Obj usuario</param> /// <returns>verdadeiro em caso de sucesso</returns> public bool Inserir(Usuario usuario) { _bd = new Persistencia(); try { _bd.Cmd.CommandText = @"INSERT INTO `usuarios` (`login`, `senha`, `pessoa_id`) VALUES (@login, @senha, @pessoa_id);"; _bd.Cmd.Parameters.AddWithValue("@login", usuario.Login); _bd.Cmd.Parameters.AddWithValue("@senha", usuario.Senha); _bd.Cmd.Parameters.AddWithValue("@pessoa_id", usuario.Utilizador.Id); if (_bd.ExecuteNonQuery() <= 0)//login repetidos causam erros de UNIQUEKEY, zero linhas, ninguem foi inserido! return false; return true; } catch (Exception) { try//recupera id do login e informa que o mesmo nao pode ser re-utilizado { _bd.Cmd.CommandText = @"select id from usuarios where login = @login"; usuario.Id = Convert.ToInt32(_bd.ExecuteScalar());//recupera id return false;//se ja estiver ativa retorna falso! } catch (Exception) { return false;//erro de banco de dados! } } }