Sistema de permissão baseado em regras

O sistema de permissão do Drupal é bastante granular e também seguro, as permissões são atribuídas aos papéis que os usuários desempenham, e um mesmo usuário pode desempenhar mais de um papel no sistema.
Assim como os módulos, o sistema de permissão também utiliza os hooks, específicamente o hook_perm(), uma função responsável por definir regras de acesso, quando definida as regras, o sistema gera automaticamente uma entrada no gerenciador de permissão onde você pode atribuir ou não a permissão para determinado papel de usuário.


function page_example_perm() {
return array('access foo', 'access baz');
}

O código acima é um exemplo do uso do hook perm, ao utilizar a nomenclatura modulo+ _perm(), será definida uma regra para utilizar o módulo page_example, esta regra será automaticamente adicionada no sistema de permissão e estará disponível no gerenciador de permissão. Outra utilização comum do hook perm é em itens de menu, o controle de acesso a determinada página é feito através do endereço da página,


$items['example'] = array(
'title' => 'Exemplo',
'path' => 'teste',
'page callback' => 'page_example_foo',
'access arguments' => array('acesso exemplo'),
);

O código acima é responsável por criar um item no menu com o título Exemplo, o endereço da página é seusite.com.br/?q=teste ou seusite.com.br/teste caso esteja habilitada a configuração de Clean URL, a permissão de acesso dessa página está definida para todos os usuários que tiverem exercendo o papel que contém a credencial “acesso exemplo” definida através da página de administração.

Comentários

Dúvida

Basta definir nos items ou no page_example_perm() ou tem que ser nos 2?

Já agora no 'access arguments' => array('acesso exemplo') este acesso exemplo é o que?

E no array('access foo', 'access baz') estes são access são o que?

Abraço