phpcms不能刪除欄目是因為站點管理員沒有刪除欄目的權限,其解決辦法:首先找到并打開“admin.class.php”文件;然后添加站點管理員的刪除欄目權限;最后修改“category.php”文件即可。
phpcms不能刪除欄目?PHPCMS站點管理員沒有刪除欄目的權限
phpcms V9除超級管理員外,其他管理員都沒有刪除和修改欄目的權限,這可能是系統的一個bug。
分析:
PHPCMS v9 在判斷權限的時候只判斷admin_role_priv表中所記錄的權限。也就是我們在設置角色的時候所進行的“權限設置”,而不考慮我們所設置的“欄目 權限”。由admin:check_priv()在可以看出,該方法沒有對欄目權限作任何考慮。所以當我們使用非超管登錄時,修改欄目或刪除欄目就會提示 “您沒有權限操作該項”。
立即學習“PHP免費學習筆記(深入)”;
位置:phpcms/modules/admin/classes/admin.class.php
推薦:《phpcms教程》
解決辦法:
1.找到/phpcms/modules/admin/classes/admin.class.php ,在里面找到
$r?=$privdb->get_one(array('m'=>ROUTE_M,'c'=>ROUTE_C,'a'=>$action,'roleid'=>$_SESSION['roleid'],'siteid'=>$siteid));
大概在177行上,然后在該句下面加上:
//添加站點管理員的刪除欄目權限?by:醒木 if(ROUTE_C?==?'category'){ $catid?=?$_GET['catid']???$_GET['catid']?:?$_POST['catid']; //獲取角色當前權限設置 pc_base::load_app_class('role_cat',?'',?0); $priv?=?role_cat::get_roleid($_SESSION['roleid'],?$siteid); if($priv[$catid][$action])?$r?=?true; }
2.在 /phpcms/modules/admin/category.php中找到
foreach?($arrchildid_arr?as?$arr_v)?{ $this->update_priv($arr_v,?$_POST['priv_groupid'],?0); }
改為:
foreach?($arrchildid_arr?as?$arr_v)?{ $this->update_priv($arr_v,?$_POST['priv_roleid']);?//添加站點管理員的刪除欄目權限?by:醒木 $this->update_priv($arr_v,?$_POST['priv_groupid'],?0); }
提示:
記著在添加貨修改欄目時候勾選相應的刪除貨修改權限。
? 版權聲明
文章版權歸作者所有,未經允許請勿轉載。
THE END
喜歡就支持一下吧
相關推薦