Manejar los permisos mediante la función hook_perm() en Drupal

RECU-0565 (Recurso Ejemplo)

Descripción

Es recomendable proteger los accesos a las funciones críticas de los módulos mediante permisos.

Ejemplos

La función hook_perm() permite a todos los módulos añadir permisos para su administración.

function blog_perm() {
  return array(‘create blog entries’, ‘delete own blog entries’, ‘delete
  any blog entry’, ‘edit own blog entries’, ‘edit any blog entry’);
}

Crear un nuevo permiso para el módulo es tan simple como añadir una nueva entrada en el array que se retorna. Un ejemplo de la implementación en el modulo node sería el siguiente:

function node_perm() {
$perms = array(‘administer content types’, ‘administer nodes’, ‘access
content’, ‘view revisions’, ‘revert revisions’, ‘delete revisions’);
foreach (node_get_types() as $type) {
if ($type->module == ‘node’) {
$name = check_plain($type->type);
$perms[] = ‘create ’. $name .‘ content’;
$perms[] = ‘delete own ’. $name .‘ content’;
$perms[] = ‘delete any ’. $name .‘ content’;
$perms[] = ‘edit own ’. $name .‘ content’;
$perms[] = ‘edit any ’. $name .‘ content’;
}
}
return $perms;
}

Contenidos relacionados

Pautas
Área: Desarrollo » Seguridad » Control de Acceso y Autenticación
Código Título Tipo Carácter
LIBP-0254 Control de acceso Libro de pautas Directriz Obligatoria