Пример #1
0
        private void AssociarPermissaoAoObjeto(MensagemResponseBase lItem, string nomePermissao, bool associar)
        {
            //nomePermissao = lDados.Interface.Trim() + "Executar";
            PermissaoInfo lPermissao = this.ListaDePermissoes.Find(p => p.GetType().Name == nomePermissao);

            if ((lPermissao != null) &&
                ((lItem != null)) &&
                ((lItem is ReceberUsuarioGrupoResponse)))
            {
                PermissaoAssociadaInfo lPermAssoc = ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Find(p => p.CodigoPermissao == lPermissao.CodigoPermissao);
                if (lPermAssoc == null)
                {
                    if (associar)
                    {
                        ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Add(new PermissaoAssociadaInfo()
                        {
                            CodigoPermissao = lPermissao.CodigoPermissao,
                            Status          = PermissaoAssociadaStatusEnum.Permitido
                        });
                    }
                }
                else
                {
                    if (!associar)
                    {
                        ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Remove(lPermAssoc);
                    }
                }
            }
            else
            {
                PermissaoAssociadaInfo lPermAssoc = ((ReceberUsuarioGrupoResponse)lItem).UsuarioGrupo.Permissoes.Find(p => p.CodigoPermissao == lPermissao.CodigoPermissao);

                if (lPermAssoc == null)
                {
                    if (associar)
                    {
                        ((ReceberUsuarioResponse)lItem).Usuario.Permissoes.Add(new PermissaoAssociadaInfo()
                        {
                            CodigoPermissao = lPermissao.CodigoPermissao,
                            Status          = PermissaoAssociadaStatusEnum.Permitido
                        });
                    }
                }
                else
                {
                    if (!associar)
                    {
                        ((ReceberUsuarioResponse)lItem).Usuario.Permissoes.Remove(lPermAssoc);
                    }
                }
            }
        }
Пример #2
0
        public virtual void SalvarObjeto(PermissaoAssociadaInfo permissaoAssociada, string codigoItem)
        {
            // Monta a execução da procedure

            // Lista de parametros para a procedure
            Dictionary <string, object> paramsProc = new Dictionary <string, object>();

            paramsProc.Add("@CodigoItem", codigoItem);
            paramsProc.Add("@CodigoPermissao", permissaoAssociada.CodigoPermissao);
            paramsProc.Add("@Status", permissaoAssociada.Status);

            DbLib.ExecutarProcedure(
                NomeProcIns, paramsProc, new List <string>());
        }
Пример #3
0
        /// <summary>
        /// Método que busca no banco de dados informações de usuario vinculado com suas permissões
        /// </summary>
        /// <param name="pParametro">Parametro de request com o Código de usuário do para
        /// buscar suas permissões no banco de dados de controle de acesso</param>
        /// <returns>Retorna o objeto preechido com Código de usuário e a lista de permissões</returns>
        public ReceberUsuarioResponse ListarIntranetPermissoesUsuario(UsuarioPermissaoInfo pParametro)
        {
            var lRetorno = new ReceberUsuarioResponse();

            try
            {
                var lAcessaDados = new AcessaDados();

                lAcessaDados.ConnectionStringName = gNomeConexaoControleAcesso;

                lRetorno.Usuario = new UsuarioInfo();

                lRetorno.Usuario.CodigoUsuario = pParametro.CodigoUsuario.ToString();

                lRetorno.Usuario.Permissoes = new List <PermissaoAssociadaInfo>();

                using (DbCommand lDbCommand = lAcessaDados.CreateCommand(CommandType.StoredProcedure, "prc_PermissoesPorUsuario_Intranet_sel"))
                {
                    lAcessaDados.AddInParameter(lDbCommand, "@CodigoUsuario", DbType.Int32, pParametro.CodigoUsuario);

                    DataTable lTable = lAcessaDados.ExecuteDbDataTable(lDbCommand);

                    if (lTable != null && lTable.Rows.Count > 0)
                    {
                        for (int i = 0; i < lTable.Rows.Count; i++)
                        {
                            DataRow lRow = lTable.Rows[i];

                            var lPermissao = new PermissaoAssociadaInfo();

                            lPermissao.CodigoPermissao = lRow["CodigoPermissao"].DBToString();

                            lRetorno.Usuario.Permissoes.Add(lPermissao);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw (ex);
            }

            return(lRetorno);
        }
Пример #4
0
        public string ResponderSalvar()
        {
            string lRetorno     = string.Empty;
            string lObjetoJson  = Request.Params["ObjetoJson"];
            string TipoDeObjeto = Request["TipoDeObjetoPai"];

            MensagemRequestBase  lRequest;
            MensagemResponseBase lResponse;

            bool lTinhaGTI   = false;
            bool lTinhaStock = false;

            try
            {
                TransporteSegurancaPermissao lDados = JsonConvert.DeserializeObject <TransporteSegurancaPermissao>(lObjetoJson);

                switch (TipoDeObjeto)
                {
                case "Usuario":
                    lRequest = new ReceberUsuarioRequest()
                    {
                        CodigoSessao  = this.CodigoSessao,
                        CodigoUsuario = lDados.ParentId
                    };
                    lResponse = this.ServicoSeguranca.ReceberUsuario((ReceberUsuarioRequest)lRequest);
                    break;

                case "Grupo":
                    lRequest = new ReceberUsuarioGrupoRequest()
                    {
                        CodigoSessao       = this.CodigoSessao,
                        CodigoUsuarioGrupo = lDados.ParentId
                    };
                    lResponse = this.ServicoSeguranca.ReceberUsuarioGrupo((ReceberUsuarioGrupoRequest)lRequest);
                    break;

                case "Perfil":
                    lRequest = new ReceberPerfilRequest()
                    {
                        CodigoSessao = this.CodigoSessao,
                        CodigoPerfil = lDados.ParentId
                    };
                    lResponse = this.ServicoSeguranca.ReceberPerfil((ReceberPerfilRequest)lRequest);
                    break;

                default:
                    return(RetornarErroAjax("Só é possível salvar permissões para grupos, usuários e perfis."));
                }

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    MensagemRequestBase  lRequestBase;
                    MensagemResponseBase lResponseBase = new MensagemResponseBase();

                    if (lResponse is ReceberUsuarioResponse)
                    {
                        PermissaoAssociadaInfo lPermissao;
                        UsuarioInfo            lUsuario = ((ReceberUsuarioResponse)lResponse).Usuario;

                        //precisa verificar todas que tinha antes pra não re-enviar o email quando uma outra permissão que não a do GTI ou Stock forem adicionadas
                        foreach (Gradual.OMS.Seguranca.Lib.PermissaoAssociadaInfo lPerm in lUsuario.Permissoes)
                        {
                            if (lPerm.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_GTI.ToUpper())
                            {
                                lTinhaGTI = true;
                            }

                            if (lPerm.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_Stock.ToUpper())
                            {
                                lTinhaStock = true;
                            }
                        }

                        lUsuario.Permissoes.Clear();

                        var lCount = default(int);

                        do
                        {
                            lPermissao = new PermissaoAssociadaInfo()
                            {
                                CodigoPermissao = lDados.Permissoes.Count > 0 ? lDados.Permissoes[lCount] : string.Empty,
                                Status          = PermissaoAssociadaStatusEnum.Permitido
                            };

                            lUsuario.Permissoes.Add(lPermissao);

                            lRequestBase = new SalvarUsuarioRequest()
                            {
                                CodigoSessao = this.CodigoSessao,
                                Usuario      = lUsuario
                            };

                            lResponseBase = ServicoSeguranca.SalvarUsuario((SalvarUsuarioRequest)lRequestBase);

                            if (lResponseBase.StatusResposta == MensagemResponseStatusEnum.OK)
                            {
                                base.RegistrarLogInclusao(new LogIntranetInfo()
                                {
                                    CdBovespaClienteAfetado = lUsuario.CodigoUsuario.DBToInt32(),

                                    DsObservacao = string.Format("Cód. Usuário logado: {0}; Nome do cliente: {1}; e-Mail:", base.UsuarioLogado.Id, lUsuario.Nome, lUsuario.Email),
                                });

                                if (TipoDeObjeto == "Usuario")
                                {
                                    if (!lTinhaGTI && lPermissao.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_GTI.ToUpper())
                                    {
                                        EnviarEmailDePermissaoGTI(lUsuario.CodigoUsuario.DBToInt32(), "Gradual Trader Interface (GTI)");
                                    }

                                    if (!lTinhaStock && lPermissao.CodigoPermissao.ToUpper() == ConfiguracoesValidadas.PermissaoDeAcesso_Stock.ToUpper())
                                    {
                                        EnviarEmailDePermissaoGTI(lUsuario.CodigoUsuario.DBToInt32(), "Stock Market");
                                    }
                                }
                            }

                            lCount++;
                        } while (lDados.Permissoes.Count > lCount);
                    }
                    else if (lResponse is ReceberUsuarioGrupoResponse)
                    {
                        PermissaoAssociadaInfo lPermissao;
                        UsuarioGrupoInfo       lUsuarioGrupo = ((ReceberUsuarioGrupoResponse)lResponse).UsuarioGrupo;
                        foreach (string itemPermissao in lDados.Permissoes)
                        {
                            lPermissao = new PermissaoAssociadaInfo()
                            {
                                CodigoPermissao = itemPermissao,
                                Status          = PermissaoAssociadaStatusEnum.Permitido
                            };
                            lUsuarioGrupo.Permissoes.Add(lPermissao);

                            lRequestBase = new SalvarUsuarioGrupoRequest()
                            {
                                CodigoSessao = this.CodigoSessao,
                                UsuarioGrupo = lUsuarioGrupo
                            };
                            lResponseBase = ServicoSeguranca.SalvarUsuarioGrupo((SalvarUsuarioGrupoRequest)lRequestBase);
                        }
                    }
                    else
                    {
                        PermissaoAssociadaInfo lPermissao;
                        PerfilInfo             lPerfil = ((ReceberPerfilResponse)lResponse).Perfil;
                        lPerfil.Permissoes.Clear();

                        foreach (string itemPermissao in lDados.Permissoes)
                        {
                            lPermissao = new PermissaoAssociadaInfo()
                            {
                                CodigoPermissao = itemPermissao,
                                Status          = PermissaoAssociadaStatusEnum.Permitido
                            };
                            lPerfil.Permissoes.Add(lPermissao);

                            lRequestBase = new SalvarPerfilRequest()
                            {
                                CodigoSessao = this.CodigoSessao,
                                Perfil       = lPerfil
                            };
                            lResponseBase = ServicoSeguranca.SalvarPerfil((SalvarPerfilRequest)lRequestBase);
                        }
                    }

                    if (lResponseBase.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        return(RetornarSucessoAjax("Permissão associada com sucesso."));
                    }
                    else
                    {
                        return(RetornarErroAjax(lResponseBase.DescricaoResposta));
                    }
                }
                else
                {
                    return(RetornarErroAjax(lResponse.DescricaoResposta));
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax(ex.Message));
            }
        }