Saltar al contenido

Drupal: ¿cómo puedo devolver una página de error 404 en una vista de nodo?

Hola usuario de nuestro sitio web, hallamos la respuesta a tu interrogante, continúa leyendo y la verás más abajo.

Solución:

El sistema de permisos de Drupal proporciona un control de permisos detallado para acciones de “crear”, “editar” y “eliminar” para cada tipo de contenido de nodo, pero la acción de visualización está cubierta por la opción de permiso general “Ver contenido publicado” que cubre todos los tipos de contenido.

Para denegar el acceso a usuarios anónimos cuando intentan ver un nodo de cierto tipo de contenido, debe incluir una función en un módulo personalizado que implemente hook_node_access():

/**
 * Implements hook_node_access().
 *
 * Disallow anonymous user to view nodes of type "EXAMPLE".
 */
function MYMODULE_node_access($node, $op, $account) 
  if (user_is_anonymous() && $op == 'view' && $node->type == 'EXAMPLE') 
    return NODE_ACCESS_DENY;
  

Debe reemplazar MI MÓDULO con el nombre del módulo que contiene esta función y EJEMPLO con el nombre del tipo de contenido al que desea denegar el acceso.

ACTUALIZAR: El código anterior de hecho devolvería la página 403 (Acceso denegado), lo siento por la confusión. El siguiente código devolverá la página 404 (Página no encontrada) (solo cuando el usuario intenta acceder al nodo de tipo de contenido “ejemplo” en el modo de vista “completo” (generalmente accediendo al nodo por la URL “nodo/NID]”:

/**
 * Implements hook_node_view().
 *
 * Disallow anonymous user to view nodes of type "EXAMPLE".
 */
function MYMODULE_node_view($node, $view_mode, $langcode) 
  if (user_is_anonymous() && $view_mode == 'full' && $node->type == 'EXAMPLE') 
    drupal_not_found();
    drupal_exit();
  

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *