fix(site) : keep public pages up during auth outages and allow ad script
This commit is contained in:
@@ -8,9 +8,15 @@ import { VisitorPresence } from "@/components/public/visitor-presence";
|
|||||||
import { PublicNavigation } from "@/components/public/public-navigation";
|
import { PublicNavigation } from "@/components/public/public-navigation";
|
||||||
import { AccountMenu } from "@/components/auth/account-menu";
|
import { AccountMenu } from "@/components/auth/account-menu";
|
||||||
import { getAdminSession } from "@/lib/auth/server";
|
import { getAdminSession } from "@/lib/auth/server";
|
||||||
|
import { HttpError } from "@/lib/security/http";
|
||||||
|
|
||||||
async function AdminEditLink({ editHref }: { editHref: string }) {
|
async function AdminEditLink({ editHref }: { editHref: string }) {
|
||||||
const isAdmin = Boolean(await getAdminSession());
|
let isAdmin = false;
|
||||||
|
try {
|
||||||
|
isAdmin = Boolean(await getAdminSession());
|
||||||
|
} catch (cause) {
|
||||||
|
if (!(cause instanceof HttpError) || cause.status !== 503) throw cause;
|
||||||
|
}
|
||||||
|
|
||||||
return isAdmin ? (
|
return isAdmin ? (
|
||||||
<Button variant="ghost" size="sm" nativeButton={false} render={<Link href={editHref} />} aria-label="ไปหน้าแก้ไข">
|
<Button variant="ghost" size="sm" nativeButton={false} render={<Link href={editHref} />} aria-label="ไปหน้าแก้ไข">
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ export function securityHeaders(production: boolean, emojiImageCdn: string) {
|
|||||||
const adConnections = "https://*.adtrafficquality.google";
|
const adConnections = "https://*.adtrafficquality.google";
|
||||||
const policy = [
|
const policy = [
|
||||||
"default-src 'self'",
|
"default-src 'self'",
|
||||||
`script-src 'self' 'unsafe-inline' ${production ? "" : "'unsafe-eval'"} https://challenges.cloudflare.com ${cloudflareAnalytics} ${ads}`,
|
`script-src 'self' 'unsafe-inline' ${production ? "" : "'unsafe-eval'"} https://challenges.cloudflare.com ${cloudflareAnalytics} ${adConnections} ${ads}`,
|
||||||
"style-src 'self' 'unsafe-inline'",
|
"style-src 'self' 'unsafe-inline'",
|
||||||
`img-src 'self' data: blob: https://buzz-cdn.astrxl.dev ${emojiImageCdn} ${ads}`,
|
`img-src 'self' data: blob: https://buzz-cdn.astrxl.dev ${emojiImageCdn} ${ads}`,
|
||||||
"font-src 'self' data:",
|
"font-src 'self' data:",
|
||||||
|
|||||||
Reference in New Issue
Block a user