Alle ausstehenden Aenderungen (Bilder, Texte) fuer den Server-Umzug uebernommen
This commit is contained in:
@@ -41,6 +41,19 @@ import {
|
||||
import { listAuditLog } from "./routes/audit.js";
|
||||
import { checkTikTokLive } from "./lib/tiktok-live.js";
|
||||
import { logAction } from "./lib/audit.js";
|
||||
import { requireSupporterSession } from "./lib/supporter-auth.js";
|
||||
import {
|
||||
registerSupporter, verifySupporterEmail, requestSupporterLogin, verifySupporterLogin, logoutSupporter,
|
||||
googleLoginSupporter, getPublicConfig,
|
||||
getSupporterMe, updateSupporterProfile, requestSupporterEmailChange, confirmSupporterEmailChange,
|
||||
redeemPremium, deleteSupporterAccount,
|
||||
} from "./routes/supporter.js";
|
||||
import {
|
||||
startPaypalSubscription, confirmPaypalSubscription, cancelPaypalSubscription, handlePaypalWebhook,
|
||||
} from "./routes/supporter-paypal.js";
|
||||
import {
|
||||
listSupporters, getSupporterDetail, updatePremium, listCollections, upsertCollection, getAdminOverview,
|
||||
} from "./routes/supporter-admin.js";
|
||||
|
||||
/* =====================================================================
|
||||
LIVE-STATUS
|
||||
@@ -225,6 +238,32 @@ const AUTHED_ROUTES = {
|
||||
"POST /admin/users/update-meta": (req, env, session) => updateUserMeta(req, env, session),
|
||||
|
||||
"POST /admin/audit/list": (req, env, session) => listAuditLog(req, env, session),
|
||||
|
||||
// Supporter-Abo — Administrationsbereich (interne Team-Session + eigene
|
||||
// SUPPORTER_*-Rechte, siehe permissions.js).
|
||||
"POST /admin/overview": (req, env, session) => getAdminOverview(req, env, session),
|
||||
"POST /admin/supporter/list": (req, env, session) => listSupporters(req, env, session),
|
||||
"POST /admin/supporter/detail": (req, env, session) => getSupporterDetail(req, env, session),
|
||||
"POST /admin/supporter/premium/update": (req, env, session) => updatePremium(req, env, session),
|
||||
"POST /admin/supporter/collections/list": (req, env, session) => listCollections(req, env, session),
|
||||
"POST /admin/supporter/collections/upsert": (req, env, session) => upsertCollection(req, env, session),
|
||||
};
|
||||
|
||||
// Routen des ÖFFENTLICHEN Supporter-Bereichs, die eine gültige
|
||||
// Supporter-Session brauchen (eigenes, von AUTHED_ROUTES komplett
|
||||
// getrenntes Token-System — siehe lib/supporter-auth.js). `supporter`
|
||||
// (die volle supporter_users-Zeile) wird injiziert statt `session`.
|
||||
const SUPPORTER_AUTHED_ROUTES = {
|
||||
"POST /supporter/logout": (req, env) => logoutSupporter(req, env),
|
||||
"POST /supporter/me": (req, env, supporter) => getSupporterMe(req, env, supporter),
|
||||
"POST /supporter/update-profile": (req, env, supporter) => updateSupporterProfile(req, env, supporter),
|
||||
"POST /supporter/request-email-change": (req, env, supporter) => requestSupporterEmailChange(req, env, supporter),
|
||||
"POST /supporter/confirm-email-change": (req, env, supporter) => confirmSupporterEmailChange(req, env, supporter),
|
||||
"POST /supporter/redeem-premium": (req, env, supporter) => redeemPremium(req, env, supporter),
|
||||
"POST /supporter/delete-account": (req, env, supporter) => deleteSupporterAccount(req, env, supporter),
|
||||
"POST /supporter/paypal/start": (req, env, supporter) => startPaypalSubscription(req, env, supporter),
|
||||
"POST /supporter/paypal/confirm": (req, env, supporter) => confirmPaypalSubscription(req, env, supporter),
|
||||
"POST /supporter/paypal/cancel": (req, env, supporter) => cancelPaypalSubscription(req, env, supporter),
|
||||
};
|
||||
|
||||
export default {
|
||||
@@ -249,6 +288,23 @@ export default {
|
||||
return login(request, env);
|
||||
}
|
||||
|
||||
// Supporter-Abo — öffentliche Routen ohne Session (Registrierung/Login).
|
||||
if (url.pathname === "/supporter/register" && request.method === "POST") return registerSupporter(request, env);
|
||||
if (url.pathname === "/supporter/verify-email" && request.method === "POST") return verifySupporterEmail(request, env);
|
||||
if (url.pathname === "/supporter/login-request" && request.method === "POST") return requestSupporterLogin(request, env);
|
||||
if (url.pathname === "/supporter/verify-login" && request.method === "POST") return verifySupporterLogin(request, env);
|
||||
if (url.pathname === "/supporter/google-login" && request.method === "POST") return googleLoginSupporter(request, env);
|
||||
if (url.pathname === "/supporter/public-config" && request.method === "GET") return getPublicConfig(request, env);
|
||||
// PayPal ruft diese Adresse direkt auf — eigene Signaturprüfung statt Session (siehe paypal.js).
|
||||
if (url.pathname === "/supporter/paypal-webhook" && request.method === "POST") return handlePaypalWebhook(request, env);
|
||||
|
||||
const supporterHandler = SUPPORTER_AUTHED_ROUTES[routeKey];
|
||||
if (supporterHandler) {
|
||||
const supporter = await requireSupporterSession(request, env);
|
||||
if (!supporter) return json({ ok: false, error: "Sitzung abgelaufen oder ungültig. Bitte erneut einloggen." }, 401);
|
||||
return supporterHandler(request, env, supporter);
|
||||
}
|
||||
|
||||
const handler = AUTHED_ROUTES[routeKey];
|
||||
if (handler) {
|
||||
const session = await requireSession(request, env);
|
||||
|
||||
Reference in New Issue
Block a user