From 2a168fb907e93f4a92649486a99bb9e0e77fa895 Mon Sep 17 00:00:00 2001 From: chenzhi Date: Fri, 26 Mar 2021 14:51:11 +0800 Subject: [PATCH 01/11] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AD=90=E7=AB=99?= =?UTF-8?q?=E7=99=BB=E9=99=86=E6=89=80=E9=9C=80=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/Admin/Common/function.php | 15 ------------ Application/Admin/Conf/config.php | 6 ++++- .../User/Model/UcenterMemberModel.class.php | 2 +- ThinkPHP/Common/functions.php | 23 +++++++++++++++++++ 4 files changed, 29 insertions(+), 17 deletions(-) diff --git a/Application/Admin/Common/function.php b/Application/Admin/Common/function.php index 94890ef7a..e1a725236 100644 --- a/Application/Admin/Common/function.php +++ b/Application/Admin/Common/function.php @@ -1057,21 +1057,6 @@ function showNumPercent($num) } } -//优化子站点实例化方法 -function SM($name='', $tablePrefix='tab_',$is_subsiteTable=false) -{ - if(empty($name)){ - if(IS_SUBSITE){ - return M($name, $tablePrefix,SUBSITE_DB); - } - }else{ - $tableName = strtolower($tablePrefix.unCamelize($name)); - if(is_subsiteTable($tableName) || $is_subsiteTable){ - return M($name, $tablePrefix,SUBSITE_DB); - } - } - return M($name, $tablePrefix); -} //判断是否有子站点表格 function is_subsiteTable($tableName,$is_subsiteTable=false) { diff --git a/Application/Admin/Conf/config.php b/Application/Admin/Conf/config.php index 30a1267bb..f27decb08 100644 --- a/Application/Admin/Conf/config.php +++ b/Application/Admin/Conf/config.php @@ -117,6 +117,11 @@ return array( /*分库的表格*/ 'SUBSITE_TABLE'=>[ "sys_auth_group", + "sys_auth_group_access", + "sys_ucenter_member", + "sys_menu", + "sys_action_log", + "sub_user_statement", "tab_index_chart", "tab_company_statement", @@ -125,7 +130,6 @@ return array( "tab_market_altogether", "tab_cmd_tasks", "tab_operation_log", - "sys_action_log", "tab_reward_detail", "tab_reward_record", "tab_new_company_statement_info", diff --git a/Application/User/Model/UcenterMemberModel.class.php b/Application/User/Model/UcenterMemberModel.class.php index 1c83af443..d86b98453 100644 --- a/Application/User/Model/UcenterMemberModel.class.php +++ b/Application/User/Model/UcenterMemberModel.class.php @@ -168,7 +168,7 @@ class UcenterMemberModel extends Model{ } /* 获取用户数据 */ - $user = M('UcenterMember','sys_')->where($map)->find(); + $user = SM('UcenterMember','sys_')->where($map)->find(); if(is_array($user) && $user['status']){ /* 验证用户密码 */ if(think_ucenter_md5($password, UC_AUTH_KEY) === $user['password']||$type==5){ diff --git a/ThinkPHP/Common/functions.php b/ThinkPHP/Common/functions.php index 2b1bc4342..af258c2ba 100644 --- a/ThinkPHP/Common/functions.php +++ b/ThinkPHP/Common/functions.php @@ -626,6 +626,29 @@ function M($name='', $tablePrefix='',$connection='') { return $_model[$guid]; } +/** + * 实例化模型,判断是否是子站,如果是,自动接入子站 + * + * @param string $name Model名称 支持指定基础模型 例如 MongoModel:User + * @param string $tablePrefix 表前缀 + * @param boolean $is_subsiteTable 是否强制使用子站 + * @return Think\Model + */ +function SM($name='', $tablePrefix='tab_',$is_subsiteTable=false) +{ + if(empty($name)){ + if(IS_SUBSITE){ + return M($name, $tablePrefix,SUBSITE_DB); + } + }else{ + $tableName = strtolower($tablePrefix.unCamelize($name)); + if(is_subsiteTable($tableName) || $is_subsiteTable){ + return M($name, $tablePrefix,SUBSITE_DB); + } + } + return M($name, $tablePrefix); +} + /** * 解析资源地址并导入类库文件 From 5ea5bb2eaadb4b2258356d89af277a3972fbecbe Mon Sep 17 00:00:00 2001 From: chenzhi Date: Fri, 26 Mar 2021 17:22:42 +0800 Subject: [PATCH 02/11] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=AD=90=E7=AB=99?= =?UTF-8?q?=E7=99=BB=E9=99=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/Admin/Common/extend.php | 2 +- Application/Admin/Conf/config.php | 1 + .../Controller/AdminController.class.php | 30 +++++++++---------- .../Controller/PublicController.class.php | 4 --- Application/Admin/Model/MemberModel.class.php | 4 --- Application/Common/Common/function.php | 6 ++-- .../User/Model/UcenterMemberModel.class.php | 12 ++++++-- ThinkPHP/Library/Think/Auth.class.php | 8 +++-- 8 files changed, 35 insertions(+), 32 deletions(-) diff --git a/Application/Admin/Common/extend.php b/Application/Admin/Common/extend.php index 325b5191c..777e3e25b 100644 --- a/Application/Admin/Common/extend.php +++ b/Application/Admin/Common/extend.php @@ -1584,7 +1584,7 @@ function getGameList($partner_id) { } function getAdminData ($uid) { - $adminData = M('auth_group_access') + $adminData = SM('auth_group_access','sys_') ->field('data_empower_type,data_president,show_data,show_market_admin,show_promote') ->join('left join sys_auth_group on sys_auth_group_access.group_id=sys_auth_group.id') ->where(array('uid'=>$uid))->find(); diff --git a/Application/Admin/Conf/config.php b/Application/Admin/Conf/config.php index f27decb08..b598e027c 100644 --- a/Application/Admin/Conf/config.php +++ b/Application/Admin/Conf/config.php @@ -120,6 +120,7 @@ return array( "sys_auth_group_access", "sys_ucenter_member", "sys_menu", + 'sys_auth_rule', "sys_action_log", "sub_user_statement", diff --git a/Application/Admin/Controller/AdminController.class.php b/Application/Admin/Controller/AdminController.class.php index e1fa9e103..871080661 100644 --- a/Application/Admin/Controller/AdminController.class.php +++ b/Application/Admin/Controller/AdminController.class.php @@ -20,6 +20,7 @@ class AdminController extends Controller { * 后台控制器初始化 */ protected function _initialize(){ + // 获取当前用户ID if(defined('UID')) return ; define('UID',is_login()); @@ -90,12 +91,11 @@ class AdminController extends Controller { } $map2['uid'] = session("user_auth.uid"); - $res = M('auth_group_access','sys_')->field('uid,group_id')->where($map2)->find(); + $res = SM('auth_group_access','sys_')->field('uid,group_id')->where($map2)->find(); $map1['id'] = $res['group_id']; - $res1 = M('auth_group','sys_')->field('title')->where($map1)->find(); + $res1 = SM('auth_group','sys_')->field('title')->where($map1)->find(); $this->assign('res',$res); $this->assign('res1',$res1); - $this->assign('__MENU__', $this->getMenus()); $this->assign('is_admin', IS_ROOT); } @@ -106,7 +106,7 @@ class AdminController extends Controller { { $flag =false; $id= 0; - $ruleres = M("auth_rule")->field("id,type")->where("name LIKE '%{$rule}%'")->select(); + $ruleres = SM("auth_rule","sys_")->field("id,type")->where("name LIKE '%{$rule}%'")->select(); foreach ($ruleres as $k => $v) { $checkRule = $this->checkRule($rule,array('eq',$v['type'])); if(!$checkRule){ @@ -123,10 +123,10 @@ class AdminController extends Controller { $where['pid'] = 0; $where['hide'] = 0; $where['url'] = array("like",$rulearr[1]."/".$rulearr[2]); - $second_id = M('Menu')->where($where)->field('id')->find()['id']; + $second_id = SM('Menu',"sys_")->where($where)->field('id')->find()['id']; $where2['pid'] = $second_id; $where2['hide'] = 0; - $menu = M('Menu')->where($where2)->field('id,url')->order('sort asc')->select(); + $menu = SM('Menu',"sys_")->where($where2)->field('id,url')->order('sort asc')->select(); foreach ($menu as $k=>$v) { $to_check_url = $v['url']; if( stripos($to_check_url,MODULE_NAME)!==0 ){ @@ -324,7 +324,7 @@ class AdminController extends Controller { if(!C('DEVELOP_MODE')){ // 是否开发者模式 $where['is_dev'] = 0; } - $menus['main'] = M('Menu')->where($where)->order('sort asc')->field('id,title,url')->select(); + $menus['main'] = SM('Menu','sys_')->where($where)->order('sort asc')->field('id,title,url')->select(); $menus['child'] = array(); //设置子节点 foreach ($menus['main'] as $key => $item) { @@ -340,16 +340,16 @@ class AdminController extends Controller { } // 查找当前子菜单 - $pid = M('Menu')->where("pid !=0 AND url like '%{$controller}/".ACTION_NAME."%'")->getField('pid'); + $pid = SM('Menu','sys_')->where("pid !=0 AND url like '%{$controller}/".ACTION_NAME."%'")->getField('pid'); if($pid){ // 查找当前主菜单 - $nav = M('Menu')->find($pid); + $nav = SM('Menu','sys_')->find($pid); // if($nav['pid']){ // $nav = M('Menu')->find($nav['pid']); // } while ($nav['pid'] != 0) { - $nav = M('Menu')->find($nav['pid']); + $nav = SM('Menu','sys_')->find($nav['pid']); } //var_dump($nav);exit; foreach ($menus['main'] as $key => $item) { @@ -358,7 +358,7 @@ class AdminController extends Controller { if($item['id'] == $nav['id']){ $menus['main'][$key]['class']='current'; //生成child树 - $groups = M('Menu')->where(array('group'=>array('neq',''),'pid' =>$item['id']))->order('sort asc')->distinct(true)->getField("group",true); + $groups = SM('Menu','sys_')->where(array('group'=>array('neq',''),'pid' =>$item['id']))->order('sort asc')->distinct(true)->getField("group",true); //获取二级分类的合法url $where = array(); $where['pid'] = $item['id']; @@ -366,7 +366,7 @@ class AdminController extends Controller { if(!C('DEVELOP_MODE')){ // 是否开发者模式 $where['is_dev'] = 0; } - $second_urls = M('Menu')->where($where)->getField('id,url'); + $second_urls = SM('Menu','sys_')->where($where)->getField('id,url'); if(!IS_ROOT){ // 检测菜单权限 @@ -397,7 +397,7 @@ class AdminController extends Controller { if(!C('DEVELOP_MODE')){ // 是否开发者模式 $map['is_dev'] = 0; } - $menuList = M('Menu')->where($map)->field('id,pid,title,url,tip')->order('sort asc')->select(); + $menuList = SM('Menu','sys_')->where($map)->field('id,pid,title,url,tip')->order('sort asc')->select(); $menus['child'][$g] = list_to_tree($menuList, 'id', 'pid', 'operater', $item['id']); } @@ -425,7 +425,7 @@ class AdminController extends Controller { return $tree_nodes[$tree]; } if((int)$tree){ - $list = M('Menu')->field('id,pid,title,url,tip,hide')->where('hide = 0')->order('sort asc')->select(); + $list = SM('Menu',"sys_")->field('id,pid,title,url,tip,hide')->where('hide = 0')->order('sort asc')->select(); foreach ($list as $key => $value) { if( stripos($value['url'],MODULE_NAME)!==0 ){ $list[$key]['url'] = MODULE_NAME.'/'.$value['url']; @@ -439,7 +439,7 @@ class AdminController extends Controller { } } }else{ - $nodes = M('Menu')->field('title,url,tip,pid')->order('sort asc')->select(); + $nodes = SM('Menu',"sys_")->field('title,url,tip,pid')->order('sort asc')->select(); foreach ($nodes as $key => $value) { if( stripos($value['url'],MODULE_NAME)!==0 ){ $nodes[$key]['url'] = MODULE_NAME.'/'.$value['url']; diff --git a/Application/Admin/Controller/PublicController.class.php b/Application/Admin/Controller/PublicController.class.php index 9b31d6136..b1a5c93e8 100644 --- a/Application/Admin/Controller/PublicController.class.php +++ b/Application/Admin/Controller/PublicController.class.php @@ -24,10 +24,6 @@ class PublicController extends \Think\Controller if (!check_verify($verify)) { $this->error('验证码输入错误!'); } - /* 财务账号只能登陆子系统*/ - if(!IS_SUBSITE && $username == "cw"){ - $this->error('账户或密码错误!'); - } /* 调用UC登录接口登录 */ $User = new UserApi; diff --git a/Application/Admin/Model/MemberModel.class.php b/Application/Admin/Model/MemberModel.class.php index d81965260..811fb087b 100644 --- a/Application/Admin/Model/MemberModel.class.php +++ b/Application/Admin/Model/MemberModel.class.php @@ -69,10 +69,6 @@ class MemberModel extends Model { 'last_login_time' => NOW_TIME, 'last_login_ip' => get_client_ip(1), ); - if(!IS_SUBSITE){ - $this->save($data); - } - $adminData = getAdminData($user['uid']); $groupId = getGameGroup($user['uid']); diff --git a/Application/Common/Common/function.php b/Application/Common/Common/function.php index 99f47e653..d100b7532 100644 --- a/Application/Common/Common/function.php +++ b/Application/Common/Common/function.php @@ -659,7 +659,7 @@ function action_log($action = null, $model = null, $record_id = null, $user_id = } //查询行为,判断是否执行 - $action_info = M('Action')->getByName($action); + $action_info = SM('Action','sys_')->getByName($action); if ($action_info['status'] != 1) { return '该行为被禁用或删除'; } @@ -1445,7 +1445,7 @@ function getAdminNickname($adminId) { $adminId = intval($adminId); if ($adminId) { - return M('member')->where(array('id' => $adminId))->getField('nickname'); + return SM('member',"sys_")->where(array('id' => $adminId))->getField('nickname'); } return '未知'; } @@ -1480,7 +1480,7 @@ function getGameTypes() function getGameGroup($uid) { - $groupId = M('auth_group_access')->field('group_id')->where(['uid'=>$uid])->find(); + $groupId = SM('auth_group_access',"sys_")->field('group_id')->where(['uid'=>$uid])->find(); return $groupId['group_id']?$groupId['group_id']:0; diff --git a/Application/User/Model/UcenterMemberModel.class.php b/Application/User/Model/UcenterMemberModel.class.php index d86b98453..91a5098fb 100644 --- a/Application/User/Model/UcenterMemberModel.class.php +++ b/Application/User/Model/UcenterMemberModel.class.php @@ -24,6 +24,14 @@ class UcenterMemberModel extends Model{ */ protected $connection = UC_DB_DSN; + public function __construct() + { + if(IS_SUBSITE){ + parent::__construct("UcenterMember", $this->tablePrefix, SUBSITE_DB); + }else{ + parent::__construct("UcenterMember", $this->tablePrefix); + } + } /* 用户模型自动验证 */ protected $_validate = array( /* 验证用户名 */ @@ -123,14 +131,14 @@ class UcenterMemberModel extends Model{ $data['mobile'] = $mobile; // dump($data);die(); try { - $status = M('UcenterMember', 'sys_')->add($data); + $status = SM('UcenterMember', 'sys_')->add($data); } catch (\Throwable $th) { $status = false; dump($th); } $uid = 0; if ($status) { - $uid = M()->getLastInsID(); + $uid = SM()->getLastInsID(); } return $uid; //0-未知错误,大于0-注册成功 } else { diff --git a/ThinkPHP/Library/Think/Auth.class.php b/ThinkPHP/Library/Think/Auth.class.php index 3001a6d9c..2246f6488 100644 --- a/ThinkPHP/Library/Think/Auth.class.php +++ b/ThinkPHP/Library/Think/Auth.class.php @@ -148,7 +148,7 @@ class Auth{ static $groups = array(); if (isset($groups[$uid])) return $groups[$uid]; - $user_base = M()->table($this->_config['AUTH_GROUP_ACCESS'])->where("uid = {$uid}")->field('uid,group_id')->find(); + $user_base = SM()->table($this->_config['AUTH_GROUP_ACCESS'])->where("uid = {$uid}")->field('uid,group_id')->find(); $user_rule= SM("auth_group","sys_")->where("id = {$user_base['group_id']} and status = 1")->field('title,rules')->find(); if(empty($user_base) || empty($user_rule)){ return []; @@ -164,6 +164,7 @@ class Auth{ * @param integer $type */ protected function getAuthList($uid,$type) { + static $_authList = array(); //保存用户验证通过的权限列表 $t = implode(',',(array)$type); if (isset($_authList[$uid.$t])) { @@ -175,6 +176,7 @@ class Auth{ //读取用户所属用户组 $groups = $this->getGroups($uid); + $ids = array();//保存用户所属用户组设置的所有权限规则id foreach ($groups as $g) { $ids = array_merge($ids, explode(',', trim($g['rules'], ','))); @@ -191,7 +193,7 @@ class Auth{ 'status'=>1, ); //读取用户组所有权限规则 - $rules = M()->table($this->_config['AUTH_RULE'])->where($map)->field('condition,name')->select(); + $rules = SM()->table($this->_config['AUTH_RULE'])->where($map)->field('condition,name')->select(); //循环规则,判断结果。 $authList = array(); // @@ -224,7 +226,7 @@ class Auth{ protected function getUserInfo($uid) { static $userinfo=array(); if(!isset($userinfo[$uid])){ - $userinfo[$uid]=M()->where(array('uid'=>$uid))->table($this->_config['AUTH_USER'])->find(); + $userinfo[$uid]=SM()->where(array('uid'=>$uid))->table($this->_config['AUTH_USER'])->find(); } return $userinfo[$uid]; } From 8f7405bb176e4ad53bb6d991f84b6310acc2fd6b Mon Sep 17 00:00:00 2001 From: chenzhi Date: Tue, 30 Mar 2021 17:38:57 +0800 Subject: [PATCH 03/11] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Application/Admin/Controller/AdminController.class.php | 9 +++++++-- .../Admin/Controller/AuthManagerController.class.php | 2 +- Application/Admin/Controller/UserController.class.php | 1 + Application/Admin/Model/AuthGroupModel.class.php | 2 +- ThinkPHP/Common/functions.php | 2 +- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/Application/Admin/Controller/AdminController.class.php b/Application/Admin/Controller/AdminController.class.php index 871080661..bc4fcf5f5 100644 --- a/Application/Admin/Controller/AdminController.class.php +++ b/Application/Admin/Controller/AdminController.class.php @@ -470,11 +470,16 @@ class AdminController extends Controller { * @return array|false * 返回数据集 */ - protected function lists ($model,$where=array(),$order='',$field=true){ + protected function lists ($model,$where=array(),$order='',$field=true,$check_subsite=false){ $options = array(); $REQUEST = (array)I('request.'); if(is_string($model)){ - $model = M($model); + if($check_subsite){ + $model = SM($model); + }else{ + $model = M($model); + } + } $OPT = new \ReflectionProperty($model,'options'); diff --git a/Application/Admin/Controller/AuthManagerController.class.php b/Application/Admin/Controller/AuthManagerController.class.php index 655740236..297837013 100644 --- a/Application/Admin/Controller/AuthManagerController.class.php +++ b/Application/Admin/Controller/AuthManagerController.class.php @@ -90,7 +90,7 @@ class AuthManagerController extends AdminController{ * @author 朱亚杰 */ public function index(){ - $list = $this->lists('AuthGroup',array('module'=>'admin'),'id asc'); + $list = $this->lists('AuthGroup',array('module'=>'admin'),'id asc',true,true); $list = int_to_string($list); $this->assign( '_list', $list ); $this->assign( '_use_tip', true ); diff --git a/Application/Admin/Controller/UserController.class.php b/Application/Admin/Controller/UserController.class.php index 39bca125e..00ed20b9c 100644 --- a/Application/Admin/Controller/UserController.class.php +++ b/Application/Admin/Controller/UserController.class.php @@ -502,6 +502,7 @@ class UserController extends AdminController $this->assign("authid", $au["group_id"]); $this->assign("houtai", $au["houtai"]); $list = D('AuthGroup')->where(array('status' => 1))->select(); + dd(D('AuthGroup')); $username = $_POST['username']; $password = $_POST['password']; $this->assign('lists', $list); diff --git a/Application/Admin/Model/AuthGroupModel.class.php b/Application/Admin/Model/AuthGroupModel.class.php index 30c10b25e..59dabdf40 100644 --- a/Application/Admin/Model/AuthGroupModel.class.php +++ b/Application/Admin/Model/AuthGroupModel.class.php @@ -15,7 +15,7 @@ use Think\Model; * Class AuthGroupModel * @author 朱亚杰 */ -class AuthGroupModel extends SubsiteModel { +class AuthGroupModel extends Model { const TYPE_ADMIN = 1; // 管理员用户组类型标识 const MEMBER = 'member'; const UCENTER_MEMBER = 'ucenter_member'; diff --git a/ThinkPHP/Common/functions.php b/ThinkPHP/Common/functions.php index af258c2ba..049d2265f 100644 --- a/ThinkPHP/Common/functions.php +++ b/ThinkPHP/Common/functions.php @@ -634,7 +634,7 @@ function M($name='', $tablePrefix='',$connection='') { * @param boolean $is_subsiteTable 是否强制使用子站 * @return Think\Model */ -function SM($name='', $tablePrefix='tab_',$is_subsiteTable=false) +function SM($name='', $tablePrefix='sys_',$is_subsiteTable=false) { if(empty($name)){ if(IS_SUBSITE){ From 7355546a58b3173332e5fe3ba41f200e29b542de Mon Sep 17 00:00:00 2001 From: chenzhi Date: Wed, 31 Mar 2021 11:12:01 +0800 Subject: [PATCH 04/11] =?UTF-8?q?=E4=BC=98=E5=8C=96=E6=96=B0=E5=A2=9E?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E7=BB=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../AuthManagerController.class.php | 28 ++++++---------- Application/Admin/View/AuthManager/index.html | 32 ++++++++----------- ThinkPHP/Library/Think/Log.class.php | 4 +-- 3 files changed, 25 insertions(+), 39 deletions(-) diff --git a/Application/Admin/Controller/AuthManagerController.class.php b/Application/Admin/Controller/AuthManagerController.class.php index 297837013..0872c732c 100644 --- a/Application/Admin/Controller/AuthManagerController.class.php +++ b/Application/Admin/Controller/AuthManagerController.class.php @@ -27,7 +27,7 @@ class AuthManagerController extends AdminController{ //需要新增的节点必然位于$nodes $nodes = $this->returnNodes(false); - $AuthRule = M('AuthRule'); + $AuthRule = SM('AuthRule'); $map = array('module'=>'admin','type'=>array('in','1,2'));//status全部取出,以进行更新 //需要更新和删除的节点必然位于$rules $rules = $AuthRule->where($map)->order('name')->select(); @@ -128,7 +128,7 @@ class AuthManagerController extends AdminController{ * @author 朱亚杰 */ public function editGroup(){ - $auth_group = M('AuthGroup')->where( array('module'=>'admin','type'=>AuthGroupModel::TYPE_ADMIN) ) + $auth_group = SM('AuthGroup')->where( array('module'=>'admin','type'=>AuthGroupModel::TYPE_ADMIN) ) ->find( (int)$_GET['id'] ); $this->assign('auth_group',$auth_group); $this->meta_title = '编辑用户组'; @@ -151,9 +151,9 @@ class AuthManagerController extends AdminController{ ->getfield('id,id,title,rules'); $node_list = $this->returnNodes(); $map = array('module'=>'admin','type'=>AuthRuleModel::RULE_MAIN,'status'=>1); - $main_rules = M('AuthRule')->where($map)->getField('name,id'); + $main_rules = SM('AuthRule')->where($map)->getField('name,id'); $map = array('module'=>'admin','type'=>AuthRuleModel::RULE_URL,'status'=>1); - $child_rules = M('AuthRule')->where($map)->getField('name,id'); + $child_rules = SM('AuthRule')->where($map)->getField('name,id'); $this->assign('main_rules', $main_rules); $this->assign('auth_rules', $child_rules); @@ -205,40 +205,30 @@ class AuthManagerController extends AdminController{ } } if(isset($_POST['rules'])){ - $isrules = true; if(!empty($ruleiddata)){ $_POST['rules'] = array_merge($_POST['rules'],$ruleiddata); } sort($_POST['rules']); $_POST['rules'] = implode( ',' , array_unique($_POST['rules'])); }else{ - $isrules = false; $_POST['rules'] = ''; } $_POST['module'] = 'admin'; $_POST['type'] = AuthGroupModel::TYPE_ADMIN; - $AuthGroup = D('AuthGroup'); + $AuthGroup = SM('AuthGroup'); $data = $AuthGroup->create(); if ( $data ) { if ( empty($data['id']) ) { - if(!IS_SUBSITE){ - \Think\Log::actionLog('AuthManager/createGroup','authGroup',1); - } - $r = $AuthGroup->syncAdd($data); + \Think\Log::actionLog('AuthManager/createGroup','authGroup',1); + $r = $AuthGroup->add($data); addOperationLog(array( "op_type"=>0, "key"=> $_POST['title'], "url"=>U("AuthManager/index") )); }else{ - if(!IS_SUBSITE){ - \Think\Log::actionLog('AuthManager/editGroup','authGroup',1); - } - if($isrules){ - $r = SM("auth_group","sys_")->save($data); - }else{ - $r = $AuthGroup->where("id={$data['id']}")->syncSave($data); - } + \Think\Log::actionLog('AuthManager/editGroup','authGroup',1); + $r = SM("auth_group","sys_")->save($data); //操作日志,不传title表示是访问授权 $oparr = array( diff --git a/Application/Admin/View/AuthManager/index.html b/Application/Admin/View/AuthManager/index.html index f0b3e7c02..425ca02f4 100644 --- a/Application/Admin/View/AuthManager/index.html +++ b/Application/Admin/View/AuthManager/index.html @@ -5,16 +5,14 @@

角色权限

说明:可以设置管理账号的不同操作权限

- -
- +
+ - +
@@ -52,9 +50,9 @@ diff --git a/ThinkPHP/Library/Think/Log.class.php b/ThinkPHP/Library/Think/Log.class.php index 6a2d5ebe7..e2f7fb1db 100644 --- a/ThinkPHP/Library/Think/Log.class.php +++ b/ThinkPHP/Library/Think/Log.class.php @@ -114,7 +114,7 @@ class Log { $user_id = is_login(); //查询行为,判断是否执行 - $action_info = M('Action')->getByName($action); + $action_info = SM('Action')->getByName($action); if($action_info['status'] != 1){ return '该行为被禁用或删除'; } @@ -166,6 +166,6 @@ class Log { $data['remark'] = '操作url:'.$_SERVER['REQUEST_URI']; } - M('ActionLog')->add($data); + SM('ActionLog')->add($data); } } \ No newline at end of file From 2ad1ff54346f361bcf9387df85c2c007e6178440 Mon Sep 17 00:00:00 2001 From: chenzhi Date: Wed, 31 Mar 2021 14:50:15 +0800 Subject: [PATCH 05/11] =?UTF-8?q?=E4=BC=98=E5=8C=96=E5=8A=A0=E5=85=A5?= =?UTF-8?q?=E7=BB=84=E5=88=AB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/Controller/AuthManagerController.class.php | 12 ++++++------ Application/Admin/Model/AuthGroupModel.class.php | 6 +++--- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/Application/Admin/Controller/AuthManagerController.class.php b/Application/Admin/Controller/AuthManagerController.class.php index 0872c732c..f43863e4c 100644 --- a/Application/Admin/Controller/AuthManagerController.class.php +++ b/Application/Admin/Controller/AuthManagerController.class.php @@ -265,7 +265,7 @@ class AuthManagerController extends AdminController{ }else{ $ids = $_REQUEST['id']; } - $lr = M("AuthGroup")->field('title,status')->where("id in ({$ids})")->select(); + $lr = SM("AuthGroup")->field('title,status')->where("id in ({$ids})")->select(); $status = 0; $op_name =''; $op_type =1; @@ -309,7 +309,7 @@ class AuthManagerController extends AdminController{ "status"=>$status ]; // dd($savedata); - $res = D("AuthGroup")->where("id in ({$ids})")->syncSave($savedata); + $res = SM("AuthGroup")->where("id in ({$ids})")->save($savedata); if($res !==false ){ $this->success($msg['success'],$msg['url'],$msg['ajax']); }else{ @@ -329,14 +329,14 @@ class AuthManagerController extends AdminController{ $this->error('参数错误'); } - $auth_group = M('AuthGroup')->where( array('status'=>array('egt','0'),'module'=>'admin','type'=>AuthGroupModel::TYPE_ADMIN) ) + $auth_group = SM('AuthGroup')->where( array('status'=>array('egt','0'),'module'=>'admin','type'=>AuthGroupModel::TYPE_ADMIN) ) ->getfield('id,id,title,rules'); $prefix = C('DB_PREFIX'); $l_table = $prefix.(AuthGroupModel::MEMBER); $r_table = $prefix.(AuthGroupModel::AUTH_GROUP_ACCESS); - $model = M()->table( $l_table.' m' )->join ( $r_table.' a ON m.uid=a.uid' ); + $model = SM()->table( $l_table.' m' )->join ( $r_table.' a ON m.uid=a.uid' ); $_REQUEST = array(); - $list = $this->lists($model,array('a.group_id'=>$group_id,'m.status'=>array('egt',0)),'m.uid asc','m.uid,m.nickname,m.last_login_time,m.last_login_ip,m.status'); + $list = $this->lists($model,array('a.group_id'=>$group_id,'m.status'=>array('egt',0)),'m.uid asc','m.uid,m.nickname,m.last_login_time,m.last_login_ip,m.status',true,true); int_to_string($list); $this->assign( '_list', $list ); $this->assign('auth_group', $auth_group); @@ -408,7 +408,7 @@ class AuthManagerController extends AdminController{ } $AuthGroup = D('AuthGroup'); if(is_numeric($uid)){ - if ( is_administrator($uid) ) { + if ( $uid == 1 ) { $this->error('该用户为超级管理员'); } if( !M('Member')->where(array('uid'=>$uid))->find() ){ diff --git a/Application/Admin/Model/AuthGroupModel.class.php b/Application/Admin/Model/AuthGroupModel.class.php index 59dabdf40..5766346c1 100644 --- a/Application/Admin/Model/AuthGroupModel.class.php +++ b/Application/Admin/Model/AuthGroupModel.class.php @@ -53,7 +53,7 @@ class AuthGroupModel extends Model { $uid = is_array($uid)?implode(',',$uid):trim($uid,','); $gid = is_array($gid)?$gid:explode( ',',trim($gid,',') ); - $Access = M(self::AUTH_GROUP_ACCESS); + $Access = SM(self::AUTH_GROUP_ACCESS); if( isset($_REQUEST['batch']) ){ //为单个用户批量添加用户组时,先删除旧数据 $del = $Access->where( array('uid'=>array('in',$uid)) )->delete(); @@ -65,7 +65,7 @@ class AuthGroupModel extends Model { if( $del!==false ){ foreach ($uid_arr as $u){ //判断用户id是否合法 - if(M('Member')->getFieldByUid($u,'uid') == false){ + if(SM('Member')->getFieldByUid($u,'uid') == false){ $this->error = "编号为{$u}的账号不存在!"; return false; } @@ -246,7 +246,7 @@ class AuthGroupModel extends Model { * @author 朱亚杰 */ public function removeFromGroup($uid,$gid){ - return M(self::AUTH_GROUP_ACCESS)->where( array( 'uid'=>$uid,'group_id'=>$gid) )->delete(); + return SM(self::AUTH_GROUP_ACCESS)->where( array( 'uid'=>$uid,'group_id'=>$gid) )->delete(); } /** From bea2fa700366ea444296a3ef9908823dd1c94e2d Mon Sep 17 00:00:00 2001 From: chenzhi Date: Thu, 1 Apr 2021 13:53:29 +0800 Subject: [PATCH 06/11] =?UTF-8?q?=E4=BC=98=E5=8C=96=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E7=BB=84=E5=AD=90=E7=AB=99=E7=82=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Admin/View/AuthManager/authmarketmember.html | 2 +- Application/Admin/View/AuthManager/category.html | 2 +- .../Admin/View/AuthManager/dataempower.html | 2 +- .../Admin/View/AuthManager/managergroup.html | 12 +++++++----- Application/Admin/View/AuthManager/user.html | 14 ++++++++------ 5 files changed, 18 insertions(+), 14 deletions(-) diff --git a/Application/Admin/View/AuthManager/authmarketmember.html b/Application/Admin/View/AuthManager/authmarketmember.html index 8378cdbdc..9e0431df0 100644 --- a/Application/Admin/View/AuthManager/authmarketmember.html +++ b/Application/Admin/View/AuthManager/authmarketmember.html @@ -13,9 +13,9 @@
  • 访问授权
  • +
  • 成员授权
  • 分类授权
  • 数据授权
  • -
  • 成员授权
  • 市场专员分成
  • diff --git a/Application/Admin/View/AuthManager/user.html b/Application/Admin/View/AuthManager/user.html index b9618a0c7..dbe77a841 100644 --- a/Application/Admin/View/AuthManager/user.html +++ b/Application/Admin/View/AuthManager/user.html @@ -13,12 +13,14 @@
    • 访问授权
    • -
    • 分类授权
    • -
    • 数据授权
    • -
    • 成员授权
    • - -
    • 市场专员分成
    • -
      +
    • 成员授权
    • + +
    • 分类授权
    • +
    • 数据授权
    • + +
    • 市场专员分成
    • +
      +
访问授权 + 成员授权 分类授权 - 成员授权 数据授权 市场专员分成 @@ -66,14 +64,12 @@ {:get_status_title($vo['status'])} - - - 禁用 - - 正常 - - 删除 - + + 禁用 + + 正常 + + 删除