>  기사  >  php教程  >  PHPCMS2008栏目分权限子类继承父类的解决办法

PHPCMS2008栏目分权限子类继承父类的解决办法

WBOY
WBOY원래의
2016-06-13 09:37:371055검색

在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);

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.