diff --git a/src/app/components/Base/TextArea.vue b/src/app/components/Base/TextArea.vue new file mode 100644 index 00000000..8a44ac84 --- /dev/null +++ b/src/app/components/Base/TextArea.vue @@ -0,0 +1,10 @@ + + + + + diff --git a/src/app/components/Form/TextArea.vue b/src/app/components/Form/TextArea.vue new file mode 100644 index 00000000..b1fab6e0 --- /dev/null +++ b/src/app/components/Form/TextArea.vue @@ -0,0 +1,29 @@ + + + + {{ label }} + + + + + + + + + diff --git a/src/app/pages/admin/hooks.vue b/src/app/pages/admin/hooks.vue index b8dda4b6..c992b721 100644 --- a/src/app/pages/admin/hooks.vue +++ b/src/app/pages/admin/hooks.vue @@ -2,22 +2,22 @@ - - - - {{ $t('client.hooks') }} - - - - ) { }); } +export function removeNewlines(templ: string) { + return templ.replace(/\r\n|\r|\n/g, ' '); +} + /** * Available keys: * - ipv4Cidr: IPv4 CIDR @@ -18,7 +24,7 @@ export function template(templ: string, values: Record) { * - uiPort: UI port number */ export function iptablesTemplate(templ: string, wgInterface: InterfaceType) { - return template(templ, { + return template(removeNewlines(templ), { ipv4Cidr: wgInterface.ipv4Cidr, ipv6Cidr: wgInterface.ipv6Cidr, device: wgInterface.device, diff --git a/src/server/utils/wgHelper.ts b/src/server/utils/wgHelper.ts index 733b0e56..0ad7ceff 100644 --- a/src/server/utils/wgHelper.ts +++ b/src/server/utils/wgHelper.ts @@ -1,5 +1,9 @@ +// ! Auto Imports are not supported in this file + import { parseCidr } from 'cidr-tools'; import { stringifyIp } from 'ip-bigint'; +import { removeNewlines } from './template'; + import type { ClientType } from '#db/repositories/client/types'; import type { InterfaceType } from '#db/repositories/interface/types'; import type { UserConfigType } from '#db/repositories/userConfig/types'; @@ -112,10 +116,10 @@ PostDown = ${iptablesTemplate(hooks.postDown, wgInterface)}`; (enableIpv6 ? `, ${client.ipv6Address}/128` : ''); const hookLines = [ - client.preUp ? `PreUp = ${client.preUp}` : null, - client.postUp ? `PostUp = ${client.postUp}` : null, - client.preDown ? `PreDown = ${client.preDown}` : null, - client.postDown ? `PostDown = ${client.postDown}` : null, + client.preUp ? `PreUp = ${removeNewlines(client.preUp)}` : null, + client.postUp ? `PostUp = ${removeNewlines(client.postUp)}` : null, + client.preDown ? `PreDown = ${removeNewlines(client.preDown)}` : null, + client.postDown ? `PostDown = ${removeNewlines(client.postDown)}` : null, ]; const dnsServers = client.dns ?? userConfig.defaultDns;