From 1793e85a523174f66575ca4c40ceecbbe2b1c09d Mon Sep 17 00:00:00 2001 From: Bart Visscher Date: Fri, 16 Nov 2012 12:16:23 +0100 Subject: [PATCH 1/3] Also reject names with \ in the name fixes issues #435 and #437 --- apps/files/js/files.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index bb80841055..b8972bed6b 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -505,8 +505,8 @@ $(document).ready(function() { $(this).append(input); input.focus(); input.change(function(){ - if(type != 'web' && $(this).val().indexOf('/')!=-1){ - $('#notification').text(t('files','Invalid name, \'/\' is not allowed.')); + if(type != 'web' && ($(this).val().indexOf('/')!=-1 || $(this).val().indexOf('\\')!=-1)) { + $('#notification').text(t('files', 'Invalid name, \'/\' or \'\\\' is not allowed.')); $('#notification').fadeIn(); return; } From cd495bf9ba47b606c1258f2ab07907b65f5951b7 Mon Sep 17 00:00:00 2001 From: Thomas Mueller Date: Thu, 22 Nov 2012 11:22:16 +0100 Subject: [PATCH 2/3] some more invalid characters have been added --- apps/files/js/files.js | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/apps/files/js/files.js b/apps/files/js/files.js index b8972bed6b..8d0f9e06ad 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -505,12 +505,17 @@ $(document).ready(function() { $(this).append(input); input.focus(); input.change(function(){ - if(type != 'web' && ($(this).val().indexOf('/')!=-1 || $(this).val().indexOf('\\')!=-1)) { - $('#notification').text(t('files', 'Invalid name, \'/\' or \'\\\' is not allowed.')); - $('#notification').fadeIn(); - return; - } - var name = getUniqueName($(this).val()); + if (type != 'web') { + var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*']; + for (var i = 0; i < invalid_characters.length; i++) { + if ($(this).val().indexOf(invalid_characters[i]) != -1) { + $('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); + $('#notification').fadeIn(); + return; + } + } + } + var name = getUniqueName($(this).val()); if (name != $(this).val()) { FileList.checkName(name, $(this).val(), true); var hidden = true; From a81d7cd79ff78122521dc0c8db864a9654710863 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rn=20Friedrich=20Dreyer?= Date: Thu, 22 Nov 2012 13:03:17 +0100 Subject: [PATCH 3/3] introduce Files.containsInvalidCharacters(), use when creating or renaming files --- apps/files/js/filelist.js | 3 +++ apps/files/js/files.js | 27 ++++++++++++++++----------- 2 files changed, 19 insertions(+), 11 deletions(-) diff --git a/apps/files/js/filelist.js b/apps/files/js/filelist.js index a5550dc992..5674206632 100644 --- a/apps/files/js/filelist.js +++ b/apps/files/js/filelist.js @@ -151,6 +151,9 @@ var FileList={ event.stopPropagation(); event.preventDefault(); var newname=input.val(); + if (Files.containsInvalidCharacters(newname)) { + return false; + } if (newname != name) { if (FileList.checkName(name, newname, false)) { newname = name; diff --git a/apps/files/js/files.js b/apps/files/js/files.js index 8d0f9e06ad..9fa2a384b5 100644 --- a/apps/files/js/files.js +++ b/apps/files/js/files.js @@ -25,6 +25,18 @@ Files={ delete uploadingFiles[index]; }); procesSelection(); + }, + containsInvalidCharacters:function (name) { + var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*']; + for (var i = 0; i < invalid_characters.length; i++) { + if (name.indexOf(invalid_characters[i]) != -1) { + $('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); + $('#notification').fadeIn(); + return true; + } + } + $('#notification').fadeOut(); + return false; } }; $(document).ready(function() { @@ -505,17 +517,10 @@ $(document).ready(function() { $(this).append(input); input.focus(); input.change(function(){ - if (type != 'web') { - var invalid_characters = ['\\', '/', '<', '>', ':', '"', '|', '?', '*']; - for (var i = 0; i < invalid_characters.length; i++) { - if ($(this).val().indexOf(invalid_characters[i]) != -1) { - $('#notification').text(t('files', "Invalid name, '\\', '/', '<', '>', ':', '\"', '|', '?' and '*' are not allowed.")); - $('#notification').fadeIn(); - return; - } - } - } - var name = getUniqueName($(this).val()); + if (type != 'web' && Files.containsInvalidCharacters($(this).val())) { + return; + } + var name = getUniqueName($(this).val()); if (name != $(this).val()) { FileList.checkName(name, $(this).val(), true); var hidden = true;