ACL Joomla sem mistérios

27 de janeiro de 2012

Aplicações Web, CMS Joomla

ACL Joomla


Uma das grandes dificuldades para muitos desenvolvedores, é entender o verdadeiro conceito da ACL Joomla. Com certeza, quando está desenvolvendo seu site, você define as permissões de quem pode ou não fazer o que dentro do site, tanto no Back-End quanto no Front-End. Mas a pergunta é : Você está fazendo isso corretamente?

A ACL JoomlaAccess Control List (Lista de Controle de Acesso) vai muito além das configurações padrões do Joomla, e estas configurações personalizadas, quem define é o desenvolvedor, dependendo da necessidade e nível de controle de acesso que o projeto necessita.

Quando configurar a ACL Joomla?

A maioria dos projetos, realmente, não necessitam mais do que as configurações padrões da ACL, mas para elaborar um projeto com maior complexidade e que solicite um maior controle tanto de conteúdo exibido para o visitante do site, quanto as permissões de usuário para todos os envolvidos no desenvolvimento do website e inserção de conteúdo, é essencial que você tenha total domínio sobre os conceitos da ACL Joomla, que vai ser aplicada tanto no Front-End quanto no Back-End do site.

Tentando esclarecer ou minimizar esta dúvida que a maioria de nós temos sobre a ACL, buscamos um artigo que fosse o mais detalhado possível, para mim, foi bastante didático e esclarecedor e espero que também seja para você que está começando agora e para você que já tem um conhecimento mais avançado.

Artigo Original http://magazine.joomla.org/issues/Issue-Jan-2012/item/637-Joomla-1-6,-1-7,-and-2-5-ACL-Concepts-Overview

Este artigo é baseado em dois artigos escritos originalmente para Joomla 1.6. (Artigo 1 / Artigo 2) Este artigo foi escrito em dezembro de 2011, antes do lançamento do Joomla 2.5. No entanto, foi assumido que os conceitos ACL Joomla não vão mudar entre as versões Joomla, mesmo que ocorram pequenas mudanças na interface. Um dos mais poderosos novos recursos no Joomla 1.6 e versões posteriores é o Access Control Lists (ACL). ACL significa Lista de controle de acesso. Refere-se a quem tem permissão para fazer o que no site, incluindo ler, criar, editar, excluir, ou logar-se, entre outras permissões.

ACL Joomla

Muitos pensam que a ACL está relacionada somente com o Front-End de um site. Por exemplo, quando eu entrar no site, quais artigos estarão disponíveis para mim? E se alguém se conecta ao site, eles veem os mesmos artigos, ou eles veem artigos diferentes?
No entanto, a ACL Joomla também se refere a quem tem direitos para criar, editar e excluir o conteúdo, quem pode publicar e despublicar conteúdo, quem pode entrar no Front-End ou Back-End do site, e quem pode fazer alterações em quais componentes, módulos, e modelos.

Só porque você pode não significa que você deva! A ACL é complexa, e leva algum tempo para entender exatamente como ela funciona. Para muitos sites, talvez até a maioria dos sites, você pode não precisar de nada além da configuração padrão do Joomla. No entanto, se você está construindo um site maior, poderia vir a calhar.

Exemplos de onde seria necessário incluir ACL Joomla:

  • Um site da escola, onde pais, professores, estudantes e o público acessam conteúdos diferentes.
  • Um grande site com muitos colaboradores, onde você não quer que as pessoas mudem conteúdo um do outro, confiança pode ou não funcionar.
  • Você tem usuários que são capazes de criar e editar conteúdo para o site, mas não podem necessariamente publicar conteúdo. Além do mais, você tem dois ou mais grupos desses usuários que precisam criar e editar conteúdos pertencentes a diferentes áreas do site.
  • Você gostaria de ter um usuário para poder logar no Back-end do site, acessar os controles de um único componente, e mais nada.

A ACL também pode ser usada para construir uma interface de administrador simplificada, eliminando as áreas onde um cliente não precisa visitar para fazer alterações no site. No Joomla 1.5, você poderia fazer de um cliente um gerente, mas este seria capaz de editar qualquer componente, qualquer conteúdo no site, e fazer alterações em menus. Com Joomla 1.6 ou superiores, você pode refinar a ACL para que um cliente possa acessar somente as categorias específicas de artigos (ou artigos específicos), componentes específicos (ou nenhum), e assim por diante. Via ACL, você pode melhorar a usabilidade do administrador Back-End para o seu cliente.

ACL no Joomla 1.5

Joomla 1.5 tem um limitado e fixo sistema de ACL. Se você já trabalhou com o Joomla 1.5, você viu como você pode definir um item de menu ou um artigo para ser visualizado pelo Público, Usuários Registrados, ou “Especiais” (autores e acima). Da mesma forma, você provavelmente sabe que os usuários registrados não podem entrar no Back-End de um site Joomla, mas um Super Administrador pode. A ACL do Joomla 1.5 é hierárquica, o que significa que cada grupo de usuários herda as permissões dos grupos acima.

A explicação completa dos Grupos do Joomla 1.5  pode ser encontrada em brian.teeman.net. Os Grupos incluem Público, Registrado, Autor, Editor, Publicador, Gerente, Administrador e Super Administrador. Os níveis de acesso do Joomla 1.5 incluem Público, Registrado e Especial.

Público indica que qualquer um pode ver o conteúdo. Registrados indica que aqueles com acesso de usuário registrado e superiores podem ver o conteúdo. Especial é para grupos de autor e superiores apenas. Não há nenhuma maneira de incluir níveis de acesso adicionais, nem há qualquer maneira de segmentar permissões mais finamente.

ACL no Joomla 1.6 e superior: Visão Geral

No Joomla 1.6 ou superiores, a ACL não é necessariamente hierárquica. Você pode configurar grupos com quaisquer permissões que você desejar. Essas permissões são herdadas dos pais no caso de grupos, mas eles não são herdados no caso de níveis de acesso. No mínimo, todos os grupos de usuários são níveis abaixo do grupo Público.

Há quatro aspectos para o sistema ACL no Joomla 1.6 e superiores. Estes incluem o usuário, o grupo, as permissões de núcleo, e níveis de acesso. Eu tenho esses representados no diagrama a seguir para descrever seu relacionamento, e eu vou passar por cada um em detalhe.

ACL Joomla

Usuário

Esta é a mais fácil de entender – que é você, ou alguém visitando o site. Um usuário não precisa ter uma conta para ser considerado um usuário do site. Esse usuário ainda seria considerado um usuário público. Os usuários individuais podem ser atribuídos a um ou vários grupos. Você não pode atribuir permissões do núcleo diretamente aos usuários, que são atribuídos ao grupo.

Permissões de núcleo

Permissões de núcleo são atribuídas ao grupo, não para usuários individuais. (Se você quiser permissões de núcleo específico para um único usuário, você precisa criar um grupo para esse único usuário.)

As Permissões principais incluem:

  • De login no site : a capacidade de logar-se no Front-End do site.
  • Login de administrador : a capacidade de entrar no Back-End do site.
  • Acesso offline : Quando o site é tirado do ar (em Configuração Global – Guia Site), este controla quem é capaz de fazer login para ver o site.
  • Super Administrador : privilégios administrativos (root), como alterar Configuração Global. Privilégios de Super Administrador também substituem todas as outras configurações de ACL, dando a este grupo de usuários acesso completo a todos os sistemas do Joomla.
  • Componente de acesso : a capacidade para chegar a áreas específicas no Back-End (menus, gerenciador de artigo, gerenciador de mídia, componentes, etc).
  • Criar : capacidade de criar novos conteúdos.
  • Excluir : capacidade de apagar (enviar para lixeira) conteúdo.
  • Editar : capacidade de editar conteúdo existente que não é necessariamente o seu próprio.
  • Editar Estado : habilidade de mudar de estado entre publicado, despublicado, excluídos, arquivados.
  • Editar própria : capacidade de editar seu próprio conteúdo (mas não o conteúdo dos outros).

As permissões de núcleo são definidas na Configuração Global, em Site – Configuração Global, em seguida, clicando na guia Permissões.

Compreendendo permissões de núcleo em Configuração Global

ACL Joomla

No grupo Gerente, mostrado acima, e em todos os grupos, exceto para o Público, cada um dos dropdowns mostrado aqui tem três opções: Permitir, Negar e Herdados. O grupo Público é o pai de todos os grupos abaixo. Dropdowns do grupo Público tem três valores, que incluem Permitir, Negar, e Não Definido.

  • Permitir significa que algo é explicitamente autorizado ou permitido para um grupo específico.
  • Negar significa que algo é explicitamente negado ou não permitido para um grupo específico.
  • Herdados significa que algo é derivado de um grupo de pais(acima). Herdados não está disponível como uma opção para o grupo Público.
  • Não definido significa que a permissão não foi ainda configurada. Não definido somente está disponível para o grupo Público e apenas na configuração global.

A explicação completa sobre as permissões de cada grupo de usuários é explicada abaixo .

Nota especial sobre Permissões de Núcleo atribuídos em Configuração Global

Quando as permissões do núcleo são definidas no nível de configuração global, elas se definem para todo o site e através de todas as áreas do site. Por exemplo, um Autor tem a permissão Criar atribuída globalmente. Permite o autor criar um artigo em qualquer categoria do site.

A permissão Criar também significa que eles poderiam criar uma URL nova no Front-End do site, se o componente URL estiver em uso. Você pode querer pensar cuidadosamente sobre onde as permissões são atribuídas dentro do Joomla. Você não tem que definir a permissão Criar em Configuração Global se você quiser um grupo de usuários que sejam capazes de criar artigos e categorias. Você também pode atribuir essa permissão dentro do quadro Opções no Gerenciador de artigo. Eu vou mais a fundo sobre onde atribuir permissões em artigos posteriores.

Tudo sobre Negar

Você pode ser tentado a definir todas estas dropdowns para especificamente Permitir ou Negar isso é mais fácil de fazer. No entanto, gostaria de recomendar que você não faça isso.

Se Negar está definido nas permissões, mesmo que você defina Permitir para um nível de grupo de usuários acima, o nível mais baixo Negado seria herdado e poderia substituir a Permitir.

Por exemplo, se você definir os dropdowns do Grupo Público para Negar todos, não há nenhum ponto em ter nenhum grupo de nível superior! Todo mundo seria negado de fazer qualquer coisa no site para sempre, com a exceção dos Super Usuários.

Grupo de Usuários

Um grupo de usuários (também chamados de grupos) é um grupo de usuários que compartilham as mesmas permissões. Usando os Grupos do Joomla 1.5 como exemplo, o grupo Editor tem o direito de logar-se no Front-End do site, criar novos artigos, editar qualquer artigo no site e publicar ou despublicar artigos. Alguém do grupo Publicador tem as mesmas permissões para fazer essas mesmas coisas.

Ao contrário do Joomla 1.5, no entanto, um usuário pode ser atribuído a vários grupos. Um usuário pode estar no grupo Editor, bem como no grupo de Administradores, por exemplo. Você pode criar seus próprios grupos e atribuir-lhes o seu próprio conjunto de permissões do núcleo. Permissões de núcleo são herdadas entre os grupos.

Um grupo pode ser criado por duas razões diferentes. Uma delas seria para visualizar o conteúdo no Front-End do site. (Os grupos de usuários são atribuídos aos níveis de acesso para ver o conteúdo no Front-End do site.) A outra seria a de especificar o conteúdo que podem ser criados, editados, excluídos, publicados ou não, ou geridos por esse grupo.

Ao visitar o site, um visitante do site é considerado um usuário pertencente ao grupo público. O grupo Público não pode ser excluído, mas todos os outros grupos podem ser excluídos. (No entanto, eu recomendo a você mantê-los, porque eles dão-lhe um bom modelo de como funciona a herança de permissões).

Os grupos padrões

Por padrão, o Joomla 1.6 e superiores vem configurado com os mesmos grupos que aparecem no Joomla 1.5. Os grupos e suas permissões de núcleo são as seguintes (considere cantando “The 12 Days of Christmas” durante a leitura):

  • Público : Público pode ver o conteúdo no Front-End do site que não está oculto atrás de um login. Para o grupo Público, por padrão, todos os valores são definidos para não definido. Como você poderia esperar, os usuários Públicos não estão autorizados a logar-se no Front-End do site, entre outras permissões. Eles não são explicitamente proibidos de fazer isso, no entanto eles são proibidos porque não há nenhuma permissão explícita.
  • Registrados : Os usuários registrados podem logar-se no Front-End do site somente. Os usuários registrados são abaixo do grupo Público. Eles são atribuídos a permissão “Login no Site”.
  • Autor : Os autores podem criar seu próprio conteúdo por meio da permissão Criar e Editar própria. Autores são abaixo do grupo registrado. Eles herdam a permissão “Logar no Site” de Usuários Registrados.
  • Editor : Os editores podem editar qualquer conteúdo no site através da permissão Editar. Os editores são abaixo do grupo Autor. Eles também herdam as permissões Criar e Editar Própria de Autores e a permissão Login no Site de usuários registrados.
  • Publicador : Publicadores podem publicar, despublicar, arquivar conteúdo ou excluir, através da permissão Editar Estado. Os publicadores são abaixo do grupo Editor. Eles também herdam a permissão Editar dos Editores, o Criar e Editar Próprias de Autores, e a permissão de “Login no Site” de usuários registrados.
  • Gerente : Os gerentes são abaixo do grupo Público, então todas as permissões previamente atribuídas a registrados, grupos de Autor, Editor e Publicador não se aplicam aos Gerentes. Todos devem ser atribuídos individualmente . Que inclui Logar no Site, Administrar Login, acesso off-line, criar, excluir, Editar, editar estado , e editar própria .
  • Administrador : Administradores podem editar e configurar as extensões através da permissão Acessar Componente. Os administradores são abaixo do grupo Gerente, para que eles herdem o Login no Site, Administrar Login, acesso off-line, criar, apagar, editar, permissões Editar Estado e Editar Própria a partir deles.
  • Super Usuários : Os Super Usuários (ex. Super Administradores) são capazes de mudar a configuração global, bem como outras habilidades através da permissão Super Administrador. Super Usuários também são abaixo de público. No entanto, eles têm apenas um conjunto de permissão: a permissão de Super Administrador. Esta permissão substitui todos os outros, de modo que o Super Usuário é capaz de realizar todas as funções.

Os grupos padrões e suas permissões estão representadas na Configuração Global (em Site – Configuração Global – Permissões).

Nível de Acesso

Níveis de acesso referem-se a quem pode ver o conteúdo no Front-End do site. Essencialmente, isso equivale a permissão de leitura no Front-End do site. Historicamente, houve três níveis de acesso: Público (que qualquer um pode ver), Registrado (você deve estar logado para ver o conteúdo) ou especiais (você deve ser registrado em um autor ou grupo de nível superior para ver o conteúdo).

Estes níveis de acesso ainda estão presentes na versão 1.6 e superiores como configurações padrão, mas você também pode criar seus próprios níveis de acesso.

Níveis de acesso não herdam as permissões. Se um artigo é programado para ser visto pelos editores apenas através de um nível de acesso personalizado, mesmo Super Administradores não podem ver esse artigo. Você deve atribuir os Super Usuários para também fazerem parte do grupo de editor, a fim de ver este artigo no Front-End do site, ou você deve atribuir Super Usuários e Editores para o mesmo nível de acesso para ver o conteúdo. (Em todos os casos, como um Super Usuário, você é capaz de editar este artigo no back-end).

Qual é o próximo?

Eu estarei escrevendo uma série de estudos de caso que você pode seguir para colocar os princípios acima referidos em ação. Os exemplos incluem:

  • Diferentes usuários veêm diferentes conteúdos no Front-End do website
  • Um Back-End despojado para simplificar a administração de um cliente do seu site

Como vocês puderam ver, a ACL Joomla não é tão complexa, mas é claro que para poder dominá-la, além de conhecer seus conceitos corretamente, um pouco de prática é essencial e a partir da versão Joomla 1.6, temos a tranquilidade de que estes conceitos não vão mudar.

Boa Sorte.

Curso de Joomla Gratuito Aprenda a administrar o melhor CMS Gratuito que existe

Procurando alguém capacitado para criar site em Joomla? Fale Conosco.

 

, ,

Subscribe

Inscreva-se em nossas redes sociais

One Response to “ACL Joomla sem mistérios”

  1. Bruno Simomura Says:

    Eu considero o Joomla muito poderoso e logo antes de lançar o meu blog, uma das minhas dúvidas foi fazer um portal em joomla ou um blog em WordPress, mas acabei por lançar um blog, devido a uma facilidade e flexibilidade que atendia as minhas expectativas.

    Abraços