2015-05-11 23 views
0

我有一個系統將用戶表示爲對象。這些對象通過讀取數據庫進行初始化。一旦創建了用戶(或對象),我將它們存儲在一個會話中以瀏覽頁面,而無需從數據庫重新啓動用戶。PHP - 在數據庫編輯期間存儲在會話中的用戶

假設管理員改變(讓說的)用戶的權限。從編輯到會話過期,用戶可以擁有比管理員聲明的權限更高(或更低)的權限。

我該如何處理這種情況?假設我有幾個小時或更長時間的會話。我是否應該每隔n分鐘向數據庫發送一個請求以更新用戶對象?

回答

0

我在應用程序中執行的方式是檢查每個頁面加載情況。

因此,權限可能被存儲在一個會話,但你可以隨時更新的。

假設有人登錄並且他們的權限設置爲已滿。

如果您正在檢查每個頁面加載和更新他們的會話,有人可以在任何時間更新他們的權限和他們的對象將有新的權限反映每次執行一個動作的時間。

這沒有多大意義,如果他們只是在閱讀一個網頁,但是當他們試圖做一些事情:提交表單,回到家裏,訪問一個新的頁面,或什麼的,那麼他們的權限將得到更新。

+0

但是,使用此解決方案會話無用以檢索用戶對象。我可以在每次頁面加載時直接從數據庫檢索用戶。如果管理員更改用戶名,該怎麼辦?我應該每次更新用戶的每個屬性,因爲我不知道管理員更改的內容。 – Firaja

+0

如果您至少要將用戶的ID存儲在數據庫中,則可以基於此查找。用戶的ID不太可能改變。但是,是的,幾乎沒有時間從數據庫中檢索用戶的詳細信息,所以如果您有權限系統,那麼在每個頁面操作中都應該刷新它。 – Scheda

相關問題