Ejemplo n.º 1
0
    private void _ExcluirUsuario(Guid usu_id)
    {
        try
        {
            //Carrega os grupos do usuário
            SYS_UsuarioBO.GetGruposUsuario(usu_id, _VS_Grupos, _VS_EntidadeUA);

            //Remove o grupo do usuário
            SYS_UsuarioBO.RemoveTmpGrupo(_VS_gru_id, _VS_Grupos, _VS_EntidadeUA);

            //Recupera os dados do usuário
            SYS_Usuario usu = new SYS_Usuario {
                usu_id = usu_id
            };
            SYS_UsuarioBO.GetEntity(usu);

            usu.usu_senha = string.Empty;

            //Deleta o grupo do usuário
            if (SYS_UsuarioBO.Save(usu, _VS_Grupos, _VS_EntidadeUA, false, string.Empty, string.Empty, string.Empty, string.Empty, null))
            {
                ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Delete, "gru_id: " + _VS_gru_id + "; usu_id: " + usu_id.ToString());
                _lblMessage.Text = UtilBO.GetErroMessage(String.Format("Associação do usuário excluída com sucesso."), UtilBO.TipoMensagem.Sucesso);
            }

            //Carrega o grid de usuário
            _LoadGridUsuarios();
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar excluir a associação do usuário.", UtilBO.TipoMensagem.Erro);
        }
    }
Ejemplo n.º 2
0
    private void _AlterarUsuario(Guid usu_id, string usu_login)
    {
        try
        {
            _LimparDivUsuario();
            _VS_IsNew = false;

            //Carrega os grupos do usuário
            SYS_UsuarioBO.GetGruposUsuario(usu_id, _VS_Grupos, _VS_EntidadeUA);

            SYS_UsuarioBO.TmpGrupos grupo = _VS_Grupos[_VS_gru_id];
            _ckbGrupo_Bloqueado.Checked = (grupo.usg_situacao == 2) ? true : false;

            List <SYS_UsuarioBO.TmpEntidadeUA> lt = _VS_EntidadeUA[_VS_gru_id];
            foreach (SYS_UsuarioBO.TmpEntidadeUA ent in lt)
            {
                ListItem li = ent.Entidade ? new ListItem(ent.EntidadeOrUA, ent.ent_id.ToString()) : new ListItem(ent.EntidadeOrUA, String.Concat(ent.ent_id, ";", ent.uad_id));
                _lstUAs.Items.Add(li);
            }

            _txtUsu_id.Value = usu_id.ToString();
            _txtUsuario.Text = usu_login;

            _btnUsuario.Visible = false;
            _btnUA.Focus();

            ScriptManager.RegisterClientScriptBlock(this, GetType(), "AlterarUsuario", "$('#divUsuario').dialog('open');", true);
        }
        catch (Exception ex)
        {
            ApplicationWEB._GravaErro(ex);
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o grupo.", UtilBO.TipoMensagem.Erro);
        }
    }
Ejemplo n.º 3
0
    private void UCUA1BuscaUsuario(IDictionary <string, object> parameters)
    {
        try
        {
            _LimparDivUsuario();

            _txtUsu_id.Value = parameters["usu_id"].ToString();
            _VS_ent_id       = new Guid(parameters["ent_id"].ToString());
            _txtUsuario.Text = parameters["usu_login"].ToString();

            //Carrega os grupos do usuário
            SYS_UsuarioBO.GetGruposUsuario(new Guid(_txtUsu_id.Value), _VS_Grupos, _VS_EntidadeUA);

            if (_VS_EntidadeUA.ContainsKey(_VS_gru_id))
            {
                List <SYS_UsuarioBO.TmpEntidadeUA> lt = _VS_EntidadeUA[_VS_gru_id];
                foreach (SYS_UsuarioBO.TmpEntidadeUA ent in lt)
                {
                    ListItem li = ent.Entidade
                                      ? new ListItem(ent.EntidadeOrUA, ent.ent_id.ToString())
                                      : new ListItem(ent.EntidadeOrUA, String.Concat(ent.ent_id, ";", ent.uad_id));
                    _lstUAs.Items.Add(li);
                }
            }
        }
        catch (Exception ex)
        {
            _lblMessageUsuario.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o usuário.", UtilBO.TipoMensagem.Erro);
            ApplicationWEB._GravaErro(ex);
        }
        finally
        {
            _updUsuario.Update();
        }
    }
Ejemplo n.º 4
0
        /// <summary>
        /// Método utilizado via Web API para inclusão de novos grupos de usuário
        /// </summary>
        /// <param name="entityUsuarioAPI">Usuário da API usado para gravar log de ação</param>
        public static void AssociateUserGroup(Guid usu_id, AssociarUsuarioGrupoEntradaDTO data, CFG_UsuarioAPI entityUsuarioAPI)
        {
            #region [ Validação de campos obrigatórios ]

            if (data == null || data.usergroup == null || data.usergroup.Count(p => p.gru_id != Guid.Empty) == 0)
            {
                throw new ValidationException("Obrigatório no mínimo um Id de grupo do usuário.");
            }

            #endregion

            SYS_Usuario entity = SYS_UsuarioBO.GetEntity(new SYS_Usuario {
                usu_id = usu_id
            });
            entity.usu_senha         = string.Empty;
            entity.usu_dataAlteracao = DateTime.Now;

            if (!entity.IsNew)
            {
                // Validação de usuário padrão do sistema
                if (entity.usu_situacao == (byte)SYS_UsuarioBO.eSituacao.Padrao_Sistema)
                {
                    throw new ValidationException("Não é possível alterar dados do usuário padrão do sistema.");
                }

                SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>             grupos   = new SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>();
                SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> > grupoUas = new SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> >();
                SYS_UsuarioBO.GetGruposUsuario(entity.usu_id, grupos, grupoUas);

                foreach (UsuarioGrupoDTO grupo in data.usergroup)
                {
                    // Adiciona o grupo
                    if (grupo.gru_id != Guid.Empty)
                    {
                        SYS_UsuarioBO.AddTmpGrupo(grupo.gru_id, grupos, 1);

                        // Adiciona a unidade administrativa ao grupo, caso necessário
                        if (grupo.uad_id != Guid.Empty)
                        {
                            List <SYS_UsuarioBO.TmpEntidadeUA> ltEntidadeUA = grupoUas.ContainsKey(grupo.gru_id) ?
                                                                              grupoUas[grupo.gru_id] : new List <SYS_UsuarioBO.TmpEntidadeUA>();

                            SYS_UsuarioBO.AddTmpEntidadeUA(grupo.gru_id, entity.ent_id, grupo.uad_id, ltEntidadeUA);
                        }
                    }
                }

                SYS_UsuarioBO.Save(entity, grupos, grupoUas, false, string.Empty, string.Empty, string.Empty, string.Empty, null);
            }
            else
            {
                throw new ValidationException("Usuário não existe.");
            }

            #region [ Log de ação]

            LOG_UsuarioAPIBO.Save
            (
                new LOG_UsuarioAPI
            {
                usu_id = entity.usu_id
                ,
                uap_id = entityUsuarioAPI.uap_id
                ,
                lua_dataHora = DateTime.Now
                ,
                lua_acao = (byte)LOG_UsuarioAPIBO.eAcao.AssociacaoUsuarioGrupo
            }
            );

            #endregion
        }
Ejemplo n.º 5
0
        /// <summary>
        /// Método utilizado via Web API para alteração de Usuários
        /// </summary>
        /// <param name="data">Parametros de entrada: Id Entidade, Id Grupo, ID Usuario, Nome,
        /// CPF, Data de nascimento, E-mail, Senha</param>
        /// <param name="entityUsuarioAPI">Usuário da API usado para gravar log de ação</param>
        public static void Update(UsuarioEntradaDTO data, CFG_UsuarioAPI entityUsuarioAPI)
        {
            #region [ Validação de campos obrigatórios ]

            if (data.ent_id == Guid.Empty || string.IsNullOrWhiteSpace(data.usu_login))
            {
                throw new ValidationException("Id da entidade e login do usuário são obrigatórios.");
            }

            #endregion

            SYS_Usuario entity = new SYS_Usuario
            {
                ent_id = data.ent_id
                ,
                usu_login = data.usu_login
            };
            SYS_UsuarioBO.GetSelectBy_ent_id_usu_login(entity);

            PES_Pessoa entityPessoa = null;

            if (!entity.IsNew)
            {
                //Validação de usuário padrão do sistema
                if (entity.usu_situacao == (byte)SYS_UsuarioBO.eSituacao.Padrao_Sistema)
                {
                    throw new ValidationException("Não é possível alterar dados do usuário padrão do sistema.");
                }

                //Se o usuário recuperado não possuir pessoa, pula os passos de update de Pessoa
                if (entity.pes_id != Guid.Empty)
                {
                    #region [Pessoa]

                    entityPessoa = new PES_Pessoa {
                        pes_id = entity.pes_id
                    };
                    PES_PessoaBO.GetEntity(entityPessoa);

                    if (!string.IsNullOrWhiteSpace(data.nome) && entityPessoa.pes_nome.ToLower() != data.nome.ToLower())
                    {
                        entityPessoa.pes_nome = data.nome;
                    }

                    if (data.dataNascimento != new DateTime() && entityPessoa.pes_dataNascimento != data.dataNascimento)
                    {
                        entityPessoa.pes_dataNascimento = data.dataNascimento;
                    }

                    if (data.sexo == 1 || data.sexo == 2)
                    {
                        entityPessoa.pes_sexo = data.sexo;
                    }

                    entityPessoa.pes_dataAlteracao = DateTime.Now;

                    #region [Validações CPF]

                    Guid?tdo_id   = null;
                    bool criarCPF = false;

                    //Recupera os documentos da pessoa
                    DataTable documentosPessoa = PES_PessoaDocumentoBO.GetSelect(entityPessoa.pes_id, false, 1, 1);

                    //Se CPF existir, realiza validações
                    if (!string.IsNullOrWhiteSpace(data.CPF))
                    {
                        if (UtilBO._ValidaCPF(data.CPF))
                        {
                            //Recupera o tipo de documento CPF
                            string tipoDocCPF = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TIPO_DOCUMENTACAO_CPF);
                            if (!string.IsNullOrEmpty(tipoDocCPF))
                            {
                                tdo_id   = Guid.Parse(tipoDocCPF);
                                criarCPF = true;
                            }
                        }
                        else
                        {
                            throw new ValidationException("CPF inválido.");
                        }

                        if (documentosPessoa.Rows.Count > 0)
                        {
                            //Recupera o indice da linha que contém o documento do tipo CPF
                            var indiceRowCPF = documentosPessoa.AsEnumerable()
                                               .Select((row, index) => new { row, index })
                                               .Where(item => item.row.Field <Guid>("tdo_id") == tdo_id)
                                               .Select(item => item.index).ToArray();

                            //Se a pessoa possui um documento do tipo CPF, verifica se precisa alterar
                            if (indiceRowCPF.Count() > 0)
                            {
                                if (documentosPessoa.Rows[indiceRowCPF[0]]["numero"].ToString() != data.CPF)
                                {
                                    documentosPessoa.Rows[indiceRowCPF[0]]["numero"] = data.CPF;
                                }
                            }
                            else
                            {
                                //Pessoa ainda não possue CPF, nesse caso cria usando o datatable recuperado

                                DataRow rowDoc = documentosPessoa.NewRow();

                                rowDoc["tdo_id"]        = tdo_id;
                                rowDoc["unf_idEmissao"] = Guid.Empty.ToString();
                                rowDoc["unf_idAntigo"]  = Guid.Empty.ToString();
                                rowDoc["numero"]        = data.CPF;
                                rowDoc["dataemissao"]   = string.Empty;
                                rowDoc["orgaoemissao"]  = string.Empty;
                                rowDoc["info"]          = string.Empty;

                                documentosPessoa.Rows.Add(rowDoc);
                            }
                            criarCPF = false;
                        }

                        if (criarCPF)
                        {
                            if (tdo_id != null)
                            {
                                //Cria o datatable na estrutura necessária com o CPF enviado
                                documentosPessoa = RetornaDocumento(data.CPF);
                            }
                        }
                    }

                    #endregion

                    PES_PessoaDeficiencia entityPessoaDeficiencia = new PES_PessoaDeficiencia
                    {
                        pes_id = Guid.Empty,
                        tde_id = Guid.Empty,
                        IsNew  = true
                    };

                    PES_PessoaBO.Save(entityPessoa
                                      , entityPessoaDeficiencia
                                      , new DataTable()  //dtEndereco
                                      , new DataTable()  //dtContato
                                      , documentosPessoa //dtDocumento
                                      , new DataTable()  //dtCertidao
                                      , Guid.Empty       //pai_idAntigo
                                      , Guid.Empty       //cid_idAntigo
                                      , Guid.Empty       //pes_idPaiAntigo
                                      , Guid.Empty       //pes_idMaeAntigo
                                      , Guid.Empty       //tes_idAntigo
                                      , Guid.Empty       //tde_idAntigo
                                      , null             //arquivosPermitidos
                                      , 0                //tamanhoMaximoKB
                                      , null             //entFoto
                                      , false            //ExcluirImagemAtual
                                      );

                    #endregion
                }

                #region [Usuário]

                //entity.usu_login = data.usu_login;

                if (!string.IsNullOrWhiteSpace(data.email) && entity.usu_email != data.email)
                {
                    entity.usu_email = data.email;
                }

                //Se não vier senha, seta a senha da entidade como vazia para o método do sistema
                //não encriptar novamente o que já estava encriptado
                if (string.IsNullOrWhiteSpace(data.senha))
                {
                    entity.usu_senha = string.Empty;
                }
                else
                {
                    entity.usu_senha = data.senha;
                }

                if (entityPessoa != null)
                {
                    entity.pes_id = entityPessoa.pes_id;
                }

                entity.usu_criptografia  = Convert.ToByte(eCriptografa.TripleDES);
                entity.usu_dataAlteracao = DateTime.Now;

                SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>             grupos     = new SortedDictionary <Guid, SYS_UsuarioBO.TmpGrupos>();
                SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> > entidadeUA = new SortedDictionary <Guid, List <SYS_UsuarioBO.TmpEntidadeUA> >();

                //Se vier grupos cria a lista com base nesses grupos
                if (data.gru_id.Count() > 0)
                {
                    foreach (Guid gruId in data.gru_id)
                    {
                        SYS_UsuarioBO.AddTmpGrupo(gruId, grupos, 1);
                    }
                }
                else
                {
                    //Senão, recupera os grupos do usuário para enviar ao método salvar
                    SYS_UsuarioBO.GetGruposUsuario(entity.usu_id, grupos, entidadeUA);
                }

                SYS_UsuarioBO.Save(entity, grupos, entidadeUA, false, data.nome, string.Empty, string.Empty, string.Empty, null);

                #endregion
            }
            else
            {
                throw new ValidationException("Usuário não existe.");
            }

            #region [ Log de ação]

            LOG_UsuarioAPIBO.Save
            (
                new LOG_UsuarioAPI
            {
                usu_id = entity.usu_id
                ,
                uap_id = entityUsuarioAPI.uap_id
                ,
                lua_dataHora = DateTime.Now
                ,
                lua_acao = (byte)LOG_UsuarioAPIBO.eAcao.AlteracaoUsuario
            }
            );

            #endregion
        }
Ejemplo n.º 6
0
    private void _LoadUsuario(Guid usu_id)
    {
        SYS_Usuario usuario = new SYS_Usuario();

        try
        {
            _VS_usu_id     = usu_id;
            usuario.usu_id = _VS_usu_id;
            SYS_UsuarioBO.GetEntity(usuario);

            UCComboEntidadeUsuario._Combo.SelectedValue = usuario.ent_id.ToString();
            UCComboEntidadeUsuario._Combo.Enabled       = false;
            ddlUsuarioAD.SelectedValue = usuario.usu_integracaoAD.ToString();
            _txtCriptografia.Value     = usuario.usu_criptografia.ToString();
            _txtLogin.Text             = usuario.usu_login;
            _txtEmail.Text             = usuario.usu_email;

            if (!string.IsNullOrEmpty(usuario.usu_dominio))
            {
                bool encontrou = false;
                foreach (ListItem item in _ddlDominios.Items)
                {
                    if (item.Value == usuario.usu_dominio)
                    {
                        item.Selected = true;
                        encontrou     = true;
                    }
                }
                //Caso não encontre o domínio na lista de disponíveis...
                if (!encontrou)
                {
                    //Seta a opção outros.
                    _ddlDominios.SelectedIndex = _VS_OutrosDominios;
                    _TrataOutrosDominios();
                    _txtDominio.Text = usuario.usu_dominio;
                }
            }
            ConfiguraUsuarioAD();

            if (usuario.usu_situacao == 5)
            {
                _chkExpiraSenha.Checked = true;
            }
            else if (usuario.usu_situacao == 2)
            {
                _chkBloqueado.Checked = true;
            }
            _chkBloqueado.Visible = true;

            //Carrega os dados da pessoa
            _CarregarPessoa(usuario.pes_id);
            _btnPessoa.Enabled = false;

            //VERIFICA SE PARÂMETRO DE LOGIN COM PROVIDER EXTERNO ESTÁ HABILITADO(TRUE = MOSTRA O CAMPO / FALSE = NÃO MOSTRA O CAMPO)
            if (SYS_ParametroBO.ParametroValorBooleano(SYS_ParametroBO.eChave.PERMITIR_LOGIN_COM_PROVIDER_EXTERNO))
            {
                divContasExternas.Visible = true;

                //BUSCA O LOGIN PROVIDER DO USUARIO E CASO NÃO FOR NULO EXIBE NO TEXTBOX
                var logins = SYS_UsuarioLoginProviderBO.SelectBy_usu_id(usu_id);

                if (logins != null && logins.Count > 0)
                {
                    this.rptContasExternas.Visible   = true;
                    this.lblInfoContaExterna.Visible = false;

                    this.rptContasExternas.DataSource = logins;
                    this.rptContasExternas.DataBind();
                }
                else
                {
                    this.rptContasExternas.Visible   = false;
                    this.lblInfoContaExterna.Visible = true;
                    this.lblInfoContaExterna.Text    = UtilBO.GetErroMessage("Usuário não possui contas vinculadas.",
                                                                             UtilBO.TipoMensagem.Informacao);
                }
            }

            //Carrega os grupos do usuário
            SYS_UsuarioBO.GetGruposUsuario(_VS_usu_id, _VS_Grupos, _VS_EntidadeUA);

            _rfvSenha.Visible          = false;
            _rfvConfirmarSenha.Visible = false;

            ManageUserLive live = new ManageUserLive();
            VS_ExistsIntegracaoExterna = live.ExistsIntegracaoExterna();
            if (VS_ExistsIntegracaoExterna && !string.IsNullOrEmpty(usuario.usu_email))
            {
                _ckbUsuarioLive.Visible = integracaoAD != SYS_UsuarioBO.eIntegracaoAD.IntegradoAD;
                if (live.IsContaEmail(usuario.usu_email))
                {
                    _ckbUsuarioLive.Checked = true;
                    ConfiguraUsuarioLive();
                }
            }
            else
            {
                _ckbUsuarioLive.Visible = false;
                _ckbUsuarioLive.Checked = false;
            }

            _lblSenha.Text       = _VS_usu_id == Guid.Empty ? "Senha *" : "Senha";
            _lblConfirmacao.Text = _VS_usu_id == Guid.Empty ? "Confirmar senha *" : "Confirmar senha";


            if (usuario.usu_integracaoExterna > 0)
            {
                chkIntegracaoExterna.Checked = true;
                SYS_IntegracaoExternaTipoBO bo = new SYS_IntegracaoExternaTipoBO();
                ddlIntegracaoExternaTipo.DataSource = bo.getAll();
                ddlIntegracaoExternaTipo.DataBind();

                // Não exibe opções de senha
                divOpcoesSenha.Visible =

                    _rfvConfirmarSenha.IsValid             =
                        _rfvConfirmarSenha.SetFocusOnError =
                            _rfvConfirmarSenha.Enabled     =


                                _rfvSenha.IsValid             =
                                    _rfvSenha.SetFocusOnError =
                                        _rfvSenha.Enabled     =

                                            revSenha.IsValid             =
                                                revSenha.SetFocusOnError =
                                                    revSenha.Enabled     =

                                                        revSenhaTamanho.IsValid =

                                                            revSenhaTamanho.SetFocusOnError =
                                                                revSenhaTamanho.Enabled     =

                                                                    _cpvConfirmarSenha.IsValid             =
                                                                        _cpvConfirmarSenha.SetFocusOnError =
                                                                            _cpvConfirmarSenha.Enabled     = false;

                revSenhaTamanho.ValidationGroup    = "";
                _rfvConfirmarSenha.ValidationGroup = "";
                _rfvSenha.ValidationGroup          = "";
                _cpvConfirmarSenha.ValidationGroup = "";
                revSenha.ValidationGroup           = "";

                _btnPessoa.CausesValidation = false;


                ddlIntegracaoExternaTipo.Visible = true;
                SYS_IntegracaoExternaTipoBO ietBO = new SYS_IntegracaoExternaTipoBO();
                DataTable dt = ietBO.getAll();



                ddlIntegracaoExternaTipo.Items.Clear();
                ddlIntegracaoExternaTipo.Items.Insert(0, "-- Selecione uma Integração Externa --");
                foreach (DataRow iet in dt.Rows)
                {
                    ddlIntegracaoExternaTipo.Items.Insert(Convert.ToUInt16(iet["iet_id"].ToString()), iet["iet_descricao"].ToString());
                }

                ddlIntegracaoExternaTipo.SelectedIndex = usuario.usu_integracaoExterna;
            }
            else
            {
                chkIntegracaoExterna.Checked = false;
            }
        }
        catch
        {
            _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar carregar o usuário.", UtilBO.TipoMensagem.Erro);
        }
    }