Esempio n. 1
0
    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
        }
    }
Esempio n. 2
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);
        }
    }