1
0
Files
helper/application/system/controller/Auth.php
2020-08-06 14:58:51 +08:00

149 lines
4.3 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
// +------------------------------------------------+
// |http://www.cjango.com |
// +------------------------------------------------+
// | 修复BUG不是一朝一夕的事情等我喝醉了再说吧 |
// +------------------------------------------------+
// | Author: 小陈叔叔 <Jason.Chen> |
// +------------------------------------------------+
namespace app\system\controller;
use app\common\model\Auth as AuthModel;
use app\common\model\Member as MemberModel;
use app\common\service\Auth as AuthService;
use think\Request;
class Auth extends _Init
{
/**
* 授权列表
* @return [type] [description]
*/
public function index()
{
$map['status'] = ['egt', 0];
$this->list = AuthModel::where($map)->paginate();
return $this->fetch();
}
/**
* 添加授权分组
* @param Request $request 要添加的分组数据
*/
public function add(Request $request)
{
if (IS_POST) {
$data = $request->post();
$result = AuthService::add($data);
return $this->back($result);
} else {
return $this->fetch();
}
}
/**
* 编辑授权分组
* @param [type] $id 授权分组id
* @return [type] [description]
*/
public function edit(Request $request, $id)
{
if (IS_POST) {
$data = $request->post();
$result = AuthService::edit($data);
return $this->back($result);
} else {
$this->info = AuthModel::get($id);
return $this->fetch('add');
}
}
/**
* 删除分组
* @param [type] $id 授权分组 id
* @return [type] [description]
*/
public function del($id)
{
$result = AuthService::del($id);
return $this->back($result);
}
/**
* 设置分组状态 正常 和 禁用
* @param [type] $id 授权分组 id
* @param [type] $status 成功 还是 失败 失败返回失败的信息
* @return [type] [description]
*/
public function status($id, $status)
{
$result = AuthService::status($id, $status);
return $this->back($result);
}
/**
* 菜单授权
* @param [type] $id 授权分组id
* @return [type] [description]
*/
public function menu(Request $request, $id)
{
if (IS_POST) {
$rules = $request->post('rules/a');
$result = AuthService::setAuthRuels($id, $rules);
return $this->back($result);
} else {
$this->assign('node_list', AuthService::getAuthRules($id));
return $this->fetch();
}
}
/**
* 用户授权页面
* @param Request $request 提交的信息
* @param [type] $id 分组id
* @return [type] 用户列表
*/
public function user(Request $request, $id)
{
$authed = AuthService::getAuthedUids($id);
if (IS_POST) {
$username = $request->post('username');
$list = MemberModel::field('id,username')->whereOr(function ($query) use ($username) {
$query->whereOr('id', $username)->whereOr('username', 'like', "%{$username}%");
})->where('status', 1)->where('id', 'notin', $authed)->limit(10)->select();
foreach ($list as $key => &$value) {
$value['nickname'] = $value->info->nickname;
}
return $this->success('', '', $list);
} else {
$this->list = MemberModel::where('status', 1)->where('id', 'in', $authed)->paginate();
return $this->fetch();
}
}
/**
* 把用户移除分组
* @param [type] $id 分组id
* @param [type] $uid 用户id
* @return [type] 返回结果
*/
public function remove($id, $uid)
{
$result = AuthService::removeAuthUser($id, $uid);
return $this->back($result);
}
/**
* 设置用户授权
* @param [type] $id 分组id
* @param [type] $uid 用户ids
* @return [type] [description]
*/
public function insert($id, $uid)
{
$result = AuthService::setAuthUser($id, $uid);
return $this->back($result);
}
}