Autor: Rudinei Dias
Parametrização dos Níveis de Acesso
31 de Janeiro de 2012, 16:43 - | 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.
66 comentários
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.sistemagpweb.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.
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.