feat: href validation

This commit is contained in:
Benno Tielen 2026-03-09 15:25:34 +01:00
parent 7438f39786
commit 88cfe18a6b
3 changed files with 23 additions and 2 deletions

View file

@ -1,6 +1,7 @@
import { GlobalConfig } from 'payload'
import { isAdmin } from '@/collections/access/admin'
import { revalidateTag } from 'next/cache'
import { validateHref } from '@/globals/ValidateHref'
export const FooterGlobal: GlobalConfig = {
slug: 'footer',
@ -50,6 +51,7 @@ export const FooterGlobal: GlobalConfig = {
label: {
de: 'Zieladresse',
},
validate: validateHref,
},
],
},

View file

@ -1,6 +1,7 @@
import { Block, GlobalConfig } from 'payload'
import { hide, isAdmin } from '@/collections/access/admin'
import { isAdmin } from '@/collections/access/admin'
import { revalidateTag } from 'next/cache'
import { validateHref } from '@/globals/ValidateHref'
const SimpleItem: Block = {
slug: 'simple-item',
@ -18,7 +19,8 @@ const SimpleItem: Block = {
name: 'href',
type: 'text',
label: 'Zieladresse',
required: true
required: true,
validate: validateHref,
},
{
name: 'type',
@ -93,6 +95,7 @@ const MegaMenuItem: Block = {
label: 'Zieladresse',
type: 'text',
required: true,
validate: validateHref,
}
],
required: true,

View file

@ -0,0 +1,16 @@
/**
* Payload field validator for href/link fields.
* Ensures values start with `/`, `http://`, or `https://`
* to prevent malformed or relative URLs.
*/
export const validateHref = (value: string | null | undefined) => {
if (
value &&
!value.startsWith('/') &&
!value.startsWith('http://') &&
!value.startsWith('https://')
) {
return 'Zieladresse muss mit "/", "http://" oder "https://" beginnen'
}
return true
}