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:
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 integradoadministrator.Capacidades de Custom Post Type (CPT): un conjunto de capacidades de entrada WordPress para el tipo de entrada
as24ci_carque controlan quién puede leer, crear, editar, publicar y eliminar entradas de vehículos. Estas capacidades se otorgan tanto al roladministratorcomo al rol personalizadoAS24 Editorcreado 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
| Capacidad | Otorgada a | Controla |
|---|---|---|
manage_as24_imports | Administrador | Todas 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:
| Capacidad | Descripción |
|---|---|
read_as24ci_car | Leer una única entrada de vehículo |
edit_as24ci_car | Editar una única entrada de vehículo |
delete_as24ci_car | Eliminar una única entrada de vehículo |
read_private_as24ci_cars | Leer entradas de vehículos privadas |
edit_as24ci_cars | Editar entradas de vehículos (acceso a la tabla de listado) |
edit_others_as24ci_cars | Editar entradas de vehículos de otros usuarios |
edit_published_as24ci_cars | Editar entradas de vehículos publicadas |
publish_as24ci_cars | Publicar entradas de vehículos |
delete_as24ci_cars | Eliminar entradas de vehículos |
delete_others_as24ci_cars | Eliminar entradas de vehículos de otros usuarios |
delete_published_as24ci_cars | Eliminar 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:
- Inicie sesión como un Administrador de WordPress.
- Vaya a la administración del plugin y abra la pestaña System & Help.
- 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:
- Inicie sesión como un Administrador de WordPress.
- Desactive el plugin desde Plugins.
- Reactive el plugin. El gancho de activación llama directamente a
ensure_roles_and_caps(). - Pruebe si el usuario afectado ahora tiene el acceso correcto.
Paso 3: Comprobar el rol del usuario
- Vaya a Usuarios en la administración de WordPress.
- Abra el perfil del usuario afectado.
- 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).
- 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:
- Abra la interfaz del plugin de capacidades.
- Verifique que la capacidad
manage_as24_importsesté asignada al roladministrator. - Verifique que las capacidades de CPT enumeradas anteriormente estén asignadas tanto a
administratorcomo aas24ci_editor. - 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_rolesde 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_importsen 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_editorse 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 ganchoplugins_loadeden 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íntoma | Causa probable | Comprobación |
|---|---|---|
| "Permiso denegado" en cualquier acción AJAX del plugin | El usuario carece de manage_as24_imports | Confirmar que el usuario es Administrador; reactivar el plugin si es necesario |
| El menú del plugin no es visible | El usuario carece de manage_as24_imports | Asignar el rol de Administrador o reactivar el plugin |
| AS24 Editor no puede ver la tabla de listado de vehículos | Faltan capacidades de CPT en el rol as24ci_editor | Reactivar el plugin; comprobar el rol en el plugin de capacidades |
| AS24 Editor puede ver los vehículos pero no la administración del plugin | Comportamiento esperado: los AS24 Editors no reciben manage_as24_imports | Ninguna acción requerida; esto es por diseño |
| "No tienes permiso" al guardar en PDF Manager | El usuario carece de manage_as24_imports | Confirmar que el rol es Administrador |
| Las entradas de vehículos no aparecen en el listado de entradas de WP | Faltan capacidades de CPT en el rol del usuario | Reactivar el plugin o añadir las capacidades manualmente |
| Capacidades perdidas tras migración o clonación de sitio | Se restablecieron las opciones de rol | Desactivar y reactivar el plugin |