2014-02-07 99 views
0

我們首先說我的模型類是UserEntriesCakePHP中的ACL和管理路由

我讀過以下教程:http://book.cakephp.org/2.0/en/tutorials-and-examples/simple-acl-controlled-application/simple-acl-controlled-application.html,我看到他們使用一個名爲Group的額外模型,以便爲用戶分配角色。

  1. 是什麼而不是role屬性在User(User.role =「管理員」)

  2. 是什麼在添加GroupARO而不是將差在使用Group模型不同, User改爲ARO,然後使用別名。

  3. 如果我實現ACL,這是否意味着我不再需要管理路由?

PD:我是新來的ACL列表,我一直在使用一個類似if($user['role'] == 'admin')總是授權的行動。

回答

2
  1. 這些是處理驗證的兩種不同方式。如果您只有幾個控制器和一個或兩個管理員,那麼使用現在的User.role方法可能會很好。如果您有多個控制器和可訪問您網站不同部分的各種用戶,則應使用ACL。

  2. 您不需要創建Groups即可使用ACL,但它使生活變得更加輕鬆。您可以創建兩個或三個組,爲這些組設置權限,然後將每個用戶分配到其中一個組,而不是爲幾十個不同的用戶分配權限。然後,如果您需要添加新控制器 - 甚至是新視圖 - 則只需在組級別執行此操作,而不是針對每個用戶。 (看看this demo現在想象你還有10個控制器/ 50個動作,你必須爲20或30個用戶設置這些權限,而不是4個組。)當然,即使你在Group級別設置權限如果需要,您可以在User級別覆蓋它們。

  3. 管理路由與ACL分開。路由只是控制可用於訪問頁面的URL。 (請參閱Cake PHP - Prefix Routing。您可以使用ACL控制而無需管理員路由,並且您可以使用不使用ACL控制的管理員路由