Browse Source

feat(admin): 添加管理员数据权限控制

- 在 AdminAuthorizationMiddleware 中初始化数据权限
- 在 BaseDao 中应用数据权限过滤条件
- 在 RequestUtils 中扩展管理员信息结构以支持数据权限字段
master
zhangf@suq.cn 7 days ago
parent
commit
a8e6428eae
  1. 3
      plugin/piadmin/app/base/BaseDao.php
  2. 2
      plugin/piadmin/app/middleware/AdminAuthorizationMiddleware.php
  3. 6
      plugin/piadmin/app/utils/RequestUtils.php

3
plugin/piadmin/app/base/BaseDao.php

@ -540,6 +540,9 @@ abstract class BaseDao
{
// 判断是否有搜索条件提供
if ($where) {
//载入数据权限
$admininfo = RequestUtils::getAdminInfo();
$where[] = ['create_by', 'in', $admininfo['dataPermission']];
// 如果有搜索条件,则调用withSearchSelect方法执行带有搜索条件的查询
return $this->withSearchSelect($where, $search);
} else {

2
plugin/piadmin/app/middleware/AdminAuthorizationMiddleware.php

@ -53,6 +53,8 @@ class AdminAuthorizationMiddleware implements MiddlewareInterface
$adminInfo['is_login'] = true;
$adminInfo['uid'] = $adminInfo['id'];
$adminInfo['token'] = $token;
//数据权限,目前只查自己
$adminInfo['dataPermission'] = [$adminInfo['id']];
// 检查版本
$this->checkVersionKey($uid, $token);
$request->admin = $adminInfo;

6
plugin/piadmin/app/utils/RequestUtils.php

@ -37,7 +37,8 @@ class RequestUtils
$admininfo = [
'id'=>'',
'name'=>''
'name'=>'',
'dataPermission'=> ''
];
try{
@ -45,7 +46,8 @@ class RequestUtils
if(!empty($admin)){
$admininfo = [
'id'=>$admin['id'] ?? '',
'name'=>$admin['name'] ?? ''
'name'=>$admin['name'] ?? '',
'dataPermission'=>$admin['dataPermission'] ?? ''
];
}

Loading…
Cancel
Save