fix scope
This commit is contained in:
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user