diff options
author | Michael Gapczynski <mtgap@owncloud.com> | 2012-07-11 12:18:59 -0400 |
---|---|---|
committer | Michael Gapczynski <mtgap@owncloud.com> | 2012-07-11 12:18:59 -0400 |
commit | ccb5e99395955233b6600b4bf04c90dfa1d08ede (patch) | |
tree | 943f0d3d84d2a8026f1b47c95581b413361f89bb /lib | |
parent | e896c0a9e3cdf34112ce722583d574f36dbbaf2a (diff) | |
download | nextcloud-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.php | 20 |
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; |