'1'); $pingyinid = $data['pinyin']; if(!empty($pingyinid)){ $map['title']=$pingyinid; } $count= $group->where($map)->count(id);// 查询满足要求的总记录数 $list = $group->field('id,type,title,level,(SELECT title FROM sp_auth_group a WHERE id=sp_auth_group.pid)as pid,sort,rules')->where($map)->limit($page,$getsize)->select(); $info = array( 'totalRow' => $count, //'pageSize' => $count,//分页时不传 'list' => $list, ); echo json_encode($info); }else{ $this->display(); } } public function add(){ $group=M('auth_group'); $data=I(); if(isset($data['type'])){ $rules = array( array('title','','角色名称已存在!',0,'unique'), array('pid','require','父角色不为空!'), array('title','require','角色名称不为空!'), ); if (!$group->validate($rules)->create()){ echo json_encode(array('statusCode'=>'300','message'=> $group->getError())); }else{ $type=$data['type']; $title=$data['title']; $sort=$data['sort']; $pidname=$data['pid']; $repid = $group->field('id,level')->where(array('title'=> $pidname))->select(); $pid=$repid[0]['level']+1; if($pidname=='顶级'){ $repid[0]['id']=0; $pid=1; } $add=array( 'type'=> $type, 'pid'=> $repid[0]['id'], 'title'=> $title, 'sort'=> $sort, 'level'=> $pid ); $res=$group->add($add); if($res){ //日志开始 $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log"; $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---角色管理新增(sp_auth_group)\r\n'; $data_log1 ='新增数据:'.json_encode($add)."\r\n"; file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX); file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX); //日志结束 echo json_encode(array('statusCode'=>200,'message'=>'添加成功' )); }else{ echo json_encode(array('statusCode'=>300,'message'=>'添加失败' )); } } }else{ $list = $group->field('id,type,title,level,pid,sort,rules')->where('type=1')->select(); $this->assign('role',$list); $this->assign('action','/home/Role/add'); $this->display(); } } public function edit(){ $group=M('auth_group'); $data=I(); if (session('power')==2){ $this->mtReturn(300,'本账号没有该权限,如需开通请联系管理员',1); }else { if(isset($data['type'])){ $roletitle=$group->field('id')->where('type=1 and title="'.$data['title'].'" and id!='.$data['roleid'])->select(); if(count($roletitle) > 0){ exit(json_encode(array('statusCode'=>300,'message'=>'角色已存在!' ))); } $rules = array( array('pid','require','父角色不为空!'), array('title','require','角色名称不为空!'), ); if (!$group->validate($rules)->create()){ echo json_encode(array('statusCode'=>'300','message'=> $group->getError())); }else{ $type=$data['type']; $title=$data['title']; $sort=$data['sort']; $pidname=$data['pid']; $repid = $group->field('id,level')->where(array('title'=> $pidname))->select(); $pid=$repid[0]['level']+1; if($pidname=='顶级'){ $repid[0]['id']=0; $pid=1; } $add=array( 'id'=> $data['roleid'], 'type'=> $type, 'pid'=> $repid[0]['id'], 'title'=> $title, 'sort'=> $sort, 'level'=> $pid ); $wx=M()->query("SELECT * FROM sp_auth_group where id='".$data['roleid']."'"); $res=$group->save($add); if($res){ //日志代码开始 $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---角色管理(sp_auth_group表)---ID:'.$data['roleid']."数据\r\n"; $data_log1 ='修改前数据:'.json_encode($wx)."\r\n"; $data_log2 ='修改的数据:'.json_encode($add)."\r\n"; $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log"; file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX); file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX); file_put_contents($filename_log, $data_log2, FILE_APPEND|LOCK_EX); //日志代码结束 echo json_encode(array('statusCode'=>200,'message'=>'修改成功' )); }else{ echo json_encode(array('statusCode'=>300,'message'=>'修改失败' )); } } }else{ $list = $group->field('id,type,title,level,pid,sort,rules')->where('type=1')->select(); $this->assign('role',$list); $res=$group->where(array('id'=> $data['id']))->select(); $this->assign('roleid',$data['id']); $this->assign('title',$res[0]['title']); $this->assign('sort',$res[0]['sort']); $pidarr=$group->field('title')->where(array('id'=> $res[0]['pid']))->select(); if($pidarr[0]['title']==''){$pidarr[0]['title']='顶级';} $this->assign('pid',$pidarr[0]['title']); $this->assign('action','/home/Role/edit'); $this->display('edit'); } } } public function perm(){ $data=I(); $group=M('auth_rule'); if(!isset($data['list'])){//查询权限菜单 $count= $group->count(id);// 查询满足要求的总记录数 $where = $group->query("SELECT rules from sp_auth_group WHERE id =(SELECT posname FROM sp_user WHERE username='".$_SESSION['zt_username']."')"); $wheres = substr($where[0]['rules'],0,strlen($where[0]['rules'])-1); $wheres=' where p.id in('.$wheres.')'; if($_SESSION['zt_username']=='admin'){ $wheres=''; } $list = $group->query('SELECT p.id,p.title,p.pid,p.cid,p.cpid,p.ctitle,p.allid FROM V_PERM02 AS p '.$wheres); $info = array( 'totalRow' => $count, 'pageSize' => $count,//分页时不传 'list' => $list, ); //$_SESSION['CCC']=$count; //$_SESSION['DDD']=print_r($list,true); echo json_encode($info); }elseif($data['list']=='get2'){//菜单功能 }elseif($data['list']=='set2'){//修改 $data=I(); $perms=''; foreach($data as $key => $value){ if(substr($key,0,9) == "checkbox_"){ $perms.=substr($key,9).','; } } $rules=M('auth_group'); $set=$rules->save(array('id'=> $data['permid'],'rules'=> $perms,'dataperm'=>$data['dataperm'])); if($set) echo json_encode(array('statusCode'=>200,'message'=> '保存成功')); else echo json_encode(array('statusCode'=>300,'message'=> '保存失败')); }else{ $sel=$group->query("SELECT rules,dataperm FROM sp_auth_group WHERE id=".$data['id']);//是否有权限 $v=explode(',',$sel[0]['rules']); $this->assign('pers',json_encode(array_filter($v))); $this->assign('permid',$data['id']); $this->assign('dataperm',$sel[0]['dataperm']); $this->assign('action','/home/Role/perm'); $this->display('perm'); } } public function del(){ $group=M('auth_group'); $data=I(); if (session('power')==2){ $this->mtReturn(300,'本账号没有该权限,如需开通请联系管理员',1); }else { $yes=M('auth_group_access')->where('group_id='.$data['id'])->count(); if($yes > 0){ $this->mtReturn(300,'删除失败,请却认当前角色无用户存在!'); } $used_data = M()->query("select * from sp_auth_group where id=".$data['id']); $res=$group->where('id='.$data['id'])->delete(); if($res){ //日志开始 $filename_log = "/var/www/html/jdxf/log/config_log".date("Y-m-d").".log"; $data_log ="\r\n".'['.date("Y-m-d H:i:s").']操作人员手机号:'.session('phone_login').'---角色管理删除(sp_auth_group表)---ID:'.$data['id']."\r\n"; $data_log1 ='删除前数据:'.json_encode($used_data)."\r\n"; file_put_contents($filename_log, $data_log, FILE_APPEND|LOCK_EX); file_put_contents($filename_log, $data_log1, FILE_APPEND|LOCK_EX); //日志开始结束 $this->mtReturn(200,'删除成功'.$data['id'] ); }else{ $this->mtReturn(300,'删除失败' ); } } } }