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); } }
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); } }
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(); } }
/// <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 }
/// <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 }
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); } }