예제 #1
0
        public BuscarPermissoesDoUsuarioResponse BuscarPermissoesDoUsuario(BuscarPermissoesDoUsuarioRequest pRequest)
        {
            BuscarPermissoesDoUsuarioResponse lReturn = new BuscarPermissoesDoUsuarioResponse();

            ServicoHostColecao.Default.CarregarConfig("Desenvolvimento");

            IServicoSeguranca lServico = Ativador.Get <IServicoSeguranca>();

            ReceberUsuarioRequest  lRequest = new ReceberUsuarioRequest();
            ReceberUsuarioResponse lResponse;

            try
            {
                lRequest.CodigoUsuario = pRequest.CodigoDoUsuario;
                lRequest.CodigoSessao  = pRequest.CodigoDaSessao;

                Logger.InfoFormat("BuscarPermissoesDoUsuario(CodigoSessao [{0}], IdLogin [{1}])", lRequest.CodigoSessao, lRequest.CodigoUsuario);

                lResponse = lServico.ReceberUsuario(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    if (lResponse.Usuario != null)
                    {
                        Logger.InfoFormat("Retorno OK do serviço: [{0}] permissões para [{1}])", lResponse.Usuario.Permissoes.Count, lRequest.CodigoUsuario);

                        lReturn.StatusResposta = "OK";

                        lReturn.Permissoes = lResponse.Usuario.Permissoes;
                    }
                    else
                    {
                        throw new Exception("Serviço não identificou o usuário nessa sessão");
                    }
                }
                else
                {
                    Logger.ErrorFormat("Retorno com erro do ServicoSeguranca em BuscarPermissoesDoUsuario(CodigoSessao [{0}], IdLogin [{1}]) [{2}] \r\n{3}"
                                       , lRequest.CodigoSessao
                                       , lRequest.CodigoUsuario
                                       , lResponse.StatusResposta
                                       , lResponse.DescricaoResposta);

                    lReturn.StatusResposta = "Erro Serviço";

                    lReturn.DescricaoResposta = lResponse.DescricaoResposta;
                }
            }
            catch (Exception ex)
            {
                string lMensagem = string.Format("Exception em BuscarPermissoesDoUsuario: [{0}] \r\n{1}", ex.Message, ex.StackTrace);

                Logger.ErrorFormat(lMensagem);

                lReturn.StatusResposta    = "Exception";
                lReturn.DescricaoResposta = lMensagem;
            }

            return(lReturn);
        }
예제 #2
0
        public string ResponderCarregarHtmlComDados()
        {
            string Id = Request["Id"];

            this.lblSeguranca_DadosCompletos_Usuario_Senha.Visible = false;

            TransporteSegurancaUsuario lDadosUsuario;
            ReceberUsuarioRequest      lRequest = new ReceberUsuarioRequest()
            {
                CodigoSessao  = this.CodigoSessao,
                CodigoUsuario = Id
            };

            ReceberUsuarioResponse lResponse = this.ServicoSeguranca.ReceberUsuario(lRequest);

            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                lDadosUsuario = new TransporteSegurancaUsuario(lResponse.Usuario);

                hidDadosCompletos_Seguranca_Usuario.Value = JsonConvert.SerializeObject(lDadosUsuario);
            }
            else
            {
                return(RetornarErroAjax(lResponse.DescricaoResposta));
            }

            return(string.Empty);
        }
예제 #3
0
        public string ResponderExcluir()
        {
            string lIdItem       = Request["Id"];
            string lItemPaiID    = lIdItem.Split('|')[0];
            string lUsuarioID    = lIdItem.Split('|')[1];
            string lTipoDeObjeto = lIdItem.Split('|')[2];

            ReceberUsuarioRequest lRequest = new ReceberUsuarioRequest()
            {
                CodigoSessao  = this.CodigoSessao,
                CodigoUsuario = lUsuarioID
            };

            try
            {
                ReceberUsuarioResponse lResponse = ServicoSeguranca.ReceberUsuario(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    UsuarioInfo lUsuario = lResponse.Usuario;

                    if (lTipoDeObjeto == "Perfil")
                    {
                        lUsuario.Perfis.Remove(lItemPaiID);
                    }
                    else if (lTipoDeObjeto == "Grupo")
                    {
                        lUsuario.Grupos.Remove(lItemPaiID);
                    }

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

                    SalvarUsuarioResponse lSalvarUsuarioRes = ServicoSeguranca.SalvarUsuario(lSalvarUsuarioReq);

                    if (lSalvarUsuarioRes.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        base.RegistrarLogExclusao(string.Concat("Excluido usuário: ", lResponse.Usuario.Email));
                        return(RetornarSucessoAjax("Usuario excluido com sucesso."));
                    }
                    else
                    {
                        return(RetornarErroAjax("Erro: " + lSalvarUsuarioRes.DescricaoResposta));
                    }
                }
                else
                {
                    return(RetornarErroAjax("Erro:" + lResponse.DescricaoResposta));
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax("Erro:" + ex.Message));
            }
        }
예제 #4
0
        public string ResponderSalvar()
        {
            string lObjetoJson                  = Request["ObjetoJson"];
            string lTipoDeObjetoPai             = Request["TipoDeObjetoPai"];
            TransporteSegurancaItemFilho lDados = null;

            ReceberUsuarioRequest lRequest = new ReceberUsuarioRequest()
            {
                CodigoSessao = this.CodigoSessao
            };

            ReceberUsuarioResponse lResponse = null;

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

                lRequest.CodigoUsuario = lDados.Item;

                lResponse = this.ServicoSeguranca.ReceberUsuario(lRequest);


                UsuarioInfo lUsuario = lResponse.Usuario;

                if (lTipoDeObjetoPai == "Grupo")
                {
                    lUsuario.Grupos.Add(lDados.ParentId);
                }
                else if (lTipoDeObjetoPai == "Perfil")
                {
                    lUsuario.Perfis.Add(lDados.ParentId);
                }

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

                SalvarUsuarioResponse lSalvarUsuarioRes = ServicoSeguranca.SalvarUsuario(lSalvarUsuarioReq);

                if (lSalvarUsuarioRes.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    base.RegistrarLogInclusao(string.Concat("Incluído usuário: ", lResponse.Usuario.Email));
                    return(RetornarSucessoAjax(new TransporteRetornoDeCadastro(lDados.ParentId + "|" + lDados.Item + "|" + lTipoDeObjetoPai), "Usuario associado com sucesso."));
                }
                else
                {
                    return(RetornarErroAjax(lResponse.DescricaoResposta));
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax(ex.Message));
            }
        }
예제 #5
0
        public string ResponderCarregarHtmlComDados()
        {
            ReceberUsuarioRequest  lRequest;
            ReceberUsuarioResponse lResponse;

            lRequest = new ReceberUsuarioRequest()
            {
                CodigoUsuario = Request["Id"],
                CodigoSessao  = this.CodigoSessao
            };

            lResponse = this.ServicoSeguranca.ReceberUsuario(lRequest);

            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                ListarUsuarioGruposRequest lRequestGrupos = new ListarUsuarioGruposRequest()
                {
                    CodigoSessao = this.CodigoSessao
                };

                ListarUsuarioGruposResponse lResponseGrupos = this.ServicoSeguranca.ListarUsuarioGrupos(lRequestGrupos);

                List <TransporteSegurancaItemFilho> lLista = new List <TransporteSegurancaItemFilho>();

                foreach (string lGrupo in lResponse.Usuario.Grupos)
                {
                    TransporteSegurancaItemFilho lTransporte = new TransporteSegurancaItemFilho()
                    {
                        Id         = lResponse.Usuario.CodigoUsuario + "|" + lGrupo,
                        Item       = lGrupo,
                        ItemDesc   = lResponseGrupos.UsuarioGrupos.Find(delegate(UsuarioGrupoInfo p) { return(p.CodigoUsuarioGrupo == lGrupo); }).NomeUsuarioGrupo,
                        ParentId   = lResponse.Usuario.CodigoUsuario,
                        TipoDeItem = "Grupos"
                    };

                    lLista.Add(lTransporte);
                }

                hidSeguranca_Grupos_ListaJson.Value = JsonConvert.SerializeObject(lLista);
            }
            else
            {
                RetornarErroAjax("Erro ao consultar os Grupos do usuario", lResponse.DescricaoResposta);
            }

            return(string.Empty);    //só para obedecer assinatura
        }
예제 #6
0
        public string ResponderSalvar()
        {
            string lRetorno    = string.Empty;
            string lObjetoJson = Request["ObjetoJson"];

            TransporteSegurancaItemFilho lDados = null;

            ReceberUsuarioRequest lRequestUsuario = new ReceberUsuarioRequest()
            {
                CodigoSessao = this.CodigoSessao
            };

            ReceberUsuarioResponse lResponseUsuario = null;

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

                lRequestUsuario.CodigoUsuario = lDados.ParentId;

                lResponseUsuario = this.ServicoSeguranca.ReceberUsuario(lRequestUsuario) as ReceberUsuarioResponse;

                UsuarioInfo lUsuario = lResponseUsuario.Usuario;

                lUsuario.Grupos.Add(lDados.Item);

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

                SalvarUsuarioResponse lResponse = this.ServicoSeguranca.SalvarUsuario(lRequest) as SalvarUsuarioResponse;

                lRetorno = base.RetornarSucessoAjax(new TransporteRetornoDeCadastro(lDados.ParentId + lDados.Item), "Dados alterados com sucesso");

                base.RegistrarLogInclusao(string.Concat("Inclusão do grupo: ", lDados.Item));
            }
            catch (Exception ex)
            {
                lRetorno = RetornarErroAjax(ex.Message);
            }

            return(lRetorno);
        }
예제 #7
0
        public string ResponderExcluir()
        {
            string lIdItem = Request["Id"];

            try
            {
                string lCodigoUsuario = lIdItem.Split('|')[0];
                string lCodigoGrupo   = lIdItem.Split('|')[1];

                ReceberUsuarioRequest lRequest = new ReceberUsuarioRequest()
                {
                    CodigoSessao  = this.CodigoSessao,
                    CodigoUsuario = lCodigoUsuario
                };

                ReceberUsuarioResponse lResponse = ServicoSeguranca.ReceberUsuario(lRequest);

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    lResponse.Usuario.Grupos.Remove(lCodigoGrupo);

                    MensagemResponseBase lREsponseAUx = ServicoSeguranca.SalvarUsuario(new SalvarUsuarioRequest()
                    {
                        CodigoSessao = this.CodigoSessao,
                        Usuario      = lResponse.Usuario
                    });

                    if (lREsponseAUx.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        base.RegistrarLogExclusao();
                        return(RetornarSucessoAjax("Grupo removido com sucesso."));
                    }
                    else
                    {
                        return(RetornarErroAjax(lREsponseAUx.DescricaoResposta));
                    }
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax(ex.Message));
            }
            return(string.Empty);
        }
예제 #8
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));
            }
        }
예제 #9
0
        public string ResponderCarregarHtmlComDados()
        {
            string Id           = Request["Id"];
            string TipoDeObjeto = Request["TipoDeObjeto"];

            MensagemRequestBase  lRequest;
            MensagemResponseBase lResponse;

            switch (TipoDeObjeto)
            {
            case "Usuario":
                lRequest = new ReceberUsuarioRequest()
                {
                    CodigoSessao  = this.CodigoSessao,
                    CodigoUsuario = Id
                };

                var lRequestUsuario = new UsuarioPermissaoInfo();

                lRequestUsuario.CodigoUsuario = Convert.ToInt32(Id);

                lResponse = new UsuarioPermissoesDbLib().ListarIntranetPermissoesUsuario(lRequestUsuario);

                break;

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

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

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



            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                TransporteSegurancaPermissao lLista = new TransporteSegurancaPermissao();
                if (lResponse is ReceberUsuarioResponse)
                {
                    UsuarioInfo lUsuario = ((ReceberUsuarioResponse)lResponse).Usuario;
                    lLista = ReceberLista(lUsuario.Permissoes, Id, TipoDeObjeto);
                }
                else if (lResponse is ReceberUsuarioGrupoResponse)
                {
                    UsuarioGrupoInfo lUsuarioGrupo = ((ReceberUsuarioGrupoResponse)lResponse).UsuarioGrupo;
                    lLista = ReceberLista(lUsuarioGrupo.Permissoes, Id, TipoDeObjeto);
                }
                else
                {
                    PerfilInfo lPerfil = ((ReceberPerfilResponse)lResponse).Perfil;
                    lLista = ReceberLista(lPerfil.Permissoes, Id, TipoDeObjeto);
                }

                this.hidSeguranca_Permissoes_ListaJson.Value = JsonConvert.SerializeObject(lLista.Permissoes.ToArray());
            }
            else
            {
                return(RetornarErroAjax(lResponse.DescricaoResposta));
            }

            return(string.Empty);
        }
예제 #10
0
        /// <summary>
        /// Retorna o detalhe de um usuário
        /// </summary>
        /// <param name="parametros"></param>
        /// <returns></returns>
        public ReceberUsuarioResponse ReceberUsuario(ReceberUsuarioRequest parametros)
        {
            logger.Debug("ReceberUsuario, inicio");

            // Faz a solicitação para a persistencia
            ReceberUsuarioResponse resposta =
                new ReceberUsuarioResponse()
            {
                CodigoMensagemRequest = parametros.CodigoMensagem
            };

            // Faz a consulta pelo código ou pelo email
            if (parametros.CodigoUsuario != null)
            {
                logger.Debug("Consulta por código do usuário");

                // Consulta por código do usuário
                resposta.Usuario =
                    _servicoPersistencia.ReceberObjeto <UsuarioInfo>(
                        new ReceberObjetoRequest <UsuarioInfo>()
                {
                    CodigoObjeto = parametros.CodigoUsuario
                }).Objeto;
            }
            else
            {
                logger.Debug("// Consulta por email");
                // Consulta por email
                ConsultarObjetosResponse <UsuarioInfo> respostaConsultar =
                    _servicoPersistencia.ConsultarObjetos <UsuarioInfo>(
                        new ConsultarObjetosRequest <UsuarioInfo>()
                {
                    CodigoSessao = parametros.CodigoSessao,

                    Condicoes =
                        new List <CondicaoInfo>()
                    {
                        new CondicaoInfo(IsNumeric(parametros.Email.Trim()) ? "CodCblc" : "Email", CondicaoTipoEnum.Igual, parametros.Email)
                    }
                });

                // Verifica se encontrou
                if (respostaConsultar.Resultado != null)
                {
                    logger.Debug("respostaConsultar.Resultado.Count = " + respostaConsultar.Resultado.Count);
                    if (respostaConsultar.Resultado.Count > 0)
                    {
                        resposta.Usuario = respostaConsultar.Resultado[0];
                    }
                }
            }

            // Completa permissões
            if (resposta.Usuario != null && resposta.Usuario.Permissoes != null)
            {
                foreach (PermissaoAssociadaInfo permissaoAssociada in resposta.Usuario.Permissoes)
                {
                    logger.Debug("PermissaoAssociadaInfo: " + permissaoAssociada.CodigoPermissao + "|" + permissaoAssociada.Status.ToString());
                }
            }

            logger.Debug("parametros.PreencherColecoesCompletas:" + parametros.PreencherColecoesCompletas);

            // Se pediu para preencher completo, verifica se está preenchido
            if (parametros.PreencherColecoesCompletas)
            {
                // Preencheu grupos?
                if (resposta.Usuario.Grupos2 == null)
                {
                    logger.Debug("nao preeencheu grupos 2");

                    // Cria a coleção
                    resposta.Usuario.Grupos2 = new List <UsuarioGrupoInfo>();

                    logger.Debug("resposta.Usuario.Grupos" + resposta.Usuario.Grupos.Count + " itens");

                    // Varre os grupos informados pedindo o detalhe do grupo
                    foreach (string codigoGrupo in resposta.Usuario.Grupos)
                    {
                        logger.Debug("Codigo Grupo " + codigoGrupo);

                        resposta.Usuario.Grupos2.Add(
                            this.ReceberUsuarioGrupo(
                                new ReceberUsuarioGrupoRequest()
                        {
                            CodigoUsuarioGrupo         = codigoGrupo,
                            PreencherColecoesCompletas = true
                        }).UsuarioGrupo);
                    }
                }

                // Preencheu perfis?
                if (resposta.Usuario.Perfis2 == null)
                {
                    // Cria a coleção
                    resposta.Usuario.Perfis2 = new List <PerfilInfo>();

                    logger.Debug("resposta.Usuario.Perfis" + resposta.Usuario.Perfis.Count + " itens");

                    // Varre os grupos informados pedindo o detalhe do perfil
                    foreach (string codigoPerfil in resposta.Usuario.Perfis)
                    {
                        logger.Debug("Codigo Perfil " + codigoPerfil);

                        resposta.Usuario.Perfis2.Add(
                            this.ReceberPerfil(
                                new ReceberPerfilRequest()
                        {
                            CodigoPerfil = codigoPerfil,
                            PreencherColecoesCompletas = true
                        }).Perfil);
                    }
                }

                logger.Debug("resposta.Usuario.Permissoes" + resposta.Usuario.Permissoes.Count + " itens");

                // Completa permissões
                foreach (PermissaoAssociadaInfo permissaoAssociada in resposta.Usuario.Permissoes)
                {
                    logger.Debug("PermissaoAssociadaInfo: " + permissaoAssociada.CodigoPermissao + "|" + permissaoAssociada.Status.ToString());


                    permissaoAssociada.PermissaoInfo =
                        _permissoes.ListaPorCodigo[permissaoAssociada.CodigoPermissao];
                }
            }

            // Retorna o usuario solicitado
            return(resposta);
        }
예제 #11
0
        public string Salvar()
        {
            string lObjetoJson = Request.Params["ObjetoJson"];

            try
            {
                TransporteSegurancaDadosAssociados lDados = JsonConvert.DeserializeObject <TransporteSegurancaDadosAssociados>(lObjetoJson);
                MensagemRequestBase  lRequestItem;
                MensagemRequestBase  lRequestSalvarItem;
                MensagemResponseBase lResponseItem, lResponseSalvar;
                UsuarioGrupoInfo     lUsuarioGrupo = null;
                UsuarioInfo          lUsuario      = null;

                if (lDados.EhGrupo)
                {
                    lRequestItem       = new ReceberUsuarioGrupoRequest();
                    lRequestSalvarItem = new SalvarUsuarioGrupoRequest();
                    lRequestSalvarItem.CodigoSessao = this.CodigoSessao;
                    lRequestItem.CodigoSessao       = this.CodigoSessao;

                    ((ReceberUsuarioGrupoRequest)lRequestItem).CodigoUsuarioGrupo = lDados.Grupo;
                    lResponseItem = ServicoSeguranca.ReceberUsuarioGrupo((ReceberUsuarioGrupoRequest)lRequestItem);
                }
                else if (lDados.EhUsuario)
                {
                    lRequestItem       = new ReceberUsuarioRequest();
                    lRequestSalvarItem = new SalvarUsuarioRequest();
                    lRequestSalvarItem.CodigoSessao = this.CodigoSessao;
                    lRequestItem.CodigoSessao       = this.CodigoSessao;

                    ((ReceberUsuarioRequest)lRequestItem).CodigoUsuario = lDados.Usuario;
                    lResponseItem = ServicoSeguranca.ReceberUsuario((ReceberUsuarioRequest)lRequestItem);
                }
                else
                {
                    return(RetornarErroAjax("Selecione um grupo ou usuário para associar as permissões"));
                }



                if (lResponseItem.StatusResposta != MensagemResponseStatusEnum.OK)
                {
                    return(RetornarErroAjax(lResponseItem.DescricaoResposta));
                }

                if (lResponseItem is ReceberUsuarioGrupoResponse)
                {
                    lUsuarioGrupo = ((ReceberUsuarioGrupoResponse)lResponseItem).UsuarioGrupo;
                }
                else
                {
                    lUsuario = ((ReceberUsuarioResponse)lResponseItem).Usuario;
                }

                string nomePermissao = string.Empty;

                nomePermissao = lDados.Interface.Trim() + "Consultar";
                this.AssociarPermissaoAoObjeto(lResponseItem, nomePermissao, lDados.Consultar);

                nomePermissao = lDados.Interface.Trim() + "Salvar";
                this.AssociarPermissaoAoObjeto(lResponseItem, nomePermissao, lDados.Salvar);

                nomePermissao = lDados.Interface.Trim() + "Excluir";
                this.AssociarPermissaoAoObjeto(lResponseItem, nomePermissao, lDados.Excluir);

                nomePermissao = lDados.Interface.Trim() + "Executar";
                this.AssociarPermissaoAoObjeto(lResponseItem, nomePermissao, lDados.Executar);

                if (lDados.EhGrupo)
                {
                    ((SalvarUsuarioGrupoRequest)lRequestSalvarItem).UsuarioGrupo = lUsuarioGrupo;
                    lResponseSalvar = ServicoSeguranca.SalvarUsuarioGrupo((SalvarUsuarioGrupoRequest)lRequestSalvarItem);
                }
                else
                {
                    ((SalvarUsuarioRequest)lRequestSalvarItem).Usuario = lUsuario;
                    lResponseSalvar = ServicoSeguranca.SalvarUsuario((SalvarUsuarioRequest)lRequestSalvarItem);
                }

                if (lResponseSalvar.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    base.RegistrarLogInclusao();
                    return(RetornarSucessoAjax("Itens Associados com sucesso"));
                }
                else
                {
                    return(RetornarErroAjax(lResponseSalvar.DescricaoResposta));
                }
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex);
                return(RetornarErroAjax(ex.Message, ex));
            }
        }
예제 #12
0
        public string ReceberPermissoes()
        {
            string lObjetoJson = Request.Params["ObjetoJson"];

            try
            {
                TransporteSegurancaDadosAssociados lDados = JsonConvert.DeserializeObject <TransporteSegurancaDadosAssociados>(lObjetoJson);
                lDados.Consultar            =
                    lDados.Excluir          =
                        lDados.Salvar       =
                            lDados.Executar = false;
                if (lDados.EhGrupo)
                {
                    ReceberUsuarioGrupoRequest lReuqest = new ReceberUsuarioGrupoRequest()
                    {
                        CodigoSessao           = this.CodigoSessao,
                        CodigoUsuarioGrupo     = lDados.Grupo,
                        DescricaoUsuarioLogado = base.UsuarioLogado.Nome,
                        IdUsuarioLogado        = base.UsuarioLogado.Id
                    };

                    ReceberUsuarioGrupoResponse lRes = ServicoSeguranca.ReceberUsuarioGrupo(lReuqest);

                    List <PermissaoInfo> permissoes = ListaDePermissoes.Where(p => p.GetType().Name.Contains(lDados.Interface)).ToList();

                    foreach (PermissaoAssociadaInfo lPI in lRes.UsuarioGrupo.Permissoes)
                    {
                        PermissaoInfo lPermissao = permissoes.Find(p => p.CodigoPermissao == lPI.CodigoPermissao);
                        if (lPermissao != null)
                        {
                            if (lPermissao.GetType().Name.Contains("Excluir"))
                            {
                                lDados.Excluir = true;
                            }
                            if (lPermissao.GetType().Name.Contains("Executar"))
                            {
                                lDados.Executar = true;
                            }
                            if (lPermissao.GetType().Name.Contains("Consultar"))
                            {
                                lDados.Consultar = true;
                            }
                            if (lPermissao.GetType().Name.Contains("Salvar"))
                            {
                                lDados.Salvar = true;
                            }
                        }
                    }
                }
                else
                {
                    ReceberUsuarioRequest lReuqest = new ReceberUsuarioRequest()
                    {
                        CodigoSessao           = this.CodigoSessao,
                        CodigoUsuario          = lDados.Usuario,
                        DescricaoUsuarioLogado = base.UsuarioLogado.Nome,
                        IdUsuarioLogado        = base.UsuarioLogado.Id
                    };

                    ReceberUsuarioResponse lRes = ServicoSeguranca.ReceberUsuario(lReuqest);

                    List <PermissaoInfo> permissoes = ListaDePermissoes.Where(p => p.GetType().Name.Contains(lDados.Interface)).ToList();

                    foreach (PermissaoAssociadaInfo lPI in lRes.Usuario.Permissoes)
                    {
                        PermissaoInfo lPermissao = permissoes.Find(p => p.CodigoPermissao == lPI.CodigoPermissao);
                        if (lPermissao != null)
                        {
                            if (lPermissao.GetType().Name.Contains("Excluir"))
                            {
                                lDados.Excluir = true;
                            }
                            if (lPermissao.GetType().Name.Contains("Executar"))
                            {
                                lDados.Executar = true;
                            }
                            if (lPermissao.GetType().Name.Contains("Consultar"))
                            {
                                lDados.Consultar = true;
                            }
                            if (lPermissao.GetType().Name.Contains("Salvar"))
                            {
                                lDados.Salvar = true;
                            }
                        }
                    }
                }
                return(RetornarSucessoAjax(lDados, "Ok"));
            }
            catch (Exception ex)
            {
                logger.Error(ex.Message, ex);
                return(RetornarErroAjax(ex.Message));
            }
        }
예제 #13
0
        public string ResponderCarregarHtmlComDados()
        {
            string lCodigoItem  = Request["Id"];
            string TipoDeObjeto = Request["TipoDeObjeto"];
            List <TransporteSegurancaItemFilho> lItensRetorno = new List <TransporteSegurancaItemFilho>();
            MensagemRequestBase  lRequest;
            MensagemResponseBase lResponse;

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

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

            default:
                return(RetornarErroAjax("Só é permitido listar os perfis se o tipo de objeto for Usuário ou Grupo."));
            }



            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                ListarPerfisRequest lPerfisRequest = new ListarPerfisRequest()
                {
                    CodigoSessao = this.CodigoSessao
                };

                ListarPerfisResponse lPerfisResponse = this.ServicoSeguranca.ListarPerfis(lPerfisRequest);

                if (lRequest is ReceberUsuarioRequest)
                {
                    UsuarioInfo lUsuario = ((ReceberUsuarioResponse)lResponse).Usuario;
                    lItensRetorno = RetornarItens(lUsuario.Perfis, lPerfisResponse.Perfis, lCodigoItem, TipoDeObjeto);
                }
                else
                {
                    UsuarioGrupoInfo lUsuarioGrupo = ((ReceberUsuarioGrupoResponse)lResponse).UsuarioGrupo;
                    lItensRetorno = RetornarItens(lUsuarioGrupo.Perfis, lPerfisResponse.Perfis, lCodigoItem, TipoDeObjeto);
                }

                hidSeguranca_Perfis_ListaJson.Value = JsonConvert.SerializeObject(lItensRetorno);
            }
            else
            {
                return(RetornarErroAjax("Erro: " + lResponse.DescricaoResposta));
            }

            return(string.Empty);
        }
예제 #14
0
        public string ResponderExcluir()
        {
            string lIdItemPermissao = Request["Id"];

            string lItemPaiID    = lIdItemPermissao.Split('|')[0];
            string lPerfilID     = lIdItemPermissao.Split('|')[1];
            string lTipoDeObjeto = lIdItemPermissao.Split('|')[2];

            MensagemRequestBase  lRequest;
            MensagemResponseBase lResponse;

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

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

            default:
                return(RetornarErroAjax("Só é permitido listar os perfis se o tipo de objeto for Usuário ou Grupo."));
            }

            if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
            {
                MensagemRequestBase  lSalvarRequest;
                MensagemResponseBase lSalvarResponse;

                if (lResponse is ReceberUsuarioResponse)
                {
                    UsuarioInfo lUsuario = ((ReceberUsuarioResponse)lResponse).Usuario;
                    lUsuario.Perfis.Remove(lPerfilID);

                    lSalvarRequest = new SalvarUsuarioRequest()
                    {
                        CodigoSessao = this.CodigoSessao,
                        Usuario      = lUsuario
                    };
                    lSalvarResponse = ServicoSeguranca.SalvarUsuario((SalvarUsuarioRequest)lSalvarRequest);
                }
                else
                {
                    UsuarioGrupoInfo lUsuarioGrupo = ((ReceberUsuarioGrupoResponse)lResponse).UsuarioGrupo;
                    lUsuarioGrupo.Perfis.Remove(lPerfilID);

                    lSalvarRequest = new SalvarUsuarioGrupoRequest()
                    {
                        CodigoSessao = this.CodigoSessao,
                        UsuarioGrupo = lUsuarioGrupo
                    };
                    lSalvarResponse = ServicoSeguranca.SalvarUsuarioGrupo((SalvarUsuarioGrupoRequest)lSalvarRequest);
                }

                if (lSalvarResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    base.RegistrarLogExclusao();
                    return(RetornarSucessoAjax("Perfil excluido com sucesso."));
                }
                else
                {
                    return(RetornarErroAjax("Erro ao excluir o perfil"));
                }
            }
            else
            {
                return(RetornarErroAjax("Erro ao excluir o perfil"));
            }
        }
예제 #15
0
        public string ResponderSalvar()
        {
            string lRetorno     = string.Empty;
            string lObjetoJson  = Request.Params["ObjetoJson"];
            string TipoDeObjeto = Request["TipoDeObjetoPai"];

            TransporteSegurancaItemFilho lDados;

            MensagemRequestBase lRequest;

            MensagemResponseBase lResponse;

            try
            {
                lDados = JsonConvert.DeserializeObject <TransporteSegurancaItemFilho>(lObjetoJson);
                switch (TipoDeObjeto)
                {
                case "Usuario":
                    lRequest = new ReceberUsuarioRequest();
                    ((ReceberUsuarioRequest)lRequest).CodigoUsuario = lDados.ParentId;
                    lRequest.CodigoSessao = this.CodigoSessao;
                    lResponse             = ServicoSeguranca.ReceberUsuario((ReceberUsuarioRequest)lRequest);
                    break;

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

                default:
                    return(RetornarErroAjax("Não é possível associar um tipo de item que não seja Usuários ou Grupos."));
                }

                if (lResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                {
                    MensagemResponseBase lSalvarResponse;
                    MensagemRequestBase  lSalvarRequest = null;
                    if (lResponse is ReceberUsuarioResponse)
                    {
                        UsuarioInfo lUsuario = ((ReceberUsuarioResponse)lResponse).Usuario;
                        lUsuario.Perfis.Add(lDados.Item);
                        lSalvarRequest = new SalvarUsuarioRequest()
                        {
                            CodigoSessao = this.CodigoSessao,
                            Usuario      = lUsuario
                        };
                        lSalvarResponse = ServicoSeguranca.SalvarUsuario((SalvarUsuarioRequest)lSalvarRequest);
                    }
                    else
                    {
                        UsuarioGrupoInfo lGrupo = ((ReceberUsuarioGrupoResponse)lResponse).UsuarioGrupo;

                        lGrupo.Perfis.Add(lDados.Item);
                        lSalvarRequest = new SalvarUsuarioGrupoRequest()
                        {
                            CodigoSessao = this.CodigoSessao,
                            UsuarioGrupo = lGrupo
                        };
                        lSalvarResponse = ServicoSeguranca.SalvarUsuarioGrupo((SalvarUsuarioGrupoRequest)lSalvarRequest);
                    }

                    if (lSalvarResponse.StatusResposta == MensagemResponseStatusEnum.OK)
                    {
                        base.RegistrarLogInclusao();
                        return(RetornarSucessoAjax(new TransporteRetornoDeCadastro(lDados.ParentId + "|" + lDados.Item + "|" + TipoDeObjeto), "Dados associados com sucesso"));
                    }
                    else
                    {
                        return(RetornarErroAjax(lSalvarResponse.DescricaoResposta));
                    }
                }
                else
                {
                    return(RetornarErroAjax(lResponse.DescricaoResposta));
                }
            }
            catch (Exception ex)
            {
                return(RetornarErroAjax(ex.Message));
            }
        }