Saltar al contenido

Implementaciones ACL ​

El builder y evaluador core están en ACL y autorización API. Aquí se distinguen la base abstracta y los paquetes ACL opcionales encontrados en el checkout. El core no selecciona un paquete automáticamente: la aplicación elige la implementación en config/acl.php.

Comportamiento de los paquetes ​

PaqueteComportamiento trazadoLímite
boctulus/simplerest-basic-aclLa subclase Boctulus\BasicACL\Acl carga roles y guarda IDs/nombres antes de usar el builder core.No añade un catálogo de permisos especiales ni un loader DB de denies de usuario.
boctulus/simplerest-fine-grained-aclLa subclase lee sp_permissions y roles en la conexión default, ofrece lecturas frescas de permisos y sobrescribe el hook de denies por recurso. Persiste roles nuevos salvo que el catálogo esté diferido.Si sp_permissions está vacío, setup lanza una excepción. El hook de user-deny devuelve filas sólo con UID no nulo; no todos los helpers core pasan ese UID.

La reconciliación diferida de FineGrainedACL puede escribir roles faltantes dentro de una transacción, después de validar nombres, IDs y asignaciones existentes. Esa ruta modifica la base de datos y no se ejecutó.

Los manifests de ambos paquetes los marcan como propietarios y declaran dependencia de SimpleRest 2.x/3.x. Los providers que aparecen en metadata tienen métodos register() y boot() vacíos. La configuración de este checkout selecciona FineGrainedACL explícitamente; no es una política universal del framework.

La implementación FineGrained no demuestra que los denies de usuario se apliquen en cada helper. Los contextos que construye la fachada core y la llamada por defecto a hasSpecialPermission() pasan UID nulo; hasResourcePermission() construye un contexto sin user-deny rows. Revisa la ruta de llamada antes de confiar en esa cobertura.

Alcance de verificación ​

Se inspeccionaron código y manifests, pero no se instaló ningún paquete ni se consultó la base de datos. No se ejecutó reconciliación de roles o una petición de autorización.