2023-01-29 10:26:52 +08:00

110 lines
3.1 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | 小说系统 [ WE CAN DO IT JUST THINK IT ]
// +----------------------------------------------------------------------
namespace app\common\model;
/**
* 设置模型
*/
class AuthGroup extends Base{
const TYPE_ADMIN = 1; // 管理员用户组类型标识
const MEMBER = 'member';
const AUTH_GROUP_ACCESS = 'auth_group_access'; // 关系表表名
const AUTH_EXTEND = '__AUTH_EXTEND__'; // 动态权限扩展信息表
const AUTH_GROUP = 'auth_group'; // 用户组表名
const AUTH_EXTEND_CATEGORY_TYPE = 1; // 分类权限标识
const AUTH_EXTEND_MODEL_TYPE = 2; //分类权限标识
protected $type = array(
'id' => 'integer',
);
public $keyList = array(
array('name'=>'id', 'title'=>'ID', 'type'=>'hidden', 'help'=>'', 'option'=>''),
array('name'=>'module', 'title'=>'所属模块', 'type'=>'hidden', 'help'=>'', 'option'=>''),
array('name'=>'title', 'title'=>'用户组名', 'type'=>'text', 'help'=>'', 'option'=>''),
array('name'=>'description', 'title'=>'分组描述', 'type'=>'textarea', 'help'=>'', 'option'=>''),
array('name'=>'status', 'title'=>'状态', 'type'=>'select', 'help'=>'', 'option'=>array(
0 => '禁用',
1 => '启用'
)),
);
public function change(){
$data = input('post.');
if ($data['id']) {
$result = $this->save($data, array('id'=>$data['id']));
}else{
$result = $this->save($data);
}
if (false !== $result) {
return true;
}else{
$this->error = "失败!";
return false;
}
}
/**
* 返回用户拥有管理权限的分类id列表
*
* @param int $uid 用户id
* @return array
*
* array(2,4,8,13)
*
* @author 朱亚杰 <zhuyajie@topthink.net>
*/
static public function getAuthModels($uid){
return self::getAuthExtend($uid,self::AUTH_EXTEND_MODEL_TYPE,'AUTH_MODEL');
}
/**
* 返回用户拥有管理权限的分类id列表
*
* @param int $uid 用户id
* @return array
*
* array(2,4,8,13)
*
* @author 朱亚杰 <zhuyajie@topthink.net>
*/
static public function getAuthCategories($uid){
return self::getAuthExtend($uid,self::AUTH_EXTEND_CATEGORY_TYPE,'AUTH_CATEGORY');
}
/**
* 返回用户拥有管理权限的扩展数据id列表
*
* @param int $uid 用户id
* @param int $type 扩展数据标识
* @param int $session 结果缓存标识
* @return array
*
* array(2,4,8,13)
*
* @author 朱亚杰 <xcoolcc@gmail.com>
*/
static public function getAuthExtend($uid,$type,$session){
if ( !$type ) {
return false;
}
if ( $session ) {
$result = session($session);
}
if ( $uid == session('user_auth.uid') && !empty($result) ) {
return $result;
}
$result = db(self::AUTH_GROUP_ACCESS)->alias('g')
->join(self::AUTH_EXTEND.' c', 'g.group_id=c.group_id')
->where("g.uid='$uid' and c.type='$type' and !isnull(extend_id)")
->column('extend_id');
if ( $uid == session('user_auth.uid') && $session ) {
session($session,$result);
}
return $result;
}
}