From b7b3a4920341f00e2f544ca7f883a93dab019756 Mon Sep 17 00:00:00 2001 From: Michael Gapczynski Date: Tue, 16 Aug 2011 21:32:51 -0400 Subject: [PATCH] Functions to get the token of a public link now stored by OC_Share, remove no longer needed ajax call to getlink.php --- apps/files_sharing/ajax/share.php | 5 ++++- apps/files_sharing/js/share.js | 15 ++++++--------- apps/files_sharing/lib_share.php | 23 +++++++++++++++++++++++ 3 files changed, 33 insertions(+), 10 deletions(-) diff --git a/apps/files_sharing/ajax/share.php b/apps/files_sharing/ajax/share.php index f0166f391d..d9bf4ff7ab 100644 --- a/apps/files_sharing/ajax/share.php +++ b/apps/files_sharing/ajax/share.php @@ -11,7 +11,10 @@ foreach ($sources as $source) { if ($source && OC_FILESYSTEM::file_exists($source) && OC_FILESYSTEM::is_readable($source)) { $source = "/".OC_User::getUser()."/files".$source; try { - new OC_Share($source, $uid_shared_with, $permissions); + $shared = new OC_Share($source, $uid_shared_with, $permissions); + if ($uid_shared_with == OC_Share::PUBLICLINK) { + echo $shared->getToken(); + } } catch (Exception $exception) { echo "false"; } diff --git a/apps/files_sharing/js/share.js b/apps/files_sharing/js/share.js index 18d8da8540..f9500ffd00 100644 --- a/apps/files_sharing/js/share.js +++ b/apps/files_sharing/js/share.js @@ -145,9 +145,8 @@ $(document).ready(function() { url: OC.linkTo('files_sharing','ajax/share.php'), cache: false, data: data, - success: function(result) { - if (result !== 'false') { - var token = 1234; + success: function(token) { + if (token) { showPublicLink(token); } } @@ -205,7 +204,10 @@ function createDropdown(filename, files) { $.getJSON(OC.linkTo('files_sharing', 'ajax/getitem.php'), { source: files }, function(users) { if (users) { $.each(users, function(index, row) { - if (isNaN(index)) { + if (row.uid_shared_with == 'public') { + var token = 1234; + showPublicLink(token); + } else if (isNaN(index)) { addUser(row.uid_shared_with, row.permissions, index.substr(0, index.lastIndexOf('-'))); } else { addUser(row.uid_shared_with, row.permissions, false); @@ -213,11 +215,6 @@ function createDropdown(filename, files) { }); } }); -// $.getJSON(OC.linkTo('files_publiclink', 'ajax/getlink.php'), { path: files }, function(token) { -// if (token) { -// showPublicLink(token); -// } -// }); $('#dropdown').show('blind'); $('#share_with').chosen(); } diff --git a/apps/files_sharing/lib_share.php b/apps/files_sharing/lib_share.php index 0aae45e54c..f682e1a30f 100644 --- a/apps/files_sharing/lib_share.php +++ b/apps/files_sharing/lib_share.php @@ -276,6 +276,29 @@ class OC_Share { } } + /** + * Get the token for a public link + * @return The token of the public link, a sha1 hash + */ + public function getToken() { + return $this->token; + } + + /** + * Get the token for a public link + * @param $source The source location of the item + * @return The token of the public link, a sha1 hash + */ + public static function getTokenFromSource($source) { + $query = OC_DB::prepare("SELECT target FROM *PREFIX*sharing WHERE source = ? AND uid_shared_with = ? AND uid_owner = ? LIMIT 1"); + $result = $query->execute(array($source, self::PUBLICLINK, OC_User::getUser()))->fetchAll(); + if (count($result) > 0) { + return $result[0]['target']; + } else { + return false; + } + } + /** * Set the source location to a new value * @param $oldSource The current source location