2012-03-30 21 views
5

El código del ejemplo oficial ACL funciona: http://symfony.com/doc/current/cookbook/security/acl.htmlSymfony2: extensión ramita is_granted ('editar', comentario) no funciona en un bucle foreach

Si hago eso, no hay problema ...

{% if is_granted('EDIT', comment) %} 
    Edit 
{% endif %} 

... pero si quiero un "Acceso otorgado" a un objeto asociado, no funciona.

{% for comment in news.comments %} 
    comment.content 
    {% if is_granted('EDIT', comment) %} 
     Edit 
    {% endif %} 
{% endfor %} 

creo que la extensión de rama no puede saber que "comentario" es un "Comentario Entidad".

La consulta busca en "La representación \ JblNewsBundleEntityCommentProxy" en lugar de "Jbl \ NewsBundle \ Entidad \ comentario":

SELECT a.ancestor_id FROM acl_object_identities o INNER JOIN acl_classes c ON c.id = o.class_id INNER JOIN acl_object_identity_ancestors a ON a.object_identity_id = o.id WHERE ((o.object_identifier = '38' AND c.class_type = 'Proxies\\JblNewsBundleEntityCommentProxy')) 

Pero no sé cómo arreglar eso.

¿Tiene una solución, por favor?

Respuesta