123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- <?php
- namespace app\admin\controller;
- /**
- * 角色管理
- */
- class Role extends Admin{
- private $Role = null;
- protected function _initialize(){
- parent::_initialize();
- $this->Role = model('Role');
- }
- public function index(){
- $role = $this->user['role'];
- $this->assign('role',$role);
- $this->assign('meta_title','角色列表');
- return $this->fetch();
- }
- public function load(){
- $where = [];
- $role = $this->user['role'];
- $where['pid'] = 1;
- $page = input('get.page');
- $limit = input('get.limit');
- $list = $this->Role->where($where)->paginate($limit,false,['page'=>$page]);
- $data = [];
- foreach ($list as $key => $value) {
- $data[$key]['id'] = $value['id'];
- $data[$key]['name'] = $value['name'];
- $data[$key]['cname'] = $value['cname'];
- $data[$key]['description'] = $value['description'];
- }
- return json(['data'=>$data,'count'=>$list->total(), 'code'=>0,'msg'=>'加载成功']);
- }
- public function add(){
- if ($this->request->isPost()) {
- $role = $this->user['role'];
- $this->Role->pid = $role['id'];
- $this->Role->name = input('post.name');
- $this->Role->cname = input('post.cname');
- $this->Role->description = input('post.description');
- $result = $this->Role->save();
- if ($result) {
- return json(['data'=>$this->Role->id,'code'=>0,'msg'=>'添加角色成功']);
- }
- return json(['data'=>$_POST,'code'=>1,'msg'=>'添加角色失败']);
- }else{
- $this->assign('meta_title','添加角色');
- return $this->fetch();
- }
- }
- public function edit(){
- if ($this->request->isPost()) {
- $id = input('post.id');
- $role = $this->Role->get($id);
- if ($role) {
- $role->name = input('post.name');
- $role->cname = input('post.cname');
- $role->description = input('post.description');
- $result = $role->save();
- if ($result) {
- return json(['data'=>null,'code'=>0,'msg'=>'编辑角色成功']);
- }
- return json(['data'=>$_POST,'code'=>1,'msg'=>'编辑角色失败']);
- }else{
- return json(['data'=>$_POST,'code'=>1,'msg'=>'参数错误']);
- }
- }else{
- $id = input('param.id');
- $role = $this->Role->where(['id'=>$id])->find();
- $this->assign('role',$role);
- $this->assign('meta_title','编辑角色');
- return $this->fetch();
- }
- }
- public function delete(){
- if ($this->request->isPost()) {
- $id = input('post.id');
- $role = $this->Role->where(['id'=>$id])->find();
- if (!$role) {
- return json(['data'=>$_POST,'code'=>1,'msg'=>'参数错误']);
- }
- $result = $role->delete();
- if ($result) {
- return json(['data'=>null,'code'=>0,'msg'=>'删除成功']);
- }
- return json(['data'=>null,'code'=>1,'msg'=>'删除失败']);
- }
- }
- public function loadnavis(){
- $role_id = input('get.role_id');
- $role = $this->Role->where(['id'=>$role_id])->find();
- if (!$role) {
- $this->error('参数错误');
- }
- $navis = $role['navis'];
- $navis_arr = [];
- if (!empty($navis)) {
- $navis_arr = explode(',', $navis);
- }
- $Navi = model('Navi');
- $pid = input('get.pid',0);
- $level = input('get.level',3);
-
- $list = model('Navi')->tree($pid,$this->user['role']['name'],[],$level);
- foreach ($list as $key => $value) {
- if (in_array($value['id'], $navis_arr)) {
- $list[$key]['checked'] = true;
- }
- }
- return json(['data'=>$list,'code'=>0,'msg'=>'加载成功']);
- }
- public function auth(){
- if ($this->request->isPost()) {
- $id = input('post.id');
- $role = $this->Role->where(['id'=>$id])->find();
- if (!$role) {
- return json(['data'=>$_POST,'code'=>1,'msg'=>'参数错误']);
- }
- $navis = input('navis/a',[]);
- $ids = [];
- $func = function($arr) use(&$func,&$ids){
- foreach ($arr as $key => $value) {
- $id = $value['id'];
- array_push($ids, $id);
- if (isset($value['children'])) {
- $func($value['children']);
- }
- }
- };
- $func($navis);
- $ids_str = implode(',', $ids);
- $role->navis = $ids_str;
- $result = $role->save();
- if ($result) {
- return json(['data'=>null,'code'=>0,'msg'=>'授权成功']);
- }
- return json(['data'=>$ids_str,'code'=>1,'msg'=>'授权失败']);
- }else{
- $role = $this->user['role'];
- $Navi = model('Navi');
- $navis = $Navi->navis(0,$role['name'],[]);
- $this->assign('navis',$navis);
- $id = input('param.id');
- $role = $this->Role->where(['id'=>$id])->find();
- if (!$role) {
- $this->error('参数错误');
- }
- $this->assign('role',$role);
- $this->assign('meta_title','角色授权');
- return $this->fetch();
- }
- }
- }
|