Browse Source
Merge pull request #7676 from nextcloud/fix-slash-in-filename
Show warning if slash is entered as filename
pull/7681/head
Roeland Jago Douma
8 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
6 additions and
0 deletions
-
apps/dav/lib/Connector/Sabre/ExceptionLoggerPlugin.php
-
apps/files/js/files.js
|
|
@ -29,6 +29,7 @@ namespace OCA\DAV\Connector\Sabre; |
|
|
use OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden; |
|
|
use OCA\DAV\Connector\Sabre\Exception\PasswordLoginForbidden; |
|
|
use OCP\Files\StorageNotAvailableException; |
|
|
use OCP\Files\StorageNotAvailableException; |
|
|
use OCP\ILogger; |
|
|
use OCP\ILogger; |
|
|
|
|
|
use Sabre\DAV\Exception\Conflict; |
|
|
use Sabre\DAV\Exception\Forbidden; |
|
|
use Sabre\DAV\Exception\Forbidden; |
|
|
use Sabre\DAV\Exception\InvalidSyncToken; |
|
|
use Sabre\DAV\Exception\InvalidSyncToken; |
|
|
use Sabre\DAV\Exception\NotAuthenticated; |
|
|
use Sabre\DAV\Exception\NotAuthenticated; |
|
|
@ -61,6 +62,9 @@ class ExceptionLoggerPlugin extends \Sabre\DAV\ServerPlugin { |
|
|
// happens if some a client uses the wrong method for a given URL
|
|
|
// happens if some a client uses the wrong method for a given URL
|
|
|
// the error message itself is visible on the client side anyways
|
|
|
// the error message itself is visible on the client side anyways
|
|
|
NotImplemented::class => true, |
|
|
NotImplemented::class => true, |
|
|
|
|
|
// happens when the parent directory is not present (for example when a
|
|
|
|
|
|
// move is done to a non-existent directory)
|
|
|
|
|
|
Conflict::class => true, |
|
|
]; |
|
|
]; |
|
|
|
|
|
|
|
|
/** @var string */ |
|
|
/** @var string */ |
|
|
|
|
|
@ -128,6 +128,8 @@ |
|
|
throw t('files', '"{name}" is an invalid file name.', {name: name}); |
|
|
throw t('files', '"{name}" is an invalid file name.', {name: name}); |
|
|
} else if (trimmedName.length === 0) { |
|
|
} else if (trimmedName.length === 0) { |
|
|
throw t('files', 'File name cannot be empty.'); |
|
|
throw t('files', 'File name cannot be empty.'); |
|
|
|
|
|
} else if (trimmedName.indexOf('/') !== -1) { |
|
|
|
|
|
throw t('files', '"/" is not allowed inside a file name.'); |
|
|
} else if (OC.fileIsBlacklisted(trimmedName)) { |
|
|
} else if (OC.fileIsBlacklisted(trimmedName)) { |
|
|
throw t('files', '"{name}" is not an allowed filetype', {name: name}); |
|
|
throw t('files', '"{name}" is not an allowed filetype', {name: name}); |
|
|
} |
|
|
} |
|
|
|