Skip to content

Drupal criando permissões para seus módulos hook_perm()

by Vinícius Krolow on dezembro 15th, 2008

Criar permissões no drupal, para seus módulos é simples, basta implementar a função hook_perm(), e utilizar depois nos items do menu, ou algumas funções do drupal que nos ajuda na tarefa.

Implementando o hook_perm():

1
2
3
4
function meumodulo_perm() {
return array('meu modulo access', 'meu modulo view all'); //Criamos duas permissões, "meu modulo access" e "meu modulo view all"
 
}

Com isso já criamos 2 permissões, para usar agora temos algumas opções, no hook_menu do último post conhecemos o parâmetro dos items o ‘access arguments’, com ele é possível passar 1 array, com as permissões para acessar determinado item, vamos a um exemplo:

1
2
3
4
5
6
7
8
9
10
    $items['admin/novo_item/delete'] = array(
        'title' => 'Delete Titulo', //Título que vai aparecer
        'description' => 'A descrição de nosso Item', //Descrição de nosso Item
        'page callback' => 'minhafuncao_page', //A função que iremos chamar
        'page arguments' => array('edit'), //Parametros que desejamos passar para nossa função
        'file' => 'meumodulo.module', //O arquivo onde está sua função
        'access arguments' => array('meu modulo access'), //Definimos a permissão de acesso ao Item
        'type' => MENU_CALLBACK, //Definimos que o item vai ser acessado apenas por URL ou seja por links na página não no menu
 
    );

Acima definimos que para acessar o delete de 1 item, temos que ter a permissão meu “modulo access”.

Algumas outras funções que podem nos ajudar no desenvolvimento, para restringir acessos são:

  • user_access()
    • Checa se o usuário tem acesso a determinada função, como parâmetros recebe uma string com as permissões entre vírgulas, e pode receber também o id do usuário, porém sendo o segundo não obrigatório, caso não passado a função pega o usuário ativo no momento.
  • drupal_access_denied()

    • Gera uma página de erro 403, indicando assim que o usuário não está, habilitado para acesso a URL, em conjunto com a user_access(), onde verificamos se o usuário tem acesso, é uma boa maneira de indicar que o usuário não tem acesso a determina “feature”.

Existem algumas outras funções, que podem ajudar quanto as permissões, assim como módulos, vale dar uma olhada na documentação do drupal, assim como, nos projetos.

From → drupal, php, programação, web

No comments yet

Leave a Reply

Note: XHTML is allowed. Your email address will never be published.

Subscribe to this comment feed via RSS