From a8e6428eae51ee2f3abaad79f9bc98d2fb910483 Mon Sep 17 00:00:00 2001 From: "zhangf@suq.cn" Date: Wed, 10 Dec 2025 15:09:08 +0800 Subject: [PATCH] =?UTF-8?q?feat(admin):=20=E6=B7=BB=E5=8A=A0=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=91=98=E6=95=B0=E6=8D=AE=E6=9D=83=E9=99=90=E6=8E=A7?= =?UTF-8?q?=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 AdminAuthorizationMiddleware 中初始化数据权限 - 在 BaseDao 中应用数据权限过滤条件 - 在 RequestUtils 中扩展管理员信息结构以支持数据权限字段 --- plugin/piadmin/app/base/BaseDao.php | 3 +++ plugin/piadmin/app/middleware/AdminAuthorizationMiddleware.php | 2 ++ plugin/piadmin/app/utils/RequestUtils.php | 6 ++++-- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/plugin/piadmin/app/base/BaseDao.php b/plugin/piadmin/app/base/BaseDao.php index 386aa1b..69784c6 100644 --- a/plugin/piadmin/app/base/BaseDao.php +++ b/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 { diff --git a/plugin/piadmin/app/middleware/AdminAuthorizationMiddleware.php b/plugin/piadmin/app/middleware/AdminAuthorizationMiddleware.php index 8ff6fd2..dd952f7 100644 --- a/plugin/piadmin/app/middleware/AdminAuthorizationMiddleware.php +++ b/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; diff --git a/plugin/piadmin/app/utils/RequestUtils.php b/plugin/piadmin/app/utils/RequestUtils.php index 2cbbe1a..5aae957 100644 --- a/plugin/piadmin/app/utils/RequestUtils.php +++ b/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'] ?? '' ]; }