Ir para o conteúdo

GPWeb

 Voltar a Sugestões de...
Tela cheia

Parametrização dos Níveis de Acesso

31 de Janeiro de 2012, 16:43 , por Desconhecido - | Ninguém seguindo este artigo por enquanto.
Visualizado 54 vezes
Um dos problemas que enfrentamos aqui com o GPWEB é a permissividade padrão (default PUBLICO) em todos os módulos do sistema. Por necessidade e opção, removemos a opção PUBLICO dos níveis de privacidade, com uma parametrização do(s) vetor(es) dos níveis de acesso. Adicionamos a parametrização na configuração padrão do sistema (config.php) onde pode ser customizada. Arquivo CONFIG.PHP /******** Configuração dos níveis de acesso do sistema ********/ GLOBAL $system; $system['niveis'] = array('0' => 'Público', '1' => 'Protegido', '2' => 'Participantes', '3' => 'Privado'); $system['niveisReduzido'] = array('0' => 'Público', '1' => 'Protegido', '3' => 'Privado'); Atualizamos os 58 arquivos onde replicava-se o vetor de níveis, obtendo a informação parametrizada GLOBAL $system; $niveis_acesso=$system['niveis']; Ao invez da replicacao $niveis_acesso=array('0' => 'Público', '1' => 'Protegido', '2' => 'Participantes', '3' => 'Privado'); Também adicionamos 2 níveis na árvore das organizações, para melhorar a usabilidade na navegação da caixa de seleção das organizações, diminuindo a quantidade de cliques e requisições ajax (precisávamos dar 6 cliques) quando a árvore possui muitas organizações subordinadas. Em anexo posto a solução para aversão 8.0.8 do GPWEB. Sérgio, sugiro fortemente a adoção desta parametrização, evidando a redundância na codificação do GPWEB.

Autor: Rudinei Dias


66 comentários

  • 734a3a6a0b5acdda2bd69d0c113f9075?only path=false&size=50&d=404Rudinei Dias(usuário não autenticado)
    31 de Janeiro de 2012, 16:50

     

    Como não tenho a permissão de adicionar arquivos na comunidade, encaminhei o arquivo ao Sergio.

    • F205f9606b3272f6589a208b80b051ee?only path=false&size=50&d=404Sérgio Reinert(usuário não autenticado)
      31 de Janeiro de 2012, 19:52

       

      Confesso que não entendi direito o que havia de errado nas opções de nível de acesso para vcs e fico imaginando como irão controlar o versionamento, pois ao atualizar para a nova versão qualquer mudança no PHP irá virar fumaça.

      Se puder me ligar num horário noturno, me ajudaria  a entender o estão necessitando que seja feito.

      (51) 8191-9932 (TIM)

      (51) 8408-8484 (Oi)

      • 734a3a6a0b5acdda2bd69d0c113f9075?only path=false&size=50&d=404Rudinei Dias(usuário não autenticado)
        6 de Fevereiro de 2012, 8:56

         

        Sérgio, explico aqui porque escrito fica melhor registrado.

        Permissividade: 

        Quando falei em permissividade do sistema, estava me referindo que, em todo o modelo e módulo, o sistema atribui por padrão o nível público. Isto significa que todos os usuários acabam podendo ver e editar qualquer coise em qualquer lugar, exceto se o criador "se ligar" e não deixar a opção default como público. 

        Conhece bem os usuários, sabemos que estes não "refletem muito" antes de escolher uma opção de nível de acesso espalhada no sistema. Normalmente, deixam como está.

        Para melhorar esta condição, aqui colocamos como padrão o "protegido" (todos vêem, só dono e participantes editam) e não o "público" (todos vêem e editam).

        Parametrização: 

        Tecnicamente, um dos piores problemas que qualquer sistema pode ter, é a replicação de código. Por isso a modularização de código com funções ou orientação a objetos é ditame em qualquer implementação. 

        A definição do vetor de permissões estava, se me recordo com exatidão, em 56 arquivos diferentes. Para resolver esse problema, criei a declaração do vetor em um único arquivo (o de configuração) de onde todos os outros 56 buscarão a informação.

        Centralizado no arquivo config.php, facilita então a parametrização permitindo o ajuste da permissividade do sistema, conforme descrita acima.

        Também corrigi os arquivos instaladores para incluírem a parametrização, 

        Versionamento:

        Para o versionamento, utilizamos  ferramentas livres apropriadas para isso, como o diff, winmerge, patch entre tantas outras para controle de código e branchs.

        Melhorias: 

        Lhe enviei os códigos-fonte como contribuição de melhoria, assim como outras que farei no futuro. O GPWeb possui uma quantidade de funcionalidades muito grande, e qualidade no negócio a que se propõem, realmente uma das melhores do mercado. Em paralelo a isso, tecnicamente, temos muito interesse na sustentabilidade do código-fonte, que pode melhorar muito, ficar mais modular e qualificado.

        Como analista de sistema de anos de mercado, entusiasta do software-livre, acredito que o GPWEB tem muito para ser um dos melhores software-livre do Brasil.

        Entendo que você desenvolveu o GPWeb praticamente sozinho. Mas em algum momento você precisará pensar em sua reestruturação para suportar o crescimento que ainda está por vir. Neste sentido, coloco-me a disposição para contribuir com idéias e melhorias para o GPWeb.

        Atenciosamente,

        Rudinei Dias 

        • F205f9606b3272f6589a208b80b051ee?only path=false&size=50&d=404Sérgio Reinert(usuário não autenticado)
          6 de Fevereiro de 2012, 10:00

           

          Permissividade

          Basta a primeira posição do vetor não ser 0 (zero) que o "problema" se resolve.

          Parametrização

          A sua solução foi "meia-boca" pois se antes havia o código replicado 56 scripts, agora 950 scripts irão carregar este código sem necessidade (há 1000 scripts PHP).

          O certo seria criar os tipos de permissão na tabela sisvalores e usar a funcao getSisValor('XXX')

          Versionamento

          O portal do software publico tem uma ferramenta de versionamento, mas como na comunidade GP-Web é uma equipe de dois trabalhando (eu e Deus) não utilizo.

          Quanto a restruturação já existe, mas muitos não conhecem. Acesse www.​sist​emag​pweb​.com

          Idéias para melhorar o GP-Web há varias. O MPOG sugeriu usar framework no sistema como um todo, classes para acessar dados de LDAP, e por ai vai, mas isso acarretaria um custo mínimo de 3 milhões de reais e dois anos de trabalho (sendo otimista) e refazer o sistema do zero.

          Sei que nunca ganharei um prêmio por código bem escrito, mas meu foco é o usuário. Da forma que programei o programa é leve e rápido. Estou agora adaptando o GP-Web para ser a ferramenta de controle dos programas do Brasil Sem Miséria, por isso não sendo bugs relatados todo o resto ficará na fila de espera.

          • 734a3a6a0b5acdda2bd69d0c113f9075?only path=false&size=50&d=404Rudinei Dias(usuário não autenticado)
            6 de Fevereiro de 2012, 11:53

             

            Sérgio, vou ser mais objetivo 

            > "Basta a primeira posição do vetor não ser 0 (zero) que o "problema" se resolve."

            Isto não resolve o problema, pois necessitaria ajuste em todos os arquivos, sempre que você fizesse uma atualização. 
            Não parametriza para o usuário. Como você disse "vira fumaça" na primeira atualização.

            > A sua solução foi "meia-boca" pois se antes havia o código replicado 56 scripts, agora 950 scripts irão carregar este código sem necessidade (há 1000 scripts PHP). O certo seria criar os tipos de permissão na tabela sisvalores e usar a funcao getSisValor('XXX')

            O custo de carregar uma variável estática a mais em 1000 scripts é muito menor que o overhead para efetuar consultas SQL para pegar esses valores com a função getSisValor, embora padronizasse melhor.

            A solução "meia boca" pode, na sua opinião, não ter sido a melhor implementação, mas foi com o intuito de efetuar uma contribuição, colaborando com melhoria do GPWeb, com código já implementado. 

            > Sei que nunca ganharei um prêmio por código bem escrito, mas meu foco é o usuário.

            Concordo, o GPWeb tem funções fantásticas, e atende muito bem ao usuário. É uma solução com boas conotações do negócio a que se propõem, como mencionei anteriormente. Não estamos discutindo isso, só propondo  e disponibilizando melhorias. Fazendo colaboração.

            > Da forma que programei o programa é leve e rápido.

            Há diversas formas de implementar código leve e rápido. 

            > O portal do software publico tem uma ferramenta de versionamento, mas como na comunidade GP-Web é uma equipe de dois trabalhando (eu e Deus) não utilizo.

            Não sugeri que você usasse versionamento. Acho que você confundiu as coisas, você me fez a pergunta de como controlaria a versão ("fico imaginando como irão controlar o versionamento").

            Também não precisa ser uma equipe de dois. Tem gente querendo colaborar.  

             > Quanto a restruturação já existe, mas muitos não conhecem. Acesse www.​sist​emag​pweb​.com

            Me refiro à melhorias no sistema do portal do software público, aberto e livre.

            > Idéias para melhorar o GP-Web há varias. O MPOG sugeriu usar framework no sistema como um todo, classes para acessar dados de LDAP, e por ai vai, mas isso acarretaria um custo mínimo de 3 milhões de reais e dois anos de trabalho (sendo otimista) e refazer o sistema do zero.

            Isto seria uma evolução para o sistema. Farão financiamento?

            E quanto à colaborações da comunidade? 

            > Estou agora adaptando o GP-Web para ser a ferramenta de controle dos programas do Brasil Sem Miséria, por isso não sendo bugs relatados todo o resto ficará na fila de espera. 

            Como coloquei anteriormente, disponibilizei para você, utilizar ou não, as implementações feitas para este caso. Trata-se de uma questão de colaboração. Você pode colocar na versão da comunidade ou jogar fora.

            Qualquer alteração em contexto simples, dentro das possibilidades do entendimento do sistema, que julgarmos necessário, será implementado aqui, e colocaremos à sua apreciação, com o intuito de colaboração.

            Não estou, nem queremos, desqualificar todo o empenho e trabalho no GPWeb, que novamente destaco, tem excepcionais funcionalidades. Como integrantes da comunidade, usuários do GPWeb, queremos contribuir para fazer do GPWeb um sistema maior ainda.

            Atenciosamente,

            Rudinei Dias.

             

            • F205f9606b3272f6589a208b80b051ee?only path=false&size=50&d=404Sérgio Reinert(usuário não autenticado)
              6 de Fevereiro de 2012, 12:53

               

              Voluntários nos fóruns e por email apareceram muitos no último ano, mas até onde vai a minha memória apenas 01 (um) deu contribuição efetiva para melhoria do manual.

              Se melhorar o manual que exige pouco conhecimento técnico foi um fiasco o que dirá do resto...

              Para vc entender melhor o problema, para alguem programar bem no GP-Web requerirá no mínimo uns 6 meses, com suporte técnico contínuo da minha parte. E estou com a agenda bastante cheia.

              Para provar a afirmação acima, o INCRA tem uma fábrica de software que deseja usar para melhorar o GP-Web, mas chegaram a conclusão que precisarei estar cedido ao INCRA para poder coordenar os esforços desta fábrica de software.Também está na fila para eu ficar cedidio para auxiliar em melhorias a CODEVASF.

              Aqueles que desejam ajudar volto a bater no ponto de melhoria de manual e na optenção de patrocinadores.

              Com algum esforço já há uma pequena equipe que pode melhorar o código do GP-Web (mediante remuneração)

              Há melhorias expressivas que poderiam ser realizadas à baixo custo, como exemplo:

              GP-Web em Ingles e Espanhol (R$ 70.000)
              GP-Web rodando em Oracle (R$ 10.000)
              Portfólio de projetos (R$ 20.000)

              Já deixei disponibilizado na comunidade um modelo de edital para Sistema de Registro de Preço. Se algum orgão público Federal realizar o pregão, o GP-Web irá crescer exponencialmente.

GP-Web v. 8.0.26 (24 Jun)

25 de Junho de 2012, 1:22, por Desconhecido



Treinamento do GP-Web em Porto Alegre-RS

8 de Maio de 2012, 0:22, por Desconhecido

Devido a uma solicitação da Polícia Militar do Rio de Janeiro, que enviará oficiais ao 3º Batalhão de Comunicações, para treinamento no software GP-Web, dentre os dias 15 a 17 de maio do corrente ano, foi franqueado para as Forças Armadas, demais Polícias e Bombeiros Militares do Brasil.



Patrocínio do Tribunal de Justiça do Acre ao GP-Web

23 de Abril de 2012, 12:44, por Desconhecido

Foram realizadas diversas melhorias na versão 8.0.17 do GP-Web, todas patrocinadas pelo Tribunal de Justiça do Acre, com destaque para:



Treinamento do GP-Web para o Ministério da Integração

8 de Abril de 2012, 19:56, por Desconhecido



Treinamento do GP-Web para o INSS

4 de Abril de 2012, 5:49, por Desconhecido