This commit is contained in:
2026-05-06 00:10:45 +08:00
parent 2e3eb4b8f8
commit 916a4f5ffc
19 changed files with 2431 additions and 723 deletions
+23 -10
View File
@@ -6,10 +6,25 @@ import { createStableId } from "@/lib/password";
import { requireAdminAccess } from "@/lib/session";
import {
getSubscriptionSettings,
saveMainProxyGroupMemberSlugs,
saveProxyGroups,
saveSubscriptionSettings,
} from "@/lib/store";
function readUniqueMemberSlugs(formData: FormData) {
const seen = new Set<string>();
return formData.getAll("member_slugs").flatMap((value) => {
const slug = String(value).trim();
if (!slug || seen.has(slug)) {
return [];
}
seen.add(slug);
return [slug];
});
}
export async function saveSubscriptionSettingsAction(formData: FormData) {
await requireAdminAccess();
@@ -28,16 +43,7 @@ export async function saveProxyGroupAction(formData: FormData) {
const settings = await getSubscriptionSettings();
const id = String(formData.get("id") ?? "").trim() || createStableId();
const name = String(formData.get("name") ?? "").trim();
const seen = new Set<string>();
const memberSlugs = formData.getAll("member_slugs").flatMap((value) => {
const slug = String(value).trim();
if (!slug || seen.has(slug)) {
return [];
}
seen.add(slug);
return [slug];
});
const memberSlugs = readUniqueMemberSlugs(formData);
if (!name) {
return;
@@ -62,6 +68,13 @@ export async function saveProxyGroupAction(formData: FormData) {
revalidatePath("/admin/subscriptions");
}
export async function saveMainProxyGroupAction(formData: FormData) {
await requireAdminAccess();
await saveMainProxyGroupMemberSlugs(readUniqueMemberSlugs(formData));
revalidatePath("/admin/subscriptions");
}
export async function deleteProxyGroupAction(formData: FormData) {
await requireAdminAccess();