我從窗體創建一個用戶,並且窗體的一部分通過選擇複選框來指定用戶的訪問權限,並且在驗證時,我會將這些值分組爲一個字符串,如:111,011,101,類似於chmod代碼。設置用戶訪問權限的最佳做法?
我只是想知道是否有更有效的方法來做這件事,因爲我所做的事情似乎很重複,或者如果這是做這件事的正確方法。
HTML複選框這樣
<input type="checkbox" name="access[1]" id="ac1"/> <label for="ac1">Consumer</label>
<input type="checkbox" name="access[2]" id="ac2"/> <label for="ac2">Retailer</label>
<input type="checkbox" name="access[3]" id="ac3"/> <label for="ac3">Admin</label>
控制器
$access = $this->input->post('access');
$user_access = '';
if(!empty($access[1])) {
$user_access .= '1';
} else {
$user_access .= '0';
}
if(!empty($access[2])) {
$user_access .= '1';
} else {
$user_access .= '0';
}
if(!empty($access[3])) {
$user_access .= '1';
} else {
$user_access .= '0';
}
像這樣的訪問系統基於固定數量的整數放在一個字符串中彼此相鄰將嚴格限制你。你有沒有一個數據庫,你可以購買* actual *角色系統? –
'if($ access = X)($ chmod = Y)'?爲什麼要追加並動態地創造一些東西? –
對於你的數據庫來說,按位工作會有點沉重,當你有100個選項時會發生什麼?你會得到11111111111111 ....在我的項目中,我已經包含了[ACL](https://en.wikipedia.org/wiki/Access_control_list) –