Uma dos recursos mais poderosas do Joomla é a Listagem de Controle de Acesso (Access Control Lists - ACL). Com ela configura-se quem tem permissão para fazer o que no site, incluindo ler, criar, editar, apagar ou fazer login, entre outras coisas.

Muitos acham que ACL tem a ver somente com a área pública de um site. Por exemplo, quando eu entro no site, quais artigos que tenho à minha disposição? E se alguém se conecta ao site, eles vêem os mesmos artigos ou vêem outros?

No entanto, ACL também tem a ver com quem pode criar, editar e excluir conteúdo, quem pode publicar e despublicar conteúdo, quem pode entrar no front-end ou back-end do site e que pode fazer alterações em determinados componentes, módulos, e modelos.

Só porque se pode fazer, não significa que se deva fazer! A ACL é complexa e leva algum tempo para entender exatamente como funciona. Para muitos sites, talvez até a maioria deles, não será necessário nada além da configuração padrão do Joomla. No entanto, se você está desenvolvendo um projeto maior, uma boa configuração da ACL pode vir a calhar.

Exemplos onde é bom utilizar a ACL:

  • Um site de uma academia de ginástica, onde professores, alunos, funcionários e o público em geral veem conteúdos diferente;
  • Um intranet com muitos colaboradores, onde não se quer que os usuário mudem conteúdo uns dos outros;
  • Uma publicação online onde existem usuários que devem ser capazes de criar e editar conteúdo para o site, mas não podem necessariamente publicar conteúdo. Ou ainda tem-se dois ou mais grupos de usuários que precisam criar e editar conteúdos pertencentes a diferentes áreas do site.
  • Um site onde determinado usuário possa entrar no back-end do, acessar um componente específico e não tocar em mais nada.

A ACL também podem ser usada para construir uma interface de administrador mais simples, eliminando as áreas em que o cliente não precise ver ao fazer alterações no site. Um usuário pode acessar apenas categorias específicas de artigos (ou artigos específicos), componentes específicos (ou nenhum) e assim por diante. Via ACL, pode-se melhorar a usabilidade da área do administrador para o usuário.

ACL no Joomla: visão geral

A ACL no Joomla não é necessariamente hierárquica. Pode-se configurar grupos com quaisquer permissões que se deseja. Essas permissões são herdadas dos pais, no caso de grupos, mas elas não são herdadas no caso de níveis de acesso. No mínimo, todos os grupos de usuários são filhos do grupo Publico.

Há quatro aspectos para o sistema ACL no Joomla. Estes incluem o usuário, o grupo, as permissões do sistema e níveis de acesso. Tenho estas representados no diagrama a seguir para descrever seu relacionamento e vou ver cada uma em detalhe.

 

Usuário

Esta é o mais fácil de entender - é você ou alguém visitando o site. Um usuário não precisa ter uma conta para ser considerado um usuário do site. Este 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 sistema diretamente aos usuários, estas são atribuídos ao grupo.

Permissões do sistema

Permissões do sistema são atribuídas ao grupo, não a usuários individuais. Se quiser permissões de sistema específicas para um único usuário, você precisa criar um grupo para este único usuário.

Permissões do sistema incluem:

  • Login do site: a capacidade de fazer login no site pela área pública (front-end);
  • Login de administrador: a capacidade de entrar no administrador (back-end) do site;
  • Acesso offline: quando o site é colocado em offline (em Configuração Global > Site), isso controla quem pode fazer login para ver o site;
  • Super Admin: privilégios administrativos(root), como a alteração de Configuração Global. Privilégios de Super Administrador substituem todas as outras configurações de ACL, dando a este grupo de usuários acesso completo a todos as funcionalidade do Joomla;
  • Componente de acesso: capacidade de ver áreas específicas no back-end (como menus, gerenciamento de artigos, gerenciamento de mídias, componentes, etc);
  • Criar: capacidade de criar novos conteúdos;
  • Apagar: capacidade de apagar (colocar no lixo) conteúdo;
  • Editar: capacidade de editar o conteúdo existente, que não é necessariamente do mesmo usuário;
  • Editar estado: a capacidade de alterar o estado entre publicado, não publicado, lixeira e arquivado;
  • Editar próprio: a capacidade do usuário editar seu próprio conteúdo, mas não o conteúdo dos outros.

As permissões do sistema são definidas em Site > Configuração Global, e em seguida clicando no link Permissões.

Permissões do sistema na Configuração Global

 [PRINT PERMISSÕES]

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

  • Permitir algo é explicitamente autorizar ou permitir algo para um grupo específico.
  • Negar algo é explicitamente negar ou não permitirpara algo para um grupo específico.
  • Herdado é algo recebido de um grupo superior. Herdado não está disponível como uma opção para o grupo Público.
  • Não definido significa que a permissão ainda não foi configurada. Não definido somente está disponível para o grupo Público e apenas na Configuração Global.
  • Uma explicação completa de permissões de cada grupo de usuários é dada mais abaixo.

Uma nota sobre permissões de sistema

Quando as permissões do sistema são definidas ao nível da Configuração Global, são utilizadas em todo o site e por todas as áreas do site. Por exemplo, um Autor tem a permissão Criar atribuída globalmente. Este Autor pode criar um artigo em qualquer categoria no site. A permissão Criar também significa que podem criar uma weblink novo a partir da área pública do site, se o componente weblink está em uso. Você pode querer planejar com cuidado sobre onde as permissões são atribuídas no Joomla. Você não tem que definir a permissão Criar em Configuração Global se você quiser um grupo de usuários a ser capaz de criar artigos e categorias. Essa permissão também pode ser atribuida dentro das opções do Gerenciador de Artigos. Irei me aprofundar sobre como atribuir permissões em artigos posteriores.

Tudo sobre Negar

Você pode ser tentado a definir todos esses dropdowns especificamente como Permitir ou Negar para facilitar a leitura. No entanto, gostaria de recomendar que não faça isso.

Se Negar for definido nas permissões, mesmo que você defina um Permitir para um nível maior de grupo de usuário, o Negar do nível mais baixo seria herdado e poderia substituir o Permitir.

Por exemplo, se você definir as dropdowns do grupo Público como Negar para todos, não faz sentido nenhum ter outros grupos de nível maior! Todo mundo ia ser negado a 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) compartilham as mesmas permissões. Usando os grupos do Joomla 1.5 como exemplo, o grupo Editor tem o direito de entrar pela área pública do site, criar novos artigos, editá-los no site, publicá-los ou despublicá-los. Qualquer um do grupo Editor tem as mesmas permissões para fazer as mesmas coisas.

A partir da versão 1.6, um usuário pode estar atribuído a vários grupos. Um usuário pode estar no grupo Editor, assim como no grupo Administrador, por exemplo.

Pode-se criar seus próprios grupos e atribuir-lhes o seu próprio conjunto de permissões do sistema. Estas são herdadas entre os grupos.

Um grupo pode ser criado por duas razões diferentes. Uma delas seria para visualizar o conteúdo na área pública do site. (Grupos de usuários são atribuídos aos níveis de acesso que permitem ver o conteúdo na área pública do site.) A outra seria especificar qual conteúdo que pode ser criado, editado, excluído, publicado, despublicado ou geridos por esse grupo.

Ao visitar o site, o usuário é considerado como pertencente ao grupo Público.

O grupo Público não pode ser excluído, mas todos os outros grupos podem. No entanto,  recomendo que você os mantenha, porque eles lhe dão um bom modelo de como funcionam as permissões herdadas.

Grupos padrão

Por padrão, Joomla 1.6 e posteriores vem configurado com os mesmos grupos que aparecem no Joomla 1.5. Os grupos e suas permissões de sistema são as seguintes:

  • Public (Público): Público pode ver o conteúdo na área pública do site que não necessita de login para ser vista. Para o grupo Público, por padrão, todos os valores são definidos como Não definido. Como se poderia esperar, os usuários públicos não estão autorizados a logar pela área pública do site, entre outras permissões. Eles não são explicitamente negados a fazer isso, no entanto - são negados porque não existe nenhuma permissão explícita.
  • Registered (Registrado): usuários Registrados podem entrar pela área público do site apenas. São "filhos" do grupo Público. A eles são atribuídos a permissão de login do Site.
  • Author (Autor): Autores podem criar seu próprio conteúdo por meio das permissões Criar e Editar Próprios. Autores são "filhos" do grupo Registrado.  Herdam a permissão para Acesso do Site de usuários Registrados.
  • Editor (Revisor): Os Revisores podem editar qualquer conteúdo do site através da permissão Editar. Os Revisor são "filhos" do grupo Autor. Também herdam as permissões de Criar e Editar Próprios de Autores e a permissão de Acesso do Site de usuários Registrados.
  • Publisher (Editor): Editores podem publicar, despublicar, arquivar ou colocar no lixo conteúdo através da permissão Editar Estado. Os editores são "filhos" do grupo Revisor. Também herdam a permissão Editar de Revisor, o Criar e Editar Próprios  de Autores e a permissão de Acesso do Site de usuários Registrados.
  • Manager (Gerente): Os gerentes são "filhos" do grupo Público, então todas as permissões previamente atribuídas a Registrados, Autor, Revisor, Editor não se aplicam a este grupo. Elas devem ser transferidas individualmente. Isso inclui Acesso do Site, Acesso da Admin, Acesso Offline, Criar, Apagar, Editar, Editar Estado e Editar Próprio.
  • Administrator (Administrador): administradores são capazes de editar e configurar as extensões através da permissão Componente de Acesso. Administradores são "filhos" do grupo Gerente, por isso herdam deste as permissões Acesso do Site, Acesso da Admin, Acesso Offline, Criar, Apagar, Editar, Editar Estado e Editar Próprio.
  • Super Users (Super Usuários): Super Usuários, anteriormente conhecidos como Super Administradores, são capazes de alterar a Configuração Global, bem como outras habilidades através da permissão Super Admin. Super Usuários também são "filhos" de Público. No entanto, eles têm apenas um conjunto de permissão: a permissão Super Admin que substitui todos as outras, de modo que o Super Usuário é capaz de realizar todas as funções.
    Os grupos padrão e suas permissões aparecem na Configuração Global (em Site > Configuração Global > Permissões).

Nível de Acesso

Os níveis de acesso referem-se a quem pode ver o conteúdo na área pública do site. Essencialmente, isto equivale a permissão de leitura para qualquer um 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 estar logado como autor ou acima para ver o conteúdo).

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

Os níveis de acesso não herdam permissões. Se um artigo está configurado para ser visto pelos editores apenas através de um nível de acesso personalizado, nem os Super Usuáros podem ver esse artigo. Deve-se atribuir aos super usuários fazerem parte do grupo Editor, a fim de que possam ver este artigo na área pública do site ou você deve atribuir a Super Usuários e Editores o mesmo nível de acesso para ver o conteúdo. De qualquer forma, como um Super Usuário você é capaz de editar este artigo no back-end.

O que vem a seguir?

Escreverei uma série de estudos de caso que você poderá acompanhar para por em ação os princípios acima. Os exemplos incluem:

  • Diferentes usuários vendo conteúdo diferente na área pública do síte;
  • Um administrador simples despojado para facilitar a administração do site pelo cliente

Este artigo é uma adaptação de um artigo de Jen Kramer para a Joomla! Community Magazine.

Pin It

Comentários fornecidos por CComment

Pesquisar o blog