summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMichael Gapczynski <mtgap@owncloud.com>2012-07-11 12:18:59 -0400
committerMichael Gapczynski <mtgap@owncloud.com>2012-07-11 12:18:59 -0400
commitccb5e99395955233b6600b4bf04c90dfa1d08ede (patch)
tree943f0d3d84d2a8026f1b47c95581b413361f89bb /lib
parente896c0a9e3cdf34112ce722583d574f36dbbaf2a (diff)
downloadnextcloud-server-ccb5e99395955233b6600b4bf04c90dfa1d08ede.tar.gz
nextcloud-server-ccb5e99395955233b6600b4bf04c90dfa1d08ede.zip
Generate random token for private links (more entropy than past private links)
Diffstat (limited to 'lib')
-rw-r--r--lib/public/share.php20
1 files changed, 13 insertions, 7 deletions
diff --git a/lib/public/share.php b/lib/public/share.php
index c6dff4467d9..61014c6160e 100644
--- a/lib/public/share.php
+++ b/lib/public/share.php
@@ -179,11 +179,9 @@ class Share {
$shareWith['group'] = $group;
$shareWith['users'] = array_diff(\OC_Group::usersInGroup($group), array($uidOwner));
break;
- case self::SHARETYPE_PRIVATE_LINK:
- // TODO don't loop through folder conversion
- $uidSharedWith = '';
- $gidSharedWith = null;
- break;
+ case self::SHARE_TYPE_PRIVATE_LINK:
+ $shareWith = md5(uniqid($item, true));
+ return self::put($itemType, $item, $shareType, $shareWith, $uidOwner, $permissions);
// Future share types need to include their own conditions
default:
\OC_Log::write('OCP\Share', 'Share type '.$shareType.' is not valid for '.$item, \OC_Log::ERROR);
@@ -630,7 +628,11 @@ class Share {
return $parentFolders;
}
} else {
- $itemTarget = $backend->generateTarget($item, $shareWith);
+ if ($shareType == self::SHARE_TYPE_PRIVATE_LINK) {
+ $itemTarget = null;
+ } else {
+ $itemTarget = $backend->generateTarget($item, $shareWith);
+ }
if (isset($fileSource)) {
if ($parentFolder) {
if ($parentFolder === true) {
@@ -641,7 +643,11 @@ class Share {
$parent = $parentFolder['id'];
}
} else {
- $fileTarget = self::getBackend('file')->generateTarget($source['file'], $shareWith);
+ if ($shareType == self::SHARE_TYPE_PRIVATE_LINK) {
+ $fileTarget = basename($source['file']);
+ } else {
+ $fileTarget = self::getBackend('file')->generateTarget($source['file'], $shareWith);
+ }
}
} else {
$fileTarget = null;