Informática Numaboa - Tutoriais e Programação
Controle de acesso no Joomla 1.5
Dom 4 Mai 2008 20:40 |
- Detalhes
- Categoria: Joomla
- Atualização: Segunda, 02 Julho 2012 19:39
- Autor: vovó Vicki
- Acessos: 18507
Finalmente os AXOs
Access eXtension Objects (AXOs) podem adicionar uma terceira dimensão às permissões que podem ser configuradas no phpGACL. Vimos como o phpGACL permite combinar um ARO e um ACO (duas dimensões) para criar uma Diretiva de Política de Acesso. Isto é o suficiente para uma solicitação de permissão simples como:
Papagaio (ARO) requisita acesso ao "Comando" (ACO)
Se isto é tudo o que você precisa, então ótimo porque os AXOs são totalmente opcionais. Mas como todos os ACOs são considerados iguais, fica difícil administrá-los quando existirem em grande número. Se este for o caso, podemos mudar o modo como olhamos para os Objetos de Acesso e facilitar as coisas.
AXOs são iguais aos AROs em muitos aspectos. Existe uma árvore AXO (separada da árvore ARO) com seus próprios Grupos e AXOs. Quando lidar com AXOs, considere os AXOs tomando o lugar dos ACOs (isto é, "coisas com acesso controlado") e passe a considerar os ACOs como "ações que são requisitadas".
Visão ARO e ACO
- AROs: coisas requisitando acesso.
- ACOs: coisas com acesso controlado.
Visão ARO, ACO e AXO
- AROs: coisas requisitando acesso.
- ACOs: ações que são requisitadas.
- AXOs: coisas com acesso controlado.
Exemplo: um administrador de um site está tentando definir o acesso a projetos neste website. A árvore ARO compreende todos os usuários:
Website | |- Administradores | |- Júlia | |- João | |- Usuários |- Pedro |- Clara |- Helena
Os projetos estão organizados por Sistema Operacional em categorias na árvore AXO:
Projetos | |- Linux | |- Filtro de Spam | |- Firewall | |- Windows |- Exterminador de Assistentes do Office |- Devorador de Telas Azuis
As ações que podem ser requisitadas em cada projeto são "Ver" e "Editar". Estes são os ACOs.
Agora queremos que o Pedro tenha acesso para "Ver" todos os projetos Linux. Para isto adicionamos uma ACL que liga o ARO de Pedro ao ACO Ver e ao AXO Linux. A partir daí podemos fazer a pergunta:
Pedro (ARO) requesita acesso para "Ver" (ACO) o(s) projeto(s) chamados "Linux" (AXO)
Lembre-se de que os AXOs são opcionais. Se você não especificar um AXO quando chamar acl_check() e existir uma ACL sem um AXO, tudo bem. Entretanto, se existirem apenas ACLs com AXOs e você chamar acl_check() sem um AXO, a chamada vai falhar.
Basicamente, assim que você especificar um AXO ao chamar acl_check(), esta função irá procurar apenas ACLs que contenham AXOs. Se nenhum AXO for especificado, apenas ACLs sem AXOs serão pesquisadas.
Fonte de Referência
Generic Access Control Lists with PHP
- << Anterior
- Próximo