fix scope

This commit is contained in:
2026-03-13 09:15:52 +08:00
parent 63786e5876
commit 48a2a025f1
3 changed files with 14 additions and 7 deletions
@@ -10,6 +10,7 @@ use App\Middleware\PermissionMiddleware;
use App\Model\Role;
use App\Model\RoleRouteOverride;
use App\Model\Route;
use App\Model\RouteGroup;
use App\Model\User;
use App\Service\ScopeTableManager;
use Hyperf\DbConnection\Db;
@@ -313,6 +314,17 @@ class RoleController extends AbstractController
$group_ids = array_map('intval', $group_ids);
$group_ids = array_unique($group_ids);
// 校验 group_ids 都存在
if (!empty($group_ids)) {
$existing_count = RouteGroup::query()->whereIn('id', $group_ids)->count();
if ($existing_count !== count($group_ids)) {
return $this->response->json([
'code' => 400,
'message' => '包含不存在的 group_id',
])->withStatus(400);
}
}
// 使用 sync 全量替换
$role->routeGroups()->sync($group_ids);