在PHPCMS2008中,可對每個欄目分配給不同角色的不同權限,是以欄目為出發點,這一點與我們一般情況從角色為出發點不對,因此其沒有去實現欄目權限繼承的功能。但在實際中創建了很多欄目後再分權時你就會發現分權工作很麻煩的問題,原因是子欄目不能繼承父欄目,需要一個一個的分配。
針對這一點,我們也想到一個相對之策,即在判斷其是否有權限的同時,如果其本身沒有權限那就判斷他的所有上級,如果上級都沒有,那就沒有,如果有一個上級有那它就有。
具體修改如下:
admin目錄下的content.inc.php文件,大概在31行,找下這段代碼
$allow_manage = $priv_role->check('catid', $catid, 'manage');
$allow_add = $allow_manage ? true : $priv_role->check('catid', $catid, 'add');
$allow_check = $allow_manage ? true : $priv_role->check('catid', $catid, 'check');
$allow_view = $allow_manage ? true : $priv_role->check('catid', $catid, 'view');
---------以上是原代碼----------------------------------------------------------------
if(!$allow_manage){
$pcatid=get_brand_catid($catid);//此處為獲取父級ID的函數。可以自己寫一個遞歸。
$pcatid=$CATEGORY[$pcatid]['parentid'];
$allow_manage = $priv_role->check('catid', $pcatid, 'manage');
$allow_add = $allow_manage ? true : $priv_role->check('catid', $pcatid, 'add');
$allow_check = $allow_manage ? true : $priv_role->check('catid', $pcatid, 'check');
$allow_view = $allow_manage ? true : $priv_role->check('catid', $pcatid, 'view');
}
----------------以上是增加的代碼----------------------------------------------------
$attachment = new attachment($mod, $catid);