2534 registros
0 hoje
9 nesta semana
7 neste mês| Controle de acesso no Joomla 1.5 |
|
|
| Tutoriais - Joomla | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Escrito por vovó Vicki | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Dom, 04.05.2008 20:40 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Página 1 de 5
Porque um sistema de controle de acesso?Imagine que você queira abrir partes do seu site só para determinados usuários e também queira sair da mesmice de usuário registrado, editor, publicador, admin, etc. No atual estágio do Joomla não é possível fazer isto sem gastar um bom dinheiro para adquirir componentes comerciais. Fuçando um pouco mais o assunto descobri um componente gratuito da jxTENDED, o Control, baseado no phpGACL e que permite criar e gerenciar todos os tipos de objetos necessários para um controle de acesso mais estruturado e efetivo. Como faltam algumas tabelas na base de dados do Joomla, este componente cria estas tabelas e deixa tudo no jeito para que possamos incorporar novas funcionalidades em módulos, componentes e plugins que viermos a criar. Foi daí que me deu uma vontade doida de saber o que é e como funciona o phpGACL. Para servir de referência quando eu precisar e para compartilhar com vocês esta "novidade", resolvi colocar tudo neste tutorial. Aviso aos navegantes: o componente Control, citado acima, NÃO vai permitir controlar o componente nativo com_content, responsável pela apresentação das páginas do conteúdo. Ao invés de começar a hackear o código fonte do Joomla, o melhor é adquirir experiência com componentes próprios e deixar para os desenvolvedores deste CMS a tarefa de incorporar definitivamente o phpGACL de forma mais completa O que é o phpGACL?O phpGACL é um conjunto de funções que permitem aplicar um controle de acesso em objetos dos tipos mais variados (páginas web, bases de dados, etc) através de outros objetos também de vários tipos (usuários, hosts remotos, etc). Ele oferece um controle de acesso de sintonia fina (ou de granularidade fina), com uma administração muito simples, e é muito rápido. O porque do nome começar com php está na cara, mas o que vem a ser GACL? É Generic Access Control List, ou seja, Lista de Controle de Acesso Genérica. Este projeto é da autoria de Mike Benoit e pode ser encontrado na sourceforge.net. Taí o endereço, se bem que, como já disse, o Joomla traz a última versão (procure em /libraries/joomla/phpgacl - são apenas dois arquivos relativamente pequenos, o gacl.php e o gacl_api.php). Entendendo o Controle de AcessoMelhor do que ficar discutindo conceitos teóricos é partir para exemplos práticos. Vamos imaginar o seguinte cenário: Maremoto é o capitão do navio Princesa dos Mares e Barrica é seu imediato. Eles levam alguns passageiros a bordo: Zé Arruela, Zé do Boné, Margarida e Papagaio. Maremoto precisa definir restrições de acesso para vários recintos do navio: Cabine de Comando, Refeitório, Despensa e Casa das Máquinas. Maremoto diz: "Eu e o Barrica precisamos ter acesso a qualquer recinto mas, depois que ele acabou com as barras de chocolate, proibi o Barrica de chegar perto da despensa. Os passageiros só podem entrar no refeitório". A partir de agora vamos assumir que o acesso é booleano, isto é, a verificação do acesso de uma pessoa a um determinado recinto é PERMITIDO (ALLOW) ou PROIBIDO (DENY). Não existe mais ou menos, é sim ou não. Se mapearmos esta declaração numa matriz de acesso que mostre quem tem acesso a que, o resultado será este (0 significa PERMITIDO e X significa PROIBIDO):
As colunas mostram os recintos de acesso restrito e as linhas mostram as pessoas que podem solicitar acesso a estes recintos. Em termos mais gerais, os "recintos" são "coisas cujo acesso precisa ser controlado". Chamamos estas "coisas" de Objetos de Acesso Controlado (ACO Access Control Objects). As pessoas são "coisas que solicitam acesso" e são chamadas de Objetos de Solicitação de Acesso (ARO Access Request Objects). As pessoas solicitam acesso aos recintos ou, na terminologia ACL, AROs solicitam acesso a ACOs. Existe um terceiro tipo de objeto, o Objeto de eXtensão de Acesso (AXO Access eXtension Object) que será apresentado a vocês mais adiante. Estes objetos são coletivamente chamados de Objetos de Acesso (Access Objects). Administrar acessos usando uma matriz de acesso como a mostrada acima tem vantagens e desvantagens. As vantagens são:
As desvantagens, por sua vez, são as seguintes:
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Última atualização ( Ter, 06.05.2008 13:15 ) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||