201 lines
4.8 KiB
PHP
201 lines
4.8 KiB
PHP
|
<?php
|
|||
|
namespace app\admin\controller\system;
|
|||
|
|
|||
|
use app\common\controller\AdminController;
|
|||
|
use app\admin\model\Admin as adminModel;
|
|||
|
use think\facade\View;
|
|||
|
use think\facade\Request;
|
|||
|
use think\facade\Db;
|
|||
|
use think\exception\ValidateException;
|
|||
|
use app\admin\model\AuthGroup as AuthGroupModel;
|
|||
|
use app\admin\model\AuthGroupAccess;
|
|||
|
use app\admin\model\AuthRule as AuthRuleModel;
|
|||
|
use LDAP\Result;
|
|||
|
use think\Response;
|
|||
|
|
|||
|
class AuthGroup extends AdminController
|
|||
|
{
|
|||
|
/**
|
|||
|
*
|
|||
|
* @var [type]
|
|||
|
*/
|
|||
|
protected $model = null;
|
|||
|
|
|||
|
public function __construct()
|
|||
|
{
|
|||
|
$this->model = new AuthGroupModel;
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 浏览
|
|||
|
*
|
|||
|
* @return void
|
|||
|
*/
|
|||
|
public function index()
|
|||
|
{
|
|||
|
$roles = Db::name('auth_group')->field('id,title')->where('status',1)->select();
|
|||
|
View::assign('roles',$roles);
|
|||
|
return View::fetch();
|
|||
|
}
|
|||
|
|
|||
|
//角色
|
|||
|
public function list()
|
|||
|
{
|
|||
|
|
|||
|
if(Request::isAjax()){
|
|||
|
$data = Request::only(['id']);
|
|||
|
$map = array_filter($data);
|
|||
|
$role = Db::name('auth_group')->field('id,title,limits,descr,status')->where($map)->select();
|
|||
|
$count = $role->count();
|
|||
|
$res = [];
|
|||
|
if($count){
|
|||
|
$res = ['code'=>0,'msg'=>'','count'=>$count];
|
|||
|
foreach($role as $k => $v){
|
|||
|
$data = ['id'=>$v['id'],'rolename'=>$v['title'],'limits'=>$v['limits'],'descr'=>$v['descr'],'check'=>$v['status']];
|
|||
|
$res['data'][] = $data;
|
|||
|
}
|
|||
|
} else {
|
|||
|
$res = ['code'=>-1,'msg'=>'没有查询结果!'];
|
|||
|
}
|
|||
|
return json($res);
|
|||
|
}
|
|||
|
$roles = Db::name('auth_group')->field('id,title')->where('status',1)->select();
|
|||
|
View::assign('roles',$roles);
|
|||
|
return View::fetch('index');
|
|||
|
}
|
|||
|
|
|||
|
//角色添加
|
|||
|
public function add()
|
|||
|
{
|
|||
|
if(Request::isAjax()){
|
|||
|
$data = Request::param();
|
|||
|
$result = AuthGroupModel::create($data);
|
|||
|
if($result) {
|
|||
|
$res = ['code'=>0,'msg'=>'添加成功'];
|
|||
|
} else {
|
|||
|
$res = ['code'=>-1,'msg'=>'添加失败'];
|
|||
|
}
|
|||
|
return json($res);
|
|||
|
}
|
|||
|
|
|||
|
$menus = $this->getRoleMenu(1);
|
|||
|
View::assign('menus',$menus);
|
|||
|
|
|||
|
return View::fetch();
|
|||
|
}
|
|||
|
|
|||
|
//角色编辑
|
|||
|
public function edit()
|
|||
|
{
|
|||
|
|
|||
|
if(Request::isAjax()){
|
|||
|
$data = Request::param();
|
|||
|
|
|||
|
/*
|
|||
|
if(!strpos($data['rules'],'1,2,3,4,5'))
|
|||
|
{
|
|||
|
$data['rules'] = substr_replace($data['rules'],"1,2,3,4,5,",0,0);
|
|||
|
}
|
|||
|
*/
|
|||
|
$rule = AuthGroupModel::update($data);
|
|||
|
if($rule){
|
|||
|
$res = ['code'=>0,'msg'=>'保存成功'];
|
|||
|
} else {
|
|||
|
$res = ['code'=>-1,'msg'=>'保存失败'];
|
|||
|
}
|
|||
|
return json($res);
|
|||
|
}
|
|||
|
$menus = $this->getRoleMenu(1);
|
|||
|
$role = AuthGroupModel::find(input('id'));
|
|||
|
$rus = explode(',',$role->rules);
|
|||
|
|
|||
|
View::assign(['role'=>$role,'rus'=>$rus,'menus'=>$menus]);
|
|||
|
return View::fetch();
|
|||
|
}
|
|||
|
|
|||
|
//角色删除
|
|||
|
public function delete($id)
|
|||
|
{
|
|||
|
$ids = explode(',',$id);
|
|||
|
if(Request::isAjax()){
|
|||
|
$role =AuthGroupModel::select($ids);
|
|||
|
$result = $role->delete();
|
|||
|
if($result){
|
|||
|
$res = ['code'=>0,'msg'=>'删除成功'];
|
|||
|
}else{
|
|||
|
$res = ['code'=>-1,'msg'=>'删除失败'];
|
|||
|
}
|
|||
|
return json($res);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
//角色审核
|
|||
|
public function check()
|
|||
|
{
|
|||
|
$data = Request::param();
|
|||
|
|
|||
|
//获取状态
|
|||
|
$res = Db::name('auth_group')->where('id',$data['id'])->save(['status' => $data['status']]);
|
|||
|
if($res){
|
|||
|
if($data['status'] == 1){
|
|||
|
return json(['code'=>0,'msg'=>'角色审核通过','icon'=>6]);
|
|||
|
} else {
|
|||
|
return json(['code'=>0,'msg'=>'禁用此角色','icon'=>5]);
|
|||
|
}
|
|||
|
|
|||
|
}else {
|
|||
|
return json(['code'=>-1,'msg'=>'审核出错']);
|
|||
|
}
|
|||
|
|
|||
|
}
|
|||
|
|
|||
|
/**
|
|||
|
* 授权
|
|||
|
*
|
|||
|
* @return void
|
|||
|
*/
|
|||
|
public function auth()
|
|||
|
{
|
|||
|
$roleId = request()->get('id');
|
|||
|
//
|
|||
|
if(Request::isAjax()) {
|
|||
|
$data = Request::only(['group_id', 'uid']);
|
|||
|
$uidArray = Db::name('auth_group_access')->where('group_id', (int) $data['group_id'])->column('uid');
|
|||
|
|
|||
|
$newUids = explode(',', $data['uid']);
|
|||
|
try {
|
|||
|
// 1.循环原有的UID跟现在提交过来的UID比较,没有在新uid的,被删除
|
|||
|
foreach($uidArray as $oldUid) {
|
|||
|
if(!in_array($oldUid, $newUids)){
|
|||
|
Db::name('auth_group_access')->where('uid', $oldUid)->delete();
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
// 2.循环现有的UID再次跟已存在的UID比较,没有的,新增加
|
|||
|
$uids = Db::name('auth_group_access')->where('group_id', (int) $data['group_id'])->column('uid');
|
|||
|
foreach($newUids as $newUid){
|
|||
|
if(!in_array($newUid, $uids)) {
|
|||
|
Db::name('auth_group_access')->save(['uid' => $newUid, 'group_id' => (int) $data['group_id']]);
|
|||
|
}
|
|||
|
}
|
|||
|
|
|||
|
return json(['code' => 0, 'msg' => 'ok']);
|
|||
|
} catch (\Exception $e) {
|
|||
|
return json(['code' => -1, 'msg' => $e->getMessage()]);
|
|||
|
}
|
|||
|
|
|||
|
// $groupAccess = new AuthGroupAccess();
|
|||
|
// $groupAccess->saveAll($array);
|
|||
|
}
|
|||
|
|
|||
|
$admin = Db::name('admin')->field('id, username')->select();
|
|||
|
$role = Db::name('auth_group')->field('id,title')->where('id', (int) $roleId)->find();
|
|||
|
$uidAccess = Db::name('auth_group_access')->where('group_id', (int) $roleId)->column('uid');
|
|||
|
|
|||
|
View::assign(['role'=>$role, 'admin' => $admin, 'uidAccess' => $uidAccess]);
|
|||
|
return View::fetch();
|
|||
|
}
|
|||
|
|
|||
|
|
|||
|
}
|