diff --git a/app/Http/Controllers/Api/AdminMenuController.php b/app/Http/Controllers/Api/AdminMenuController.php index 938ccf4..788e529 100644 --- a/app/Http/Controllers/Api/AdminMenuController.php +++ b/app/Http/Controllers/Api/AdminMenuController.php @@ -22,7 +22,7 @@ class AdminMenuController extends Controller ->orderBy('id'); $user = $request->user(); - if ($user && Schema::hasTable('role_menu_permissions')) { + if ($user && Schema::hasTable('role_menu_permissions') && ! $user->isSuperAdmin()) { $roleMenuIds = RoleMenuPermission::query() ->where('role', (string) $user->role) ->pluck('menu_id') diff --git a/database/migrations/2026_04_15_100000_backfill_role_menu_permissions_ticket_grab.php b/database/migrations/2026_04_15_100000_backfill_role_menu_permissions_ticket_grab.php new file mode 100644 index 0000000..3ba4418 --- /dev/null +++ b/database/migrations/2026_04_15_100000_backfill_role_menu_permissions_ticket_grab.php @@ -0,0 +1,43 @@ +whereIn('name', ['抢票管理', '抢票列表', '抢票报名', '抢票核销']) + ->pluck('id'); + + if ($ids->isEmpty()) { + return; + } + + $now = now(); + foreach (['super_admin', 'venue_admin'] as $role) { + foreach ($ids as $menuId) { + $mid = (int) $menuId; + DB::table('role_menu_permissions')->updateOrInsert( + ['role' => $role, 'menu_id' => $mid], + ['created_at' => $now, 'updated_at' => $now] + ); + } + } + } + + public function down(): void + { + // 不撤销:避免误删手调权限 + } +};