Documentación · Privacidad, seguridad y cumplimiento

Control de acceso y capacidades

Este documento describe cómo el plugin ADP Car Market Hub utiliza los roles y capacidades de WordPress para controlar el acceso a sus funciones de administración y a los tipos de contenido personalizados (CPT) que registra. Es una referencia para administradores del sitio y gestores de concesionarios que necesitan otorgar el nivel de acceso adecuado a los usuarios internos.

Cuándo usar este documento

Use este documento cuando necesite:

  • Decidir qué rol o capacidad de WordPress otorgar a un compañero que gestiona los listados de vehículos o los ajustes del plugin.
  • Auditar quién tiene acceso a las páginas de administración del plugin y a los datos de los leads.
  • Integrar el plugin con un plugin de gestión de roles o un fragmento de código personalizado que mapee capacidades.
  • Solucionar errores de tipo "no tiene permiso" en la administración del plugin.

Descripción general

El plugin añade dos conjuntos de capacidades sobre el sistema de roles estándar de WordPress:

  1. Una única capacidad de gestión del plugin (manage_as24_imports) que restringe el acceso a cada página de administración del plugin, cada controlador POST de administración, cada acción AJAX de administración del plugin y el widget del escritorio por usuario.
  2. Un conjunto de capacidades de tipo de contenido personalizado para el tipo de contenido de vehículos as24ci_car, mapeadas a través de capability_type = ['as24ci_car', 'as24ci_cars'] con map_meta_cap = true.

El plugin también crea un rol personalizado (as24ci_editor) que posee las capacidades del CPT de vehículos pero no la capacidad de gestión. El rol administrator recibe ambos conjuntos al activar el plugin o al actualizar las capacidades.

El plugin no modifica el rol estándar editor de WordPress.

Referencia de capacidades

Capacidad de gestión del plugin

CapacidadPropósito
manage_as24_importsRequerida para: páginas de administración y pestañas del plugin (Settings, Importer, Tools, Logs, Leads, Analytics, Search Alerts, Health, Locations, PDF Manager, AI Assistant, Market Hub, Mapping, Design, Features, Automation, Support, EnvKV), el widget del escritorio, la exportación de diagnósticos, los controladores de acciones en lote y los endpoints AJAX de administración del plugin.

Esta es la capacidad que debe otorgar a un usuario que necesite administrar el propio plugin. Por defecto, solo se añade al rol administrator.

Capacidades del tipo de contenido de vehículos (as24ci_car)

El plugin registra las siguientes capacidades personalizadas para el CPT. Con map_meta_cap = true, WordPress resuelve automáticamente las capacidades singulares ("meta") frente a la propiedad de cada publicación.

CapacidadTipoPropósito
read_as24ci_carMetaLeer un único vehículo.
edit_as24ci_carMetaEditar un único vehículo.
delete_as24ci_carMetaEliminar un único vehículo.
read_private_as24ci_carsPrimitivaLeer vehículos en estado privado.
edit_as24ci_carsPrimitivaAcceder al editor de vehículos en general.
edit_others_as24ci_carsPrimitivaEditar vehículos propiedad de otros usuarios.
edit_published_as24ci_carsPrimitivaEditar vehículos publicados.
publish_as24ci_carsPrimitivaPublicar entradas de vehículos.
delete_as24ci_carsPrimitivaEliminar vehículos en general.
delete_others_as24ci_carsPrimitivaEliminar vehículos propiedad de otros usuarios.
delete_published_as24ci_carsPrimitivaEliminar vehículos publicados.

Estas capacidades siguen el patrón estándar de CPT de WordPress. Controlan el acceso a la tabla de listado de vehículos y a las pantallas del editor en la administración de WordPress y a través de cualquier ruta de código que respete las comprobaciones de capacidad estándar de WordPress.

Tipo de contenido de leads (as24ci_lead)

El tipo de contenido de leads se registra como no público. Intencionadamente no se muestra en la interfaz de usuario de entradas estándar de WordPress y se gestiona exclusivamente desde la pestaña de administración Leads del plugin. El acceso a esa pestaña está restringido por la capacidad manage_as24_imports.

Para obtener más detalles sobre los datos y la gestión de leads, consulte Datos de leads y consentimiento.

Roles creados por el plugin

administrator (existente)

Al activar el plugin o actualizar las capacidades:

  • Recibe todas las capacidades de as24ci_car enumeradas anteriormente.
  • Adicionalmente recibe manage_as24_imports.

Esto significa que un administrador estándar puede gestionar el plugin y su contenido directamente desde el primer momento.

as24ci_editor (nuevo rol)

Al activar el plugin o actualizar las capacidades, el plugin crea (o asegura) el rol as24ci_editor con:

  • La capacidad básica read.
  • Todas las capacidades de as24ci_car enumeradas anteriormente.

Al rol intencionadamente no se le otorga manage_as24_imports. Los usuarios con este rol pueden gestionar las entradas de vehículos (listar, editar, publicar, eliminar) pero no pueden:

  • Abrir los ajustes del plugin, el importador, las herramientas, los logs, las analíticas, los leads, las alertas de búsqueda u otras pestañas de administración.
  • Utilizar los controladores AJAX de administración o POST de administración del plugin.
  • Ver el widget del escritorio del plugin.

Este rol está pensado para el personal (por ejemplo, un gestor de contenidos) que necesita mantener los registros de vehículos individuales sin tener acceso a la configuración del plugin ni a los datos de las consultas.

Otros roles de WordPress

La extensión no otorga ninguna de sus capacidades personalizadas a los roles WordPress editor, author, contributor o subscriber. Para dar acceso a esos roles, un administrador debe añadir explícitamente las capacidades pertinentes (utilizando un plugin de gestión de roles o código personalizado).

Superficie pública de REST

Se registran dos rutas REST de solo lectura cuando la opción Enable REST API está activada:

  • GET /wp-json/as24ci/v1/vehicles
  • GET /wp-json/as24ci/v1/vehicles/{id}

Ambas rutas utilizan un permission_callback de __return_true. Están destinadas a exponer únicamente datos públicos de vehículos y no requieren ninguna capacidad. Desactive la opción en los ajustes del plugin si no desea exponer esta superficie.

El endpoint de importación por cron (/wp-json/as24ci/v1/cron-import) también utiliza __return_true para la comprobación de permisos de WordPress, pero realiza su propia autenticación basada en tokens dentro de la función de devolución de llamada (callback). Consulte las Recomendaciones de seguridad.

Los endpoints AJAX del frontend del plugin utilizados por el formulario de contacto, los favoritos y el flujo de trabajo de alertas de búsqueda dependen de nonces y comprobaciones específicas de la función (por ejemplo, tokens de doble opt-in) en lugar de comprobaciones de capacidad, ya que están destinados a ser llamados por los visitantes del sitio.

Cómo otorgar acceso

El enfoque recomendado es asignar uno de los siguientes:

  • Administrador del plugin: asigne el rol WordPress administrator.
  • Editor de contenido de vehículos: asigne el rol as24ci_editor.
  • Rol personalizado: utilizando un plugin de gestión de roles o un fragmento de código personalizado, añada las capacidades que necesite de las tablas anteriores. Para otorgar acceso completo de administración del plugin sin convertir al usuario en administrador del sitio, añada manage_as24_imports más todas las capacidades de as24ci_car al rol personalizado.

Al utilizar un plugin de gestión de roles, las capacidades del plugin aparecen bajo el tipo de contenido as24ci_car y como una capacidad independiente (manage_as24_imports).

Paso a paso: dar acceso a un compañero solo para gestionar vehículos

  1. Abra Usuarios en la administración de WordPress.
  2. Edite la cuenta de usuario del compañero.
  3. En el selector de roles, elija AS24 Editor (el rol as24ci_editor creado por el plugin).
  4. Guarde el usuario.
  5. Verifique que el compañero puede abrir la lista de vehículos estándar bajo el menú de administración AS24 Cars y editar vehículos individuales, pero no puede abrir las páginas de administración del plugin ADP Car Market Hub.

Paso a paso: dar acceso completo al plugin a un compañero

  1. Confirme que confía en el compañero para gestionar los ajustes del plugin, las credenciales de la API y los datos de los leads.
  2. Asigne el rol WordPress administrator, o añada la capacidad manage_as24_imports y todas las capacidades de as24ci_car a un rol personalizado utilizando su herramienta de gestión de roles.
  3. Inicie sesión como ese usuario y verifique que las páginas de administración del plugin son visibles y que las acciones de administración se completan sin errores de permisos.

Notas operativas

  • Las capacidades se aplican durante la activación del plugin y en cada solicitud a través de una rutina "maybe upgrade caps". Si un rol personalizado se elimina y se vuelve a crear externamente, inicie sesión como administrador y recargue la administración de WordPress para dar a la rutina la oportunidad de volver a aplicar las capacidades.
  • El rol as24ci_editor se crea si no existe y se complementa con las capacidades del CPT. Los administradores pueden ampliar el rol con capacidades adicionales de WordPress (por ejemplo, acceso a medios) utilizando un plugin de gestión de roles.
  • Actualmente, el plugin no elimina el rol personalizado ni las capacidades al desactivarse. Verifique este comportamiento en la versión actual del plugin antes de publicar documentación de procesos que dependa de ello.
  • Todos los controladores POST de administración y los endpoints AJAX de administración comprueban la capacidad manage_as24_imports y un nonce de solicitud como defensa en profundidad, incluso cuando se llaman desde una pantalla que ya requería la capacidad.

Resolución de problemas

  • "Lo siento, no tienes permiso para acceder a esta página" en la administración del plugin: el usuario no posee manage_as24_imports. Otórguela explícitamente o asigne el rol administrator.
  • Falta el menú AS24 Cars para una cuenta de editor: confirme que el usuario posee al menos edit_as24ci_cars. Los miembros de as24ci_editor y administrator siempre deberían tenerlo.
  • El rol personalizado recién creado no puede editar vehículos: confirme que el rol posee edit_as24ci_cars y edit_published_as24ci_cars y que las meta capacidades están mapeadas (map_meta_cap = true es el valor por defecto para el tipo de contenido).
  • Falta la pestaña de administración de leads: la pestaña Leads solo se muestra a los usuarios que poseen manage_as24_imports. El rol as24ci_editor no la tiene por diseño.
  • Los endpoints de vehículos no son accesibles a través de REST: confirme que la opción Enable REST API está activada; las rutas no se registran cuando está desactivada.

Documentos relacionados