Merge pull request #1092 from owncloud/rename_dot
Files: prevent people from renaming files to '.'
This commit is contained in:
commit
08d7b8ce30
|
@ -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{
|
||||
|
|
|
@ -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) {
|
||||
|
|
|
@ -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'));
|
||||
|
|
Loading…
Reference in New Issue