Merge pull request #3951 from owncloud/fixing-3936-master
get the real physical folder name for anonymous upload
This commit is contained in:
commit
bc1c776642
2 changed files with 23 additions and 5 deletions
|
@ -18,7 +18,6 @@ if (empty($_POST['dirToken'])) {
|
|||
}
|
||||
} else {
|
||||
$linkItem = OCP\Share::getShareByToken($_POST['dirToken']);
|
||||
|
||||
if ($linkItem === false) {
|
||||
OCP\JSON::error(array('data' => array_merge(array('message' => $l->t('Invalid Token')))));
|
||||
die();
|
||||
|
@ -27,11 +26,21 @@ if (empty($_POST['dirToken'])) {
|
|||
if (!($linkItem['permissions'] & OCP\PERMISSION_CREATE)) {
|
||||
OCP\JSON::checkLoggedIn();
|
||||
} else {
|
||||
// Setup FS with owner
|
||||
OC_Util::tearDownFS();
|
||||
OC_Util::setupFS($linkItem['uid_owner']);
|
||||
|
||||
// translate linkItem to the real folder name on the file system
|
||||
$sharedItem = OCP\Share::getSharedItem($linkItem['item_type'], $linkItem['item_source'], $linkItem['uid_owner']);
|
||||
if (!$sharedItem || empty($sharedItem) || $sharedItem === false) {
|
||||
OCP\JSON::error(array('data' => array_merge(array('message' => $l->t('Unable to set upload directory.')))));
|
||||
die();
|
||||
}
|
||||
|
||||
// The token defines the target directory (security reasons)
|
||||
$dir = sprintf(
|
||||
"/%s/%s",
|
||||
$linkItem['file_target'],
|
||||
$sharedItem['path'],
|
||||
isset($_POST['subdir']) ? $_POST['subdir'] : ''
|
||||
);
|
||||
|
||||
|
@ -39,8 +48,6 @@ if (empty($_POST['dirToken'])) {
|
|||
OCP\JSON::error(array('data' => array_merge(array('message' => $l->t('Unable to set upload directory.')))));
|
||||
die();
|
||||
}
|
||||
// Setup FS with owner
|
||||
OC_Util::setupFS($linkItem['uid_owner']);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -312,11 +312,22 @@ class Share {
|
|||
* @return Return depends on format
|
||||
*/
|
||||
public static function getItemShared($itemType, $itemSource, $format = self::FORMAT_NONE,
|
||||
$parameters = null, $includeCollections = false) {
|
||||
$parameters = null, $includeCollections = false) {
|
||||
return self::getItems($itemType, $itemSource, null, null, \OC_User::getUser(), $format,
|
||||
$parameters, -1, $includeCollections);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $itemType
|
||||
* @param $itemSource
|
||||
* @param $uid_owner
|
||||
* @return mixed
|
||||
*/
|
||||
public static function getSharedItem($itemType, $itemSource, $uid_owner) {
|
||||
return self::getItems($itemType, $itemSource, null, null, $uid_owner, self::FORMAT_NONE,
|
||||
null, 1, false);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all users an item is shared with
|
||||
* @param string Item type
|
||||
|
|
Loading…
Reference in a new issue