我正在研究一個函數,它接收一系列少於255個字符的權限字符串並將它們分配給實體。每個分配的字符串都是唯一的,但是有很多將它們放入數組中,將它們序列化並推入數據庫,稍後將它們拉出並解除序列化,或者在每次有負載時從查詢重新計算一直導致延遲問題。特別是具有繼承權限。如何按位比較字符串
所以我想帶串,從它產生屏蔽,然後進入中用OR權限水珠。隨着更多權限的添加,繼續將它們或者添加到glob中。然後當你需要驗證權限和字符串對glob。
問題是如何生成掩碼。起初我只是想爲一個獨特的面具進行散列處理,然而這是可以想象的,但我不知道有多大可能,因爲更多的散列值被「或」到了glob上,方式和AND測試與他們沒有的權限,但返回一個真正的價值。
if($glob&&$test == $test)
另一個選項只是自動編號的權限字符串和他們的掩碼是2 ^自動編號。但是這會將權限字符串的數量限制在64個左右。
我真正想要的是某種我可以拉出一個數據庫的一次,它與用戶關聯的水珠。然後根據代表權限集的字符串或關聯值來測試該glob。
用戶有權限字符串列表, 組擁有權限字符串列表, 用戶可以屬於多個組, 組可以屬於多個組。 每次會話開始時,要遵循權限鏈來封裝所有權限,導致永久登錄後首次加載站點。而且由於權限在會話期間可能會發生變化,因此我需要一種快速重新計算權限的方法,以便在每次頁面加載時都可以對其進行更新。 – 2009-06-03 16:22:36