Ir al contenido

LeanRoles

Auditoría de roles y «user tags» para WordPress: mide lo que tu configuración de roles cuesta en cada request y añade etiquetas que se comportan como roles sin pesar como ellos.

Versión0.2.0
RequiereWordPress 5.9+
PHP7.4+
LicenciaGPLv3
Actualizado2026-07-30

LeanRoles ataca un problema que casi nadie mide. WordPress guarda todos los roles en una única opción autocargada, con las capacidades de cada rol copiadas enteras porque el core no tiene herencia. En un sitio de membresía o comercio con decenas de roles, esa opción se lee, se deserializa y se mantiene en memoria en cada worker de PHP y en cada request — y son justo los sitios cuyo tráfico va casi siempre logueado, donde la caché de página nunca entra.

Mide — auditoría de solo lectura

El auditor no escribe nada. Toma el tamaño de tu opción de roles con LENGTH() en la base de datos en vez de reserializarla en PHP, cronometra un unserialize() real tras una pasada de calentamiento, mide la huella residente en memoria y calcula lo que eso cuesta multiplicado por tus workers concurrentes. Identifica roles que no conceden ningún permiso efectivo, roles que no tiene nadie, roles con conjuntos de capacidades idénticos y capacidades que no puede atribuir — dejando claro que «no reconocida» no es «huérfana», porque hay código propio que comprueba capacidades que ningún escáner ve.

Ofrece la primitiva que falta — «user tags»

En WordPress no hay forma de decir «este usuario es cliente mayorista» sin concederle permisos: solo existen los roles. Por eso los plugins de membresía no paran de inventarlos. Una etiqueta de LeanRoles es esa alternativa: aparece en $user->roles, responde a current_user_can() y se puede filtrar en WP_User_Query — y nunca se escribe en la opción autocargada. El código de terceros no nota la diferencia; la etiqueta no concede ninguna capacidad y no pesa nada.

Lo que no hace

No convierte tus roles en tags por ti. Te da tres primitivas independientes —crear una tag, asignarla en bloque y borrar un rol con reasignación— que se componen en una conversión hecha a mano, por alguien que ha leído la auditoría y acepta el riesgo. Antes de borrar un rol te dice cuántas capacidades concede y cuántos usuarios lo tienen; no te dice cuáles lo notarán. Haz una copia y compruébalo.

01

Mide, no adivina

Un auditor de solo lectura que cuantifica lo que tu opción de roles cuesta en memoria y por cada worker de PHP.

02

«User tags» sin coste

Etiquetas que aparecen en $user->roles y responden a current_user_can() sin escribirse en la opción autocargada ni conceder permisos.

03

WP-CLI y librería

Crea y asigna tags, borra roles con reasignación y empaqueta el motor de tags como librería reutilizable.

wp plugin install https://github.com/davefx/leanroles/releases/download/0.2.0/leanroles-0.2.0.zip --activate

O descarga el ZIP e instálalo desde Plugins → Añadir nuevo.