2012-02-16 64 views
0

我一直試圖在我正在開發的系統中實現ACL,並且 有幾個問題。這主要是因爲關於這個問題的文件總數不足。如果我們可以在這個複雜而基本的組件上獲得更多信息,這將非常好。在任何情況下,我會 快樂,一旦我明白Symfony2 ACL問題

反正寫的東西,我有問題有以下幾種:1。 我有類場範圍ACE來查看和編輯一個角色對象的字段 。當我使用以下方式檢查視圖時: isGranted('VIEW',object,'myField')

它總是錯誤的。課堂範圍不應該適用於 課程的所有實例嗎?我不確定這個範圍是如何工作的。

  1. 當我刪除一個組時,我想刪除與該組相關的所有ACL條目。我已經試過這樣: $ aclProvider-> deleteAcl(ObjectIdentity進行:: fromDomainObject($組))

它的工作原理。然後我嘗試創建一個新組。該小組被創建, 但ACL設置失敗,此錯誤:

注意:未定義抵消:0在項目/供應商/ symfony中/ src目錄/ Symfony的/ 組件/安全性/ ACL/DBAL/MutableAclProvider.php線850

任何幫助都非常感謝!

回答

4

編輯:我已經更新了源代碼,現在它是一個更好的解決方案。

最近我一直在試驗ACL和Symfony2。

從我發現這是檢查類場範圍的方式

$post = $postRepo->findOneById(1); 

$securityContext = $this->get('security.context'); 
$oid = new ObjectIdentity('class', 'Liip\\TestBundle\\Entity\\Post'); 

$object = new FieldVote($oid, 'id'); 
if (true === $securityContext->isGranted('EDIT', $object)){ 
    echo "Access to 'id' field granted"; 
}else{ 
    echo "Access denied"; 
} 

$object = new FieldVote($oid, 'post'); 
if (true === $securityContext->isGranted('VIEW', $object)) 
{ 
    echo "Access to 'post' field granted"; 
}else{ 
    echo "Access denied"; 
} 

關於刪除的ACL我所不知道的,到目前爲止,我將需要尋找到這個問題晚些時候。我希望這有幫助!

有關該主題的更多信息。可能並不適合你,但其他用戶也可能會有所幫助:Smyfony2 and ACLs

問候 雷託

+0

沒有幫助你嗎?請告訴我! – rryter 2012-02-22 15:36:40

+0

不,它沒有工作 – 2014-10-14 11:20:47