]> source.dussan.org Git - nextcloud-server.git/commitdiff
Functions to get the token of a public link now stored by OC_Share, remove no longer...
authorMichael Gapczynski <GapczynskiM@gmail.com>
Wed, 17 Aug 2011 01:32:51 +0000 (21:32 -0400)
committerMichael Gapczynski <GapczynskiM@gmail.com>
Wed, 17 Aug 2011 01:32:51 +0000 (21:32 -0400)
apps/files_sharing/ajax/share.php
apps/files_sharing/js/share.js
apps/files_sharing/lib_share.php

index f0166f391db55b797f2fb6e375ce0b4a1e12ea40..d9bf4ff7abebcf34efe93605f9ab77cce0927d21 100644 (file)
@@ -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";
                }
index 18d8da8540376d48cbba4822d9e4d91dfad08fc4..f9500ffd000249954740d98142a0f3a8cef6873b 100644 (file)
@@ -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();
 }
index 0aae45e54ce4f47e41c173e8ac9c3d7a1ccbdd72..f682e1a30f14f698ea6babb08b3ff9a4f389bd80 100644 (file)
@@ -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