2014-02-20 31 views
0

我對ACL很陌生我應該在CakePHP中使用什麼作爲訪問控制對象?

該網站是關於一個經銷商可以有幾個品牌,並在幾個國家的汽車。 例如: 經銷商:John Doe 在英國有Audi品牌,在法國有起亞。

我有以下型號: - 品牌 - 國家 - 經銷商 - BrandsCountriesDealers(哪個環節上述三者合計)

經銷商不能添加/編輯一個品牌或一個國家。他只能在他有權訪問的國家和他擁有的品牌上添加/編輯/刪除一輛汽車。

我想知道是否我只使用BrandsCountriesDealers模型的特定外鍵作爲ACO,當經銷商增加一輛汽車時,我通過檢查BrandsCountriesDealers模型中的記錄來檢查該汽車的品牌和國家是否有效有權訪問?

我希望這很清楚。

+0

我通常使用[微型](http://ww.dereuromark.de/2011/12/18/tinyauth-the-fastest-and-easiest-authorization-for-cake2/)來設置基本角色訪問並使用控制器進行特定的基於記錄的檢查(UID == $ record [user_id]等)。 – mark

回答

0

實施ACL有點難,但並非不可能。一旦你習慣了使用ACL,你就會感到無所適從,而且它很容易和強大。它可能需要一些研究來配置和學習它,但它真的被嘲弄。

我認爲你應該使用ACL因爲某些原因:

  1. 它使你的代碼很整潔:

你並不需要保持分配

if user logged in do this 

    or if user type is this do that 
  1. Acces s級別:無需爲每種類型的用戶編寫驗證。
  2. 高安全性:ACL正在與驗證組件
  3. 每一種方法可以授予一個或多個用戶類型(角色)
  4. 幾乎被存儲在數據庫的每一件事情使你的代碼是再次明確

我記得當我開始使用ACL時,我跟着this tutorial。這是用葡萄牙語。我不知道這種語言,但我一步一步地工作。

http://www.youtube.com/watch?v=EIjfwqqGRhs

相關問題