2012-03-30 18 views
5

Mã của ví dụ ACL chính thức hoạt động: http://symfony.com/doc/current/cookbook/security/acl.htmlsymfony2: mở rộng cành lá is_granted ('EDIT', bình luận) không hoạt động trong một vòng lặp foreach

Nếu tôi làm điều đó, không có vấn đề ...

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

... nhưng nếu tôi muốn "Cấp quyền truy cập" cho đối tượng được liên kết, nó không hoạt động.

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

Tôi nghĩ rằng tiện ích mở rộng không thể biết rằng "nhận xét" là "Đối tượng nhận xét".

Các truy vấn tìm kiếm "Proxies \ JblNewsBundleEntityCommentProxy" thay vì "JBL \ NewsBundle \ Entity \ Comment":

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')) 

Nhưng tôi không biết làm thế nào để khắc phục điều đó.

Bạn có giải pháp không?

Trả lời

Các vấn đề liên quan