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