2010-12-11 219 views
7

我的房地產PHP應用程序有如下的用戶羣體,實施ACL我的PHP應用程序

管理員,版主 代理

我想指定以下權限下面的用戶。

管理員 - >

  • 可以創建版主,
  • 可以創建代理,
  • 可以插入屬性,
  • 可以更新屬性,
  • 可以刪除屬性

因此,管理員將具有所有權限,簡而言之,Admin在這裏將是superAdmin

我想爲主持人分配有限的權限,因此分配給代理人。

我很困惑如何爲此創建數據庫以及如何在我的PHP應用程序中實現它。

謝謝

回答

11

這聽起來像是你將需要一個基於角色的訪問控制系統。開發一個不是 確實是一項微不足道的任務,因此,如已經暗示的那樣,找到一個框架或者現成的課程,這個工作在開始時是值得的。

Role Based Access Control

http://www.tonymarston.net/php-mysql/role-based-access-control.html

http://www.sqlrecipes.com/database_design/fine_grained_role_based_access_control_rbac_system-3/

http://www.sitepoint.com/forums/showthread.php?threadid=162027

你應該創建一個表wher你必須定義所有類型的角色。

,爲用戶

一個表涉及到不同的用戶不同的角色通過連接兩個表。 和一些這樣的事情......

+0

使用像cakephp或zend這樣的框架。他們擁有內置ACL的組件庫,並且易於學習 – 2010-12-11 07:39:32

0

,我已經在過去所做的這個問題的方法是在有訪問級別(管理員,版主,和代理)在數據庫中創建一個用戶表。

然後,如果您有菜單系統,請執行檢查以查看哪些鏈接需要什麼特權...管理員將看到所有鏈接,主持人只會看到他/她應該訪問的鏈接,而代理人只會看到他們應該看到什麼。

另外,在您可能希望限制用戶的頁面上,您需要檢查用戶訪問級別。如果他們通過,他們會看到頁面,如果沒有,他們將被重定向或JavaScript錯誤將需要彈出。

類似訪問級別的東西可能會讓你把它存儲在cookie中,因爲你可以減少對數據庫的調用。

希望這有助於 邁克

+3

...你的意思是一個cookie,他們可以隨意修改以增加他們的訪問級別? – mpen 2010-12-11 07:35:27

+0

真正的Cookie有點不安全,但是你可以通過檢查數據庫來驗證。我必須構建的大多數應用程序都是針對內部員工的,除了查看其他頁面外,沒有什麼可以獲得的。更別說所有的東西都被記錄了,所以即使你繞過了一些檢查,它也會記錄你的頁面命中。我很高興它有幫助。我希望繼續在這個論壇上提供幫助。 – Psycorpse 2010-12-13 06:30:03