2
首先,我將粗略地描述上下文。我想有一個symfony應用程序,我可以創建各種領域。在每個區域中,您可以擁有不同類型的用戶(或角色)。每個用戶可以在不同的區域有多個角色。何處實現動態組的安全過濾器
爲了說明這個問題,我們將定義:
- 2個區域: 「區域1」 和 「2區」。
- 2個用戶:「用戶1」和「用戶2」。
- 2個角色:「賣家」和「買家」。
- 「用戶1」是賣方和在「區域1」的買方
- 「用戶2」是賣方和在「區域1」僅在「區域2」
我的問題是:如果用戶屬於某個特定區域並且他在該區域具有所需角色,那麼這是檢查受限頁面的最佳方式。
思考了一下這件事之後,我也做了以下內容:
- 當創建一個區域,我也創建每個角色一個sfGuardGroup和該地區一個全球sfGuardGroup,每個區域後綴ID。因此,在我們的例子中,我們將有角色:
- 區-1,賣家-1,買家-1區1
- 區-2,賣家-2,買家-2區2
- 用戶被添加到相關組。因此,在我們的例子:
- 用戶1將屬於組區域1,賣家-1和買家-1
- 用戶2將屬於組區域1,賣家-1,買家-1,區域-2和買家-2
- 從URL,我知道我們是哪個區域,例如:
- http://example.com/area-1/sellers-restricted-page(組中訪問用戶區域1和賣家-1)
- http://example.com/area-2/buyers-restricted-page(羣組區域2和買家2可以訪問)
- http://example.com/area-2/(訪問組中的用戶區域-2)
在這一點上,我有點卡住,因爲我不能讓出執行權限檢查的最佳場所:修改保護過濾器?改變行動?
謝謝你把我放在正確的軌道上。看來在一些測試後,我會設法使用自定義sfFilter去某個地方。 – 2010-12-07 15:03:33