Override Node Options

Proporciona permisos granulares para las opciones de publicación de nodos y los campos de información de autoría, permitiendo a usuarios no administradores controlar opciones específicas de nodos.

override_node_options
38,054 sites
88
drupal.org

Install

Drupal 11, 10, 9 v8.x-2.9
composer require 'drupal/override_node_options:8.x-2.9'
Drupal 8 v8.x-2.6
composer require 'drupal/override_node_options:8.x-2.6'

Overview

El módulo Override Node Options extiende el sistema de permisos de Drupal para proporcionar control de acceso detallado para los campos dentro de los fieldsets "Información de autoría" y "Opciones de publicación" en los formularios de creación/edición de nodos. Por defecto, Drupal restringe el acceso a estas opciones solo a usuarios con el permiso "administer nodes", que otorga amplias capacidades administrativas.

Este módulo resuelve el problema común donde los constructores de sitios necesitan dar a los editores control limitado sobre opciones específicas de nodos (como el estado de publicación o configuraciones de sticky) sin otorgar acceso completo a la administración de nodos. Crea un permiso dedicado para cada opción de nodo, que puede asignarse a roles de forma independiente.

El módulo soporta dos modos de permisos: permisos generales que aplican a todos los tipos de contenido, y permisos específicos por tipo de contenido para un control más granular. Ambos modos pueden habilitarse simultáneamente, permitiendo configuraciones flexibles de permisos como "todos los editores pueden establecer el estado sticky en cualquier contenido" combinado con "solo los editores de blog pueden cambiar el autor en las publicaciones de blog."

Features

  • Permisos granulares para el campo de estado Publicado - controla quién puede publicar/despublicar contenido sin acceso completo de administrador
  • Permisos granulares para la opción Promover a la página principal - permite a roles específicos destacar contenido
  • Permisos granulares para la opción Fijar en la parte superior de las listas - delega configuraciones de sticky a editores de contenido
  • Permisos granulares para la casilla Crear nueva revisión - controla quién puede decidir si crear revisiones
  • Permisos granulares para el campo de mensaje de registro de revisión - permite a editores documentar cambios
  • Permisos granulares para el campo Creado por - controla quién puede cambiar la autoría del contenido
  • Permisos granulares para el campo de fecha Creado en - controla quién puede modificar las fechas de creación
  • Soporte para permisos generales que aplican a todos los tipos de contenido a la vez
  • Soporte para permisos específicos por tipo de contenido para control detallado por bundle
  • Compatible con Views Bulk Operations para publicar/despublicar contenido en masa
  • Arquitectura limpia con sistema de anulación de acceso basado en interfaces

Use Cases

Permitir a editores publicar contenido sin acceso de administrador

Un escenario común donde los editores de contenido necesitan publicar su propio contenido pero no deberían tener el permiso completo 'administer nodes'. Habilita el módulo, luego asigna 'override all published option' (o variantes específicas por tipo de contenido) al rol Editor. Los editores ahora pueden alternar la casilla Publicado sin acceso a otras funciones administrativas.

Delegar decisiones de sticky/promover a gestores de contenido

El sitio tiene gestores de contenido que deben decidir qué contenido aparece en la página principal o está fijado. Asigna los permisos 'override all promote to front page option' y 'override all sticky option' al rol Gestor de Contenido. Ahora pueden destacar contenido sin acceso administrativo más amplio.

Controlar la creación de revisiones por tipo de contenido

Diferentes tipos de contenido tienen diferentes requisitos de revisión. Para contenido de tipo Artículo que requiere seguimiento estricto de revisiones, no otorgues permisos de anulación de revisión a los editores. Para contenido simple de tipo Página, otorga 'override page revision option' para que los editores puedan decidir si crear revisiones. Esto proporciona flexibilidad mientras mantiene pistas de auditoría donde sea necesario.

Permitir publicación/despublicación masiva desde la vista general de contenido

Cuando se combina con la página de vista general de contenido, los usuarios con los permisos apropiados de opción de publicación pueden usar operaciones masivas para publicar o despublicar múltiples nodos a la vez. Esto está probado en el BulkFormTest del módulo y funciona con Views Bulk Operations.

Permitir a roles específicos cambiar la autoría del contenido

En algunos flujos de trabajo, una persona crea contenido borrador que otra persona será acreditada como autor. Otorga 'override [type] authored by option' para permitir cambiar el campo Creado por. Esto es útil para escenarios de escritura fantasma o cuando se migra la atribución de contenido.

Antedatar contenido para artículos importados o migrados

Al importar contenido o reconstruir registros históricos, los editores pueden necesitar establecer fechas de creación precisas. Otorga 'override [type] authored on option' para permitir la modificación del campo de fecha Creado en.

Tips

  • Tanto los permisos generales como los específicos pueden habilitarse simultáneamente. Cuando un usuario tiene tanto 'override all published option' como 'override article published option', cualquiera de los permisos otorga acceso - funcionan con lógica OR.
  • Los permisos se generan dinámicamente basándose en los tipos de contenido existentes. Después de crear un nuevo tipo de contenido, los permisos específicos para él están inmediatamente disponibles sin limpiar cachés.
  • Los usuarios con permiso 'administer nodes' evitan todas las verificaciones de anulación y tienen acceso completo a todas las opciones de nodos. Este módulo es específicamente para usuarios que NO deberían tener ese permiso.
  • El módulo solo afecta los formularios de creación/edición de nodos. No crea permisos para otros tipos de entidad ni afecta el acceso a los nodos en sí (ver/editar/eliminar).
  • Al usar Views Bulk Operations, asegúrate de que los usuarios tengan los permisos apropiados para las acciones masivas que necesitan realizar. El permiso de opción de publicación permite tanto las acciones masivas 'Publicar' como 'Despublicar'.

Technical Details

Admin Pages 1
Configuración de Override Node Options /admin/config/content/override-node-options

Configura qué tipos de permisos debe generar el módulo. Puedes habilitar permisos generales (que aplican a todos los tipos de contenido) y/o permisos específicos por tipo de contenido (un conjunto por tipo de contenido). Los cambios surten efecto inmediatamente y afectan qué permisos están disponibles en la página de Permisos.

Permissions 14
Anular todas las opciones de publicación.

Permite al usuario cambiar el campo de estado Publicado en formularios de nodos para todos los tipos de contenido. Requiere que los permisos generales estén habilitados en la configuración del módulo.

Anular todas las opciones de promover a página principal.

Permite al usuario cambiar la configuración Promover a la página principal en formularios de nodos para todos los tipos de contenido. Requiere que los permisos generales estén habilitados en la configuración del módulo.

Anular todas las opciones de sticky.

Permite al usuario cambiar la configuración Fijar en la parte superior de las listas en formularios de nodos para todos los tipos de contenido. Requiere que los permisos generales estén habilitados en la configuración del módulo.

Anular todas las opciones de revisión.

Permite al usuario cambiar la casilla Crear nueva revisión en formularios de nodos para todos los tipos de contenido. Requiere que los permisos generales estén habilitados en la configuración del módulo.

Introducir entradas de registro de revisión para todos los tipos de nodo.

Permite al usuario introducir mensajes de registro de revisión en formularios de nodos para todos los tipos de contenido. Requiere que los permisos generales estén habilitados en la configuración del módulo.

Anular todas las opciones de autoría.

Permite al usuario cambiar el campo Creado por (autor del contenido) en formularios de nodos para todos los tipos de contenido. Requiere que los permisos generales estén habilitados en la configuración del módulo.

Anular todas las opciones de fecha de creación.

Permite al usuario cambiar el campo de fecha Creado en en formularios de nodos para todos los tipos de contenido. Requiere que los permisos generales estén habilitados en la configuración del módulo.

Anular opción de publicación de [Tipo de Contenido].

Permite al usuario cambiar el campo de estado Publicado en formularios de nodos para un tipo de contenido específico. Se genera un permiso por tipo de contenido. Requiere que los permisos específicos estén habilitados en la configuración del módulo.

Anular opción de promover a página principal de [Tipo de Contenido].

Permite al usuario cambiar la configuración Promover a la página principal en formularios de nodos para un tipo de contenido específico. Se genera un permiso por tipo de contenido. Requiere que los permisos específicos estén habilitados en la configuración del módulo.

Anular opción sticky de [Tipo de Contenido].

Permite al usuario cambiar la configuración Fijar en la parte superior de las listas en formularios de nodos para un tipo de contenido específico. Se genera un permiso por tipo de contenido. Requiere que los permisos específicos estén habilitados en la configuración del módulo.

Anular opción de revisión de [Tipo de Contenido].

Permite al usuario controlar la casilla Crear nueva revisión en formularios de nodos para un tipo de contenido específico. Se genera un permiso por tipo de contenido. Requiere que los permisos específicos estén habilitados en la configuración del módulo.

Introducir entrada de registro de revisión de [Tipo de Contenido].

Permite al usuario introducir mensajes de registro de revisión en formularios de nodos para un tipo de contenido específico. Se genera un permiso por tipo de contenido. Requiere que los permisos específicos estén habilitados en la configuración del módulo.

Anular opción de fecha de creación de [Tipo de Contenido].

Permite al usuario cambiar el campo de fecha Creado en en formularios de nodos para un tipo de contenido específico. Se genera un permiso por tipo de contenido. Requiere que los permisos específicos estén habilitados en la configuración del módulo.

Anular opción de autoría de [Tipo de Contenido].

Permite al usuario cambiar el campo Creado por (autor del contenido) en formularios de nodos para un tipo de contenido específico. Se genera un permiso por tipo de contenido. Requiere que los permisos específicos estén habilitados en la configuración del módulo.

Hooks 2
hook_form_alter

Se usa para otorgar acceso a la casilla de revisión en formularios de nodos basándose en los permisos del usuario

hook_entity_field_access_alter

Se usa para anular el acceso a nivel de campo para campos de nodos como status, promote, sticky, uid, created y revision_log

Troubleshooting 4
Los permisos no aparecen en la página de Permisos

Verifica la configuración del módulo en /admin/config/content/override-node-options. Asegúrate de que las casillas 'General permissions' o 'Specific permissions' (o ambas) estén habilitadas. Limpia la caché del sitio después de cambiar estas configuraciones.

El usuario tiene el permiso pero aún no puede ver el campo en el formulario de nodo

Verifica que el usuario NO tenga el permiso 'administer nodes', ya que las verificaciones de acceso del módulo solo aplican cuando ese permiso está ausente. También verifica que el campo no esté oculto por la configuración del modo de visualización.

Faltan permisos específicos por tipo de contenido para un tipo de contenido

Asegúrate de que 'Specific permissions' esté habilitado en la configuración del módulo. Los permisos se generan dinámicamente desde NodeType::loadMultiple(), por lo que deberían aparecer para todos los tipos de contenido existentes. Intenta limpiar cachés con drush cr.

Las operaciones masivas fallan con el mensaje 'No access to execute'

Asegúrate de que el usuario tenga el permiso de anulación apropiado (p.ej., 'override article published option' para despublicar artículos). El módulo se integra con las verificaciones de acceso de entidad usadas por las operaciones masivas.

Security Notes 3
  • Este módulo sigue el sistema de permisos de Drupal y usa AccessResult para todas las decisiones de acceso, asegurando una correcta capacidad de caché y seguridad.
  • Las verificaciones de acceso solo afectan a usuarios que NO tienen el permiso 'administer nodes'. Los usuarios con ese permiso tienen acceso completo independientemente de los permisos de anulación.
  • El módulo está cubierto por la política de Avisos de Seguridad de Drupal (cobertura de seguridad: cubierto), indicando que ha sido revisado para mejores prácticas de seguridad.