织梦dede将独立模块权限添加到用户权限分配

首先需要确认自己想要建立的模块,下面我就拿大家普遍开发的人才招聘模块进行讲解。

新增帐号中有该选项

找到dede/inc/inc_menu.php,找到以下代码
“<m:top item='1_' name='常用操作' display='block'> <m:item name='网站栏目管理' link='catalog_main.php' ischannel='1' addalt='创建栏目' linkadd='catalog_add.php?listtype=all' rank='t_List,t_AccList' target='main' /> $menusMainlist7 $menusMainlist1”

在后面添加自己想要添加的模块,我的是人才招聘,所以我的代码如下<m:item name='人才招聘' link='job_list.php' rank='member_job' target='main' />

之后将同级栏目下的grouplist.txt打开,并在>>会员管理下面添加以下代码>member_job>人才招聘

然后在后台dede目录下建立相应的job_list.php,切记在创建文件的时候要添加CheckPurview('c_New,member_Yzyx,member_job');;然后就开始写自己需要的功能即可。

功能添加完善之后,接下来就是该给用户添加权限了,首先介绍添加管理员,该管理员的权限为‘信息发布员’,下图中授权栏目下面有一个模块权限,通过该位置就可以将人才招聘模块分配给新添加的管理员了。

在后台找到sys_admin_user_add.php,然后将

// 判断复选框是否选中
$jurArray = array('member_job'=>'人才招聘'');

放在代码if($dopost=='add')上面,
然后找到在dede/templets/sys_admin_user_add.htm,将以下代码放在授权栏目代码的下面
<tr> <td height="30">模块权限:</td> <td style="text-align:left;"> <?php foreach($jurArray as $k=>$v){ $check = in_array($k,$row['jur'])?'checked=checked':''; echo "<input type='checkbox' name='jurisdiction[]' $check value='$k'/>$v&nbsp;"; }?> </td> </tr>

以上操作就是将人才招聘模块在添加管理员的时候显示在添加的页面,如下图:


数据库部分

那么如何添加到数据库呢,我查看了dede本身的权限分配是放在@#__admintype里面,但是这只是针对与一个权限组而言,没有针对于具体的某一个管理员。
我是这样解决的,在@#__admin表里面新增了一个字段,我添加的字段为alter table“@#__admin”add `jur` varchar(50) DEFAULT NULL这样的话就可以给每个管理员添加不同的模块权限了。在sys_admin_user_add.php里找到if($dopost=='add')在if里添加一下代码

//模块权限
if(!empty($jurisdiction)){ $jurs = implode(' ',$jurisdiction); }

该代码的作用是将模块进行拼装,然后将以下代码”
//后台管理员

$inquery = "INSERT INTO `dede_admin`(id,usertype,userid,pwd,uname,typeid,tname,email)

                                                    VALUES('$mid','$usertype','$userid','$pwd','$uname','$typeid','$tname','$email'); ";
改为
//后台管理员

$inquery = "INSERT INTO `dede_admin`(id,usertype,userid,pwd,uname,typeid,tname,email,jur)

                                                    VALUES('$mid','$usertype','$userid','$pwd','$uname','$typeid','$tname','$email',' $jur'); ";
然后保存上传即可。

用户登陆有该权限

现在开始对分配的权限进行拼装,让用户登录的时候有该模块的权限。找到include/userlogin.class.php然后将$this->userPurview = $row->purviews;改为$this->userPurview = $row->purviews.$row->jur;

修改的也是一样,也需要在后台模版里面添加相应的代码,在sys_admin_user_edit.php里将
// 判断复选框是否选中
$jurArray = array('member_job'=>'人才招聘');

放在顶部某个位置,然后在saveedit方法里面添加
//模块权限
if(!empty($jurisdiction)){ $jurs = implode(' ',$jurisdiction); $jur =",jur=' $jurs'"; }else{ $jur =",jur=''"; }

然后将
if($id!=1){ $query = "UPDATE `dede_admin` SET uname='$uname',usertype='$usertype',tname='$tname',email='$email',typeid='$typeid' $pwd WHERE id='$id'"; }
改为
if($id!=1){ $query = "UPDATE `dede_admin` SET uname='$uname',usertype='$usertype',tname='$tname',email='$email',typeid='$typeid' $jur $pwd WHERE id='$id'"; }

评论

大侠名号:   验证码: 点击我更换图片  

修远兮

在这里记录每一点自己需要的知识

添加创始人微信,一起交流心得

推荐文章RECOMMEND