[stable9] On write-only shares do not allow to specify subfolders

In case of a write-only share we should not allow to specify a subfolder as this is unexpected behaviour.

Signed-off-by: Lukas Reschke <lukas@statuscode.ch>
This commit is contained in:
Lukas Reschke 2016-12-01 16:10:15 +01:00
parent 8468d7af8b
commit e492474b7c
No known key found for this signature in database
GPG Key ID: B9F6980CF6E759B1
1 changed files with 10 additions and 3 deletions

View File

@ -56,13 +56,22 @@ if (empty($_POST['dirToken'])) {
die();
}
} else {
$shareManager = \OC::$server->getShareManager();
$share = $shareManager->getShareByToken((string)$_POST['dirToken']);
// TODO: ideally this code should be in files_sharing/ajax/upload.php
// and the upload/file transfer code needs to be refactored into a utility method
// that could be used there
\OC_User::setIncognitoMode(true);
$publicDirectory = !empty($_POST['subdir']) ? (string)$_POST['subdir'] : '/';
// If it is a write-only folder no subdirectory can be specified
$publicDirectory = '';
if ($share->getPermissions() & \OCP\Constants::PERMISSION_READ) {
$publicDirectory = !empty($_POST['subdir']) ? (string)$_POST['subdir'] : '/';
} else {
$_POST['file_directory'] = '';
}
$linkItem = OCP\Share::getShareByToken((string)$_POST['dirToken']);
if ($linkItem === false) {
@ -165,8 +174,6 @@ if (\OC\Files\Filesystem::isValidPath($dir) === true) {
if(isset($_POST['dirToken'])) {
// If it is a read only share the resolution will always be autorename
$shareManager = \OC::$server->getShareManager();
$share = $shareManager->getShareByToken((string)$_POST['dirToken']);
if (!($share->getPermissions() & \OCP\Constants::PERMISSION_READ)) {
$resolution = 'autorename';
}