Documentación · Resolución de problemas

Errores de permisos

Este documento cubre los errores de acceso y capacidades que pueden impedir que los administradores u otros usuarios accedan a las funciones del plugin ADP Car Market Hub, importen vehículos o gestionen listados.

Cuándo utilizar este documento

Lea este documento cuando:

  • Un usuario reciba un mensaje de "Permiso denegado" o "No tienes permiso para realizar esta acción" al utilizar la administración del plugin.
  • Un usuario no pueda ver el menú de administración del plugin o pestañas de administración específicas.
  • Un usuario no pueda editar, publicar o eliminar entradas de vehículos (as24ci_car).
  • Aparezcan errores relacionados con capacidades en el registro del plugin después de una actualización o un cambio de rol.

Descripción general

El plugin utiliza dos capas de acceso distintas:

  1. Capacidad de gestión del plugin (manage_as24_imports): controla el acceso a la interfaz de administración del plugin (Ajustes, Importador, Herramientas, Logs, Market Hub, PDF Manager, etc.) y a todas las acciones AJAX administrativas. Esta capacidad se otorga exclusivamente al rol integrado administrator.

  2. Capacidades de Custom Post Type (CPT): un conjunto de capacidades de entrada WordPress para el tipo de entrada as24ci_car que controlan quién puede leer, crear, editar, publicar y eliminar entradas de vehículos. Estas capacidades se otorgan tanto al rol administrator como al rol personalizado AS24 Editor creado por el plugin.

Los Editores, Autores y Suscriptores no tienen acceso a ninguna de las dos capas por defecto. El rol integrado editor de WordPress tampoco recibe estas capacidades.

Referencia de roles y capacidades

Capacidad de gestión del plugin

CapacidadOtorgada aControla
manage_as24_importsAdministradorTodas las páginas de administración del plugin, ajustes, activadores de importación, acceso a logs, acciones AJAX, exportación de diagnósticos

Cada controlador AJAX de administración y controlador POST de administración en el plugin verifica current_user_can('manage_as24_imports') antes de ejecutarse. Cualquier usuario sin esta capacidad recibe una respuesta 403 Permission denied.

Capacidades de CPT

Las siguientes capacidades se asignan tanto al rol administrator como al as24ci_editor:

CapacidadDescripción
read_as24ci_carLeer una única entrada de vehículo
edit_as24ci_carEditar una única entrada de vehículo
delete_as24ci_carEliminar una única entrada de vehículo
read_private_as24ci_carsLeer entradas de vehículos privadas
edit_as24ci_carsEditar entradas de vehículos (acceso a la tabla de listado)
edit_others_as24ci_carsEditar entradas de vehículos de otros usuarios
edit_published_as24ci_carsEditar entradas de vehículos publicadas
publish_as24ci_carsPublicar entradas de vehículos
delete_as24ci_carsEliminar entradas de vehículos
delete_others_as24ci_carsEliminar entradas de vehículos de otros usuarios
delete_published_as24ci_carsEliminar entradas de vehículos publicadas

Rol personalizado: AS24 Editor (as24ci_editor)

El plugin crea un rol personalizado WordPress llamado AS24 Editor (slug: as24ci_editor) durante la activación. Este rol otorga todas las capacidades de CPT enumeradas anteriormente, pero no otorga manage_as24_imports. Los AS24 Editors pueden gestionar entradas de vehículos desde la tabla de listado de entradas estándar, pero no pueden acceder a las páginas de administración del plugin, importar ni cambiar los ajustes.

Pasos de diagnóstico

Paso 1: Confirmar que se han asignado las capacidades

Las capacidades se asignan durante la activación del plugin y se actualizan a través de un sistema de migración interno. Si un usuario no puede acceder a la administración del plugin, verifique:

  1. Inicie sesión como un Administrador de WordPress.
  2. Vaya a la administración del plugin y abra la pestaña System & Help.
  3. Compruebe la salida del estado del sistema para ver si hay advertencias relacionadas con las capacidades.

Si las capacidades no se asignaron (por ejemplo, en una instalación multisitio donde el plugin se activó para toda la red pero nunca se ejecutó en el contexto de administración), proceda al Paso 2.

Paso 2: Volver a activar la migración de capacidades

La asignación de capacidades se ejecuta automáticamente en cada carga de página de administración a través de plugins_loaded, pero solo una vez por versión de capacidad y solo para usuarios que tienen manage_options. Para forzar su reejecución:

  1. Inicie sesión como un Administrador de WordPress.
  2. Desactive el plugin desde Plugins.
  3. Reactive el plugin. El gancho de activación llama directamente a ensure_roles_and_caps().
  4. Pruebe si el usuario afectado ahora tiene el acceso correcto.

Paso 3: Comprobar el rol del usuario

  1. Vaya a Usuarios en la administración de WordPress.
  2. Abra el perfil del usuario afectado.
  3. Confirme que el rol del usuario esté configurado como Administrador (para acceso completo a la gestión del plugin) o AS24 Editor (solo para la gestión de CPT).
  4. Si el usuario tiene un rol personalizado de un plugin de terceros, es posible que ese rol no incluya las capacidades requeridas. En ese caso, un desarrollador debe añadir las capacidades manualmente o utilizar un plugin de gestión de capacidades.

Paso 4: Comprobar si hay un plugin de capacidades en conflicto

Si un plugin de gestión de capacidades (como Members, User Role Editor o PublishPress Capabilities) está activo:

  1. Abra la interfaz del plugin de capacidades.
  2. Verifique que la capacidad manage_as24_imports esté asignada al rol administrator.
  3. Verifique que las capacidades de CPT enumeradas anteriormente estén asignadas tanto a administrator como a as24ci_editor.
  4. Guarde los cambios y vuelva a probar.

Paso 5: Consideraciones para multisitio

En una instalación multisitio de WordPress:

  • Las capacidades del plugin se almacenan en la opción wp_user_roles de la tabla de la base de datos de cada sub-sitio.
  • Si el plugin está activado para la red, la migración de capacidades se ejecuta en el contexto del sitio actual solo cuando un administrador visita la administración.
  • Un superadministrador tiene acceso implícito a todos los sitios, pero los administradores habituales de sitios individuales deben tener la capacidad manage_as24_imports en su sitio específico.

Verifique este comportamiento en la versión actual del plugin antes de realizar publicaciones para despliegues multisitio.

Notas operativas

  • Las asignaciones de capacidades se almacenan en la opción de roles de WordPress (wp_user_roles). Restablecer o reemplazar esta opción (por ejemplo, mediante una migración de sitio o un plugin de seguridad que regenera roles) eliminará las capacidades personalizadas del plugin. Reactivar el plugin las restaurará.
  • El rol as24ci_editor se crea una vez al activar. Si se elimina (por ejemplo, mediante un plugin de gestión de roles o un restablecimiento de la base de datos), al reactivar el plugin se volverá a crear.
  • Todos los endpoints AJAX de administración del plugin requieren tanto la capacidad correcta como un nonce de WordPress válido. Una respuesta de "Permiso denegado" a una solicitud AJAX puede indicar una capacidad faltante o un nonce caducado (por ejemplo, después de una sesión larga o una página almacenada en caché sin regeneración de nonce).
  • La función maybe_upgrade_caps() se ejecuta en el gancho plugins_loaded en el contexto de administración. Comprueba un número de versión almacenado y solo se ejecuta cuando aún no se ha aplicado una migración de capacidades. Después de ejecutarse, actualiza la versión almacenada para que no se vuelva a ejecutar hasta que se lance la siguiente versión de migración.

Resolución de problemas

SíntomaCausa probableComprobación
"Permiso denegado" en cualquier acción AJAX del pluginEl usuario carece de manage_as24_importsConfirmar que el usuario es Administrador; reactivar el plugin si es necesario
El menú del plugin no es visibleEl usuario carece de manage_as24_importsAsignar el rol de Administrador o reactivar el plugin
AS24 Editor no puede ver la tabla de listado de vehículosFaltan capacidades de CPT en el rol as24ci_editorReactivar el plugin; comprobar el rol en el plugin de capacidades
AS24 Editor puede ver los vehículos pero no la administración del pluginComportamiento esperado: los AS24 Editors no reciben manage_as24_importsNinguna acción requerida; esto es por diseño
"No tienes permiso" al guardar en PDF ManagerEl usuario carece de manage_as24_importsConfirmar que el rol es Administrador
Las entradas de vehículos no aparecen en el listado de entradas de WPFaltan capacidades de CPT en el rol del usuarioReactivar el plugin o añadir las capacidades manualmente
Capacidades perdidas tras migración o clonación de sitioSe restablecieron las opciones de rolDesactivar y reactivar el plugin

Documentos relacionados