He visto ejemplos de ACL para tratar con una entidad pero ninguna para tratar de obtener varios elementos, como una lista de publicaciones que pertenecen a un autor. Una (mala) sugerencia fue buscar todos los ítems y luego filtrar usando acl, no va a funcionar cuando tenemos un millón de ítems. ¿Cuál es la forma prevista de obtener varios elementos? Digamos que quiero buscar todas mis publicaciones (usando cualquier criterio que necesite, como publicado u ordenado por) en lotes de 50 para el localizador (otra razón por la que el filtrado posterior no funcionará) terminaría con diferentes tamaños de página).Filtrado de ACL y buscapersonas/entidades múltiples Symfony2
Respuesta
Creo que no debe usar ACL para determinar qué publicaciones pertenecen a un autor en particular porque ACL es sobre control de acceso/permisos, no sobre encontrar propietarios o determinar relaciones de objeto.
Pero ciertamente, está perfectamente bien para querer obtener una lista de publicaciones que ciertos usuarios pueden ver, editar o moderar, por ejemplo.
Actualmente, no hay ninguna funcionalidad para hacer esto en el nivel de la API, pero ... bueno, creo que en Symfony2/Doctrine2 puedes hacer Native Query y unirme con acl_entries table.
Pero hay un inconveniente. En un sistema grande acl_entries
la tabla contendrá demasiadas filas y unirse contra ella puede ser lenta (sabemos que a veces MySQL es estúpido). Por lo tanto, es posible que también desee construir algún tipo de sistema de almacenamiento en caché alrededor de esto.
Estoy desconcertado de que esto no haya sido abordado. Esto significa que no hay generador de administrador, no hay paginación, en un nivel nativo. – cyberwombat
Siento que me falta algo. Usted y Hakre sugieren no usar acl para buscar publicaciones que pertenecen a un usuario, sino que usan acl para ver si pueden hacerlo. Simplemente no entiendo esto. Tengo que hacer un seguimiento de todos los usuarios que pueden editar una publicación fuera de la estructura acl. Entonces, ¿por qué existe el acl en primer lugar?Sé que el usuario puede editar/eliminar una publicación ya que tengo que gestionarla yo mismo. No necesito acl para decirme exactamente lo mismo. Tener acl que me diga que un usuario puede buscar las publicaciones que le pertenecen es bastante inútil. Entonces creo que no estoy obteniendo algo fundamental. – cyberwombat
- 1. permisos del Grupo de Symfony2 con ACL
- 2. Acceso a la ACL de Symfony2 a múltiples objetos para múltiples usuarios
- 3. Symfony2 ACL combinado con otro criterio
- 4. CakePHP 2.0.x: ACL: ¿Grupos Múltiples?
- 5. Zend Auth y ACL
- 6. lista de filtrado usando múltiples clases/interfaces
- 7. Filtrado de Tastypie con valores múltiples
- 8. FOSUserBundle y ACL Business Rol
- 9. .htaccess y filtrado $ _GET
- 10. ¿Spring ACL es una buena implementación de ACL?
- 11. Symfony2 UniqueEntity campos múltiples: ¿validación positiva falsa?
- 12. Pyramid ACL without traversal
- 13. Registro y filtrado utilizando log4cxx
- 14. ACL flexible en ASP.NET
- 15. Migración de bases de datos múltiples usando doctrine2 con Symfony2
- 16. Filtrado y transformación de listas de Python
- 17. Symfony2, ramita y JavaScript
- 18. SwiftMailer y Symfony2
- 19. Symfony2 y ParamConverter (s)
- 20. Recomendaciones de Symfony2 y Vim
- 21. filtrado de tomas simples y dobles
- 22. Filtrado de Android NDK y Google Play
- 23. Acelerar Data.Array extracción y filtrado de fila
- 24. Symfony2: Cómo crear múltiples formularios de registro con FOSUserBundle
- 25. Administración de usuarios, autenticación y complemento acl para CakePHP?
- 26. Prueba de unidades PHP con Zend Auth y Zend ACL
- 27. ¿Zend ACL se adapta a mis necesidades?
- 28. ACL Check/Management en C#
- 29. ACL en ASP.NET MVC 3
- 30. CodeIgniter: mejor implementación para ACL
No debe usar ACL para identificar qué publicaciones pertenecen a un autor. Antes de buscar todas las entidades de los usuarios, debe usar la ACL para validar si la "obtención de todas las entidades del usuario" es una acción permitida o no. Si lo es, realiza la acción. Si no, no. – hakre
Disculpe? ¿Cómo va a saber mi código qué elementos pertenecen al usuario si no uso ACL? Tendría que añadir una referencia al usuario en mis publicaciones: el objetivo de acl es no hacer eso. ¿Puedes explicar lo que no estoy recibiendo, por favor? – cyberwombat
¿Cómo sabe su ACL lo que es un usuario? Los usuarios son objetos (no debe significar clase, me refiero al significado amplio de objeto en la programación, por ejemplo, un número entero que contiene el ID de usuario), por lo que tanto la ACL como el resto de la aplicación comparten un dominio aquí. ACL debe sentarse encima, no debe sentarse en todas partes. Si haces que se siente en todas partes, te encuentras con el problema que tienes en la pregunta. Si no lo haces, no tienes. Mantenga separadas las partes funcionales de su aplicación. ACL es ACL, las publicaciones son publicaciones. En su controlador o en sus modelos comerciales, agréguelos, pero no antes. – hakre