基本上每個用戶都有一組基于他們的角色(管理員、經理、賣家等)的權限,他們都可以選擇編輯他們的個人資料,但我希望管理員能夠編輯每個人的個人資料。編輯功能看起來像這樣(我正在使用 Codeigniter)function edit($id){ if(!in_array('editUser')) { redirect('home'); } //rest of the code...}第一個想法是檢查嘗試編輯頁面的用戶的會話 id 是否與正在編輯的用戶的 id 相同,但這會使管理員無法編輯每個人的個人資料。希望今天能得到答復,謝謝您的幫助。編輯我通過添加另一個條件并反轉它們來解決這個問題:function edit($id){ if(in_array('editUser', $perms) || $this->session->userdata('id') == $id) { //rest of the code... }else{ redirect('home'); }}
3 回答

弒天下
TA貢獻1818條經驗 獲得超8個贊
我通過添加另一個條件并反轉它們來解決這個問題:
function edit($id)
{
if(in_array('editUser', $perms) || $this->session->userdata('id') == $id)
{
//rest of the code...
}else{
redirect('home');
}
}
抱歉這個愚蠢的問題,但它一直困擾著我一段時間,我終于讓它工作了!

慕容森
TA貢獻1853條經驗 獲得超18個贊
登錄用戶時將角色存儲在會話中并進行處理
例如
if($this->session->userdata('role') == 'admin'){
// Show admin folder files
}elseif($this->session->userdata('role') == 'normal_user'){
// Other user folder files
}
谷歌中有很多基于角色的庫可用于 Codeigniter 常用庫鏈接
- 3 回答
- 0 關注
- 126 瀏覽
添加回答
舉報
0/150
提交
取消