diff options
author | John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com> | 2023-09-22 14:22:04 +0200 |
---|---|---|
committer | John Molakvoæ <skjnldsv@protonmail.com> | 2023-10-04 11:12:44 +0200 |
commit | dbeb526bbab64e051958e1194e32903c2420e40d (patch) | |
tree | 3e976dec8699518e0f5db13051430aedd0225807 /apps/files/src/components/FileEntry.vue | |
parent | 4756807f2e72b1dcd8ba11e038bcd5e01d41044a (diff) | |
download | nextcloud-server-dbeb526bbab64e051958e1194e32903c2420e40d.tar.gz nextcloud-server-dbeb526bbab64e051958e1194e32903c2420e40d.zip |
fix(files): disallow illegal characters
Signed-off-by: John Molakvoæ (skjnldsv) <skjnldsv@protonmail.com>
Diffstat (limited to 'apps/files/src/components/FileEntry.vue')
-rw-r--r-- | apps/files/src/components/FileEntry.vue | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/apps/files/src/components/FileEntry.vue b/apps/files/src/components/FileEntry.vue index 275e8bb3aef..537279cabfe 100644 --- a/apps/files/src/components/FileEntry.vue +++ b/apps/files/src/components/FileEntry.vue @@ -232,12 +232,15 @@ import CustomElementRender from './CustomElementRender.vue' import CustomSvgIconRender from './CustomSvgIconRender.vue' import FavoriteIcon from './FavoriteIcon.vue' import logger from '../logger.js' +import { loadState } from '@nextcloud/initial-state' // The registered actions list const actions = getFileActions() Vue.directive('onClickOutside', vOnClickOutside) +const forbiddenCharacters = loadState('files', 'forbiddenCharacters', '') as string + export default Vue.extend({ name: 'FileEntry', @@ -810,6 +813,13 @@ export default Vue.extend({ throw new Error(this.t('files', '{newName} already exists.', { newName: name })) } + const toCheck = trimmedName.split('') + toCheck.forEach(char => { + if (forbiddenCharacters.indexOf(char) !== -1) { + throw new Error(this.t('files', '"{char}" is not allowed inside a file name.', { char })) + } + }) + return true }, checkIfNodeExists(name) { |