protected void _btnSalvar_Click(object sender, EventArgs e) { bool validado = true; try { validado = ValidarIntegracaoAD(); ManageUserLive live = new ManageUserLive(); if (_ckbUsuarioLive.Checked) { if (!live.IsContaEmail(_txtEmail.Text)) { validado = false; _lblMessage.Text = UtilBO.GetErroMessage("E-mail inválido para integrar usuário live.", UtilBO.TipoMensagem.Alerta); } else { if (!live.VerificarContaEmailExistente(new UserLive { email = _txtEmail.Text })) { validado = false; _lblMessage.Text = UtilBO.GetErroMessage("E-mail não encontrado no live para realizar integração.", UtilBO.TipoMensagem.Alerta); } } } else { if (live.IsContaEmail(_txtEmail.Text)) { validado = false; _lblMessage.Text = UtilBO.GetErroMessage("Integrar usuário live é obrigatório, o email " + _txtEmail.Text + " contém o domínio para integração com live.", UtilBO.TipoMensagem.Alerta); } } if (integracaoAD == SYS_UsuarioBO.eIntegracaoAD.IntegradoADReplicacaoSenha && !string.IsNullOrEmpty(_txtSenha.Text)) { string regTamanhoSenha = SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.TAMANHO_SENHA_USUARIO); Regex regex = new Regex(regTamanhoSenha); if (!regex.IsMatch(_txtSenha.Text)) { string mensagemTamanho = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoComplexidadeSenhaTamanho); throw new CoreLibrary.Validation.Exceptions.ValidationException(string.IsNullOrEmpty(mensagemTamanho) ? String.Format("A senha deve conter {0}.", UtilBO.GetMessageTamanhoByRegex(regTamanhoSenha)) : mensagemTamanho); } regex = new Regex(SYS_ParametroBO.ParametroValor(SYS_ParametroBO.eChave.FORMATO_SENHA_USUARIO)); if (!regex.IsMatch(_txtSenha.Text)) { // Mensagem de validação do formato da senha. string mensagemFormato = SYS_MensagemSistemaBO.RetornaValor(SYS_MensagemSistemaChave.MeusDadosMensagemValidacaoComplexidadeSenhaFormato); throw new CoreLibrary.Validation.Exceptions.ValidationException(string.IsNullOrEmpty(mensagemFormato) ? "A senha deve conter pelo menos uma combinação de letras e números ou letras maiúsculas e minúsculas ou algum caracter especial (!, @, #, $, %, &) somados a letras e/ou números." : mensagemFormato); } } } catch (CoreLibrary.Validation.Exceptions.ValidationException err) { _lblMessage.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); validado = false; } catch (Exception ex) { ApplicationWEB._GravaErro(ex); _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o usuário.", UtilBO.TipoMensagem.Erro); validado = false; } if (validado) { if (chkIntegracaoExterna.Checked && ddlIntegracaoExternaTipo.SelectedIndex == 0) { _lblMessage.Text = UtilBO.GetErroMessage("Realizar Integração por WebService Externo é obrigatório.", UtilBO.TipoMensagem.Alerta); } else { if ((integracaoAD == SYS_UsuarioBO.eIntegracaoAD.IntegradoAD) && ((_ddlDominios.SelectedIndex == 0) || (_ddlDominios.SelectedIndex == _VS_OutrosDominios && string.IsNullOrEmpty(_txtDominio.Text)))) { _lblMessage.Text = UtilBO.GetErroMessage("Domínio é obrigatório.", UtilBO.TipoMensagem.Alerta); } else { try { SYS_Usuario entity = new SYS_Usuario { ent_id = new Guid(UCComboEntidadeUsuario._Combo.SelectedValue) , usu_id = _VS_usu_id , usu_login = _txtLogin.Text , usu_email = _txtEmail.Text , usu_senha = string.IsNullOrEmpty(_txtSenha.Text) ? string.Empty : _txtSenha.Text , pes_id = string.IsNullOrEmpty(_txtPes_id.Value) ? Guid.Empty : new Guid(_txtPes_id.Value) , usu_criptografia = !string.IsNullOrEmpty(_txtSenha.Text) || string.IsNullOrEmpty(_txtCriptografia.Value) ? Convert.ToByte(eCriptografa.SHA512) : Convert.ToByte(_txtCriptografia.Value) , usu_situacao = 1 , usu_dataAlteracao = DateTime.Now , usu_dataCriacao = DateTime.Now , usu_dominio = (_ddlDominios.SelectedIndex == _VS_OutrosDominios) ? _txtDominio.Text : _ddlDominios.SelectedValue , usu_integracaoAD = (byte)integracaoAD , IsNew = (_VS_usu_id != Guid.Empty) ? false : true , usu_integracaoExterna = Convert.ToInt16(ddlIntegracaoExternaTipo.SelectedIndex.ToString()) }; if (_chkExpiraSenha.Checked) { entity.usu_situacao = 5; } if (_chkBloqueado.Checked) { entity.usu_situacao = 2; } if (SYS_UsuarioBO.Save(entity, _VS_Grupos, _VS_EntidadeUA, _chkSenhaAutomatica.Checked, _txtPessoa.Text, __SessionWEB.TituloGeral, ApplicationWEB._EmailHost, ApplicationWEB._EmailSuporte, null, entity.usu_integracaoAD == (byte)SYS_UsuarioBO.eIntegracaoAD.IntegradoADReplicacaoSenha, ApplicationWEB.EmailRemetente)) { if (_VS_usu_id == Guid.Empty) { _VS_usu_id = entity.usu_id; ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Insert, "usu_id: " + _VS_usu_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Usuário incluído com sucesso."), UtilBO.TipoMensagem.Sucesso); } else { ApplicationWEB._GravaLogSistema(LOG_SistemaTipo.Update, "usu_id: " + _VS_usu_id); __SessionWEB.PostMessages = UtilBO.GetErroMessage(String.Format("Usuário alterado com sucesso."), UtilBO.TipoMensagem.Sucesso); } if (__SessionWEB.__UsuarioWEB.Usuario.usu_id == _VS_usu_id) { Response.Redirect(ApplicationWEB._DiretorioVirtual + ApplicationWEB._PaginaLogoff, false); } else { Response.Redirect(String.Concat(__SessionWEB._AreaAtual._Diretorio, "Usuario/Busca.aspx"), false); } } else { _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o usuário.", UtilBO.TipoMensagem.Erro); } } catch (CoreLibrary.Validation.Exceptions.ValidationException err) { _lblMessage.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); } catch (ArgumentException err) { _lblMessage.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); } catch (DuplicateNameException err) { _lblMessage.Text = UtilBO.GetErroMessage(err.Message, UtilBO.TipoMensagem.Alerta); } catch (Exception ex) { ApplicationWEB._GravaErro(ex); _lblMessage.Text = UtilBO.GetErroMessage("Erro ao tentar salvar o usuário.", UtilBO.TipoMensagem.Erro); } } }// valida integracao } }
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); } }