![](/img/trans.png)
[英]Get all modules, controllers and actions from a Zend Framework application
[英]Zend Acl - Modules, Controllers, Actions and Models
我花了一天時間尋找有關如何在 SO 和其他站點中實現 Zend_Acl 的教程和答案。 而且我很頭疼。 :X
我看到人們使用它來允許或禁止訪問某些控制器/操作,而其他人則說這種方式是不正確的,應該允許或禁止基於模型的訪問。 嗯,第二個似乎可行,但是,這意味着對於每個 controller 我需要一個 model? 因為看起來,在第二種選擇之后,我只能在例如編輯帖子時阻止用戶訪問。 但我想阻止訪問編輯帖子的 controller 的操作。
如果我想阻止具有角色 X 的用戶訪問 controller Z 的操作 Y,如果我遵循第二種選擇,我該怎么做?
一個真正的應用程序的例子將非常受歡迎。
此信息可以改進您的答案:我使用 Doctrine 2 作為 ORM,並且我有一個模塊 Admin。 我的應用程序的實際結構是這樣的:
application
- MYAPP
- configs
- controllers
- layouts
- views
- library
- MYAPP ;This folder is in the include path
- modules
- admin
我承認不是Zend_Acl
專家,但對我來說,使用Zend_Acl
的本質是識別角色、資源和權限。 角色通常很明顯。 一旦您清楚地確定了資源,特權通常就會變得明顯。
所以對我來說,關鍵是識別資源。
在您的情況下,聽起來您已明確將controller標識為資源。 如果您需要更細粒度的訪問控制,則可以將權限定義為操作。 這似乎足夠靈活,以至於即使是不需要使用模型的控制器——也許應該只向特定類型的登錄用戶顯示的 static 頁面等——也可以受到 ACL 控制。
在某些情況下,您可能會發現您的資源/特權“自然地”對應於模型/方法。 但是,如果控制器/操作更符合您對程序流程和 ACL 要求的理解,我認為您不應該強迫您的 ACL 進入該范例。
不是真正直接回答您的問題。 更像是忠於您自己對情況的閱讀的建議。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.