summaryrefslogtreecommitdiffstats
path: root/apps/files
diff options
context:
space:
mode:
authorLukas Reschke <lukas@statuscode.ch>2016-06-10 18:29:09 +0200
committerGitHub <noreply@github.com>2016-06-10 18:29:09 +0200
commit842cc2a7889d1ff8004fddd2546aec1232e0eaed (patch)
treee309a759b4ebee9ab9fa32d839d8ebb819c145f6 /apps/files
parent74580daa23016fab370b2f6c14d82401032733cb (diff)
parent54e2ac57130666add0ad5d3c583c6f29527b4ebc (diff)
downloadnextcloud-server-842cc2a7889d1ff8004fddd2546aec1232e0eaed.tar.gz
nextcloud-server-842cc2a7889d1ff8004fddd2546aec1232e0eaed.zip
Merge pull request #19 from nextcloud/files-drop
add "hide file list" option
Diffstat (limited to 'apps/files')
-rw-r--r--apps/files/ajax/upload.php23
1 files changed, 23 insertions, 0 deletions
diff --git a/apps/files/ajax/upload.php b/apps/files/ajax/upload.php
index 9cc9c279700..98066845734 100644
--- a/apps/files/ajax/upload.php
+++ b/apps/files/ajax/upload.php
@@ -161,6 +161,15 @@ if (\OC\Files\Filesystem::isValidPath($dir) === true) {
$resolution = null;
}
+ 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';
+ }
+ }
+
// target directory for when uploading folders
$relativePath = '';
if(!empty($_POST['file_directory'])) {
@@ -247,6 +256,20 @@ if (\OC\Files\Filesystem::isValidPath($dir) === true) {
}
if ($error === false) {
+ // Do not leak file information if it is a read-only share
+ if(isset($_POST['dirToken'])) {
+ $shareManager = \OC::$server->getShareManager();
+ $share = $shareManager->getShareByToken((string)$_POST['dirToken']);
+ if (!($share->getPermissions() & \OCP\Constants::PERMISSION_READ)) {
+ $newResults = [];
+ foreach($result as $singleResult) {
+ $fileName = $singleResult['originalname'];
+ $newResults['filename'] = $fileName;
+ $newResults['mimetype'] = \OC::$server->getMimeTypeDetector()->detectPath($fileName);
+ }
+ $result = $newResults;
+ }
+ }
OCP\JSON::encodedPrint($result);
} else {
OCP\JSON::error(array(array('data' => array_merge(array('message' => $error, 'code' => $errorCode), $storageStats))));