Don't validate hidden fields.

This commit is contained in:
John Livingston 2023-09-26 14:28:06 +02:00
parent 03dfa3de6f
commit 89fb6a7ac6
No known key found for this signature in database
GPG Key ID: B17B5640CE66CDBC
2 changed files with 33 additions and 27 deletions

View File

@ -7,6 +7,7 @@
* Channel configuration: * Channel configuration:
* Fix dark mode for buttons. * Fix dark mode for buttons.
* Fix buttons margin. * Fix buttons margin.
* Don't validate hidden fields.
* Help button on top of the "channels" page. * Help button on top of the "channels" page.
## 8.0.0 ## 8.0.0

View File

@ -166,38 +166,43 @@ async function vivifyConfigurationChannel (
const validateData: Function = async (channelConfigurationOptions: ChannelConfigurationOptions): Promise<boolean> => { const validateData: Function = async (channelConfigurationOptions: ChannelConfigurationOptions): Promise<boolean> => {
const botConf = channelConfigurationOptions.bot const botConf = channelConfigurationOptions.bot
const errorFieldSelectors = [] const errorFieldSelectors = []
if (/[^\p{L}\p{N}\p{Z}_-]/u.test(botConf.nickname ?? '')) {
const selector = '#peertube-livechat-bot-nickname'
errorFieldSelectors.push(selector)
await displayError(selector, await translate(LOC_INVALID_VALUE))
}
for (let iFw = 0; iFw < botConf.forbiddenWords.length; iFw++) { // If !bot.enabled, we don't have to validate these fields:
const fw = botConf.forbiddenWords[iFw] // The backend will ignore those values.
if (fw.regexp) { if (botConf.enabled) {
for (const v of fw.entries) { if (/[^\p{L}\p{N}\p{Z}_-]/u.test(botConf.nickname ?? '')) {
if (v === '' || /^\s+$/.test(v)) { continue } const selector = '#peertube-livechat-bot-nickname'
try { errorFieldSelectors.push(selector)
// eslint-disable-next-line no-new await displayError(selector, await translate(LOC_INVALID_VALUE))
new RegExp(v) }
} catch (err) {
const selector = '#peertube-livechat-forbidden-words-' + iFw.toString() for (let iFw = 0; iFw < botConf.forbiddenWords.length; iFw++) {
errorFieldSelectors.push(selector) const fw = botConf.forbiddenWords[iFw]
let message = await translate(LOC_INVALID_VALUE) if (fw.regexp) {
message += ` "${v}": ${err as string}` for (const v of fw.entries) {
await displayError(selector, message) if (v === '' || /^\s+$/.test(v)) { continue }
try {
// eslint-disable-next-line no-new
new RegExp(v)
} catch (err) {
const selector = '#peertube-livechat-forbidden-words-' + iFw.toString()
errorFieldSelectors.push(selector)
let message = await translate(LOC_INVALID_VALUE)
message += ` "${v}": ${err as string}`
await displayError(selector, message)
}
} }
} }
} }
}
for (let iCd = 0; iCd < botConf.commands.length; iCd++) { for (let iCd = 0; iCd < botConf.commands.length; iCd++) {
const cd = botConf.commands[iCd] const cd = botConf.commands[iCd]
if (/\s+/.test(cd.command)) { if (/\s+/.test(cd.command)) {
const selector = '#peertube-livechat-command-' + iCd.toString() const selector = '#peertube-livechat-command-' + iCd.toString()
errorFieldSelectors.push(selector) errorFieldSelectors.push(selector)
const message = await translate(LOC_INVALID_VALUE) const message = await translate(LOC_INVALID_VALUE)
await displayError(selector, message) await displayError(selector, message)
}
} }
} }