Merge pull request #1092 from owncloud/rename_dot

Files: prevent people from renaming files to '.'
This commit is contained in:
Thomas Müller 2013-01-06 07:25:12 -08:00
commit 08d7b8ce30
3 changed files with 18 additions and 6 deletions

View File

@ -12,7 +12,7 @@ $file = stripslashes($_GET["file"]);
$newname = stripslashes($_GET["newname"]);
// Delete
if( OC_Files::move( $dir, $file, $dir, $newname )) {
if( $newname !== '.' and OC_Files::move( $dir, $file, $dir, $newname )) {
OCP\JSON::success(array("data" => array( "dir" => $dir, "file" => $file, "newname" => $newname )));
}
else{

View File

@ -149,7 +149,7 @@ var FileList={
event.stopPropagation();
event.preventDefault();
var newname=input.val();
if (Files.containsInvalidCharacters(newname)) {
if (!Files.isFileNameValid(newname)) {
return false;
}
if (newname != name) {

View File

@ -26,17 +26,29 @@ Files={
});
procesSelection();
},
containsInvalidCharacters:function (name) {
isFileNameValid:function (name) {
if (name === '.') {
$('#notification').text(t('files', "'.' is an invalid file name."));
$('#notification').fadeIn();
return false;
}
if (name.length == 0) {
$('#notification').text(t('files', "File name cannot be empty."));
$('#notification').fadeIn();
return false;
}
// check for invalid characters
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;
return false;
}
}
$('#notification').fadeOut();
return false;
return true;
}
};
$(document).ready(function() {
@ -509,7 +521,7 @@ $(document).ready(function() {
$(this).append(input);
input.focus();
input.change(function(){
if (type != 'web' && Files.containsInvalidCharacters($(this).val())) {
if (type != 'web' && !Files.isFileNameValid($(this).val())) {
return;
} else if( type == 'folder' && $('#dir').val() == '/' && $(this).val() == 'Shared') {
$('#notification').text(t('files','Invalid folder name. Usage of "Shared" is reserved by Owncloud'));