/// <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;
        }
示例#4
0
 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;
     }
 }
示例#5
0
 /// <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;
 }
示例#6
0
        /// <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;
        }
示例#7
0
 /// <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;
 }
示例#8
0
        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;
        }
示例#11
0
        /// <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;
        }
示例#12
0
        /// <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;
        }
示例#13
0
        /// <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;
        }
示例#14
0
 /// <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;
     }
 }
示例#15
0
        /// <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!
                }
            }
        }