2013-07-06 65 views
1

在我的數據庫中,用戶具有角色,每個角色都有權限。權限有兩個字段權限組(如用戶,帖子,評論)和權限操作(添加01,刪除02,編輯04,批准08位)。從會話或數據庫讀取用戶權限

例如,添加和批准後:

permission[POST_PERMISSION_GROUP]= 01 | 08 ; 

,我想將它存儲到用戶會話。但是,一旦管理員更改用戶的權限,該用戶的會話應該更新。如果我應該在會話中緩存這些權限,或者更好地直接從數據庫讀取它們,現在我處於兩難境地了嗎?每次用戶訪問每個頁面時都必須檢查多個權限。

如果你分享你的經驗,它會很棒。

回答

0

有兩件事情可以有權限進行:

  • 檢查某個用戶是否有權限。
  • 設置某個用戶是否有權限。

對於這一點,你需要兩個功能:

  • check_permission($user, $permission)
  • set_permission($user, $permission, $allowed)

第一種實現這些功能應該操縱的權威來源的權限(即可能是數據庫) 。

如果您沒有遇到性能問題,請保留它。如果您已確認,檢查和設置錯誤需要很長時間,然後優化,而不是提前。

+0

所以這是最後的選擇,緩存在會話中還是直接從數據庫中讀取? – sheno

+0

我已經回答了這個問題 – Oswald

+0

我沒有完全實現網站,所以我應該做出最終決定。你剛剛說過要這樣, – sheno

相關問題