diff options
author | Morris Jobke <hey@morrisjobke.de> | 2015-07-01 08:54:48 +0200 |
---|---|---|
committer | Morris Jobke <hey@morrisjobke.de> | 2015-07-01 08:54:48 +0200 |
commit | 8f05d4b662e2f0839af46c29ad0a7a4cad88d73a (patch) | |
tree | faa085af15cd9529bc9416e050138360769fb423 | |
parent | 1469177a3a45ed22b64a7b96f840be917b8aab07 (diff) | |
parent | 41a8f45b93a55fe3e72f0700c15ac04db498d839 (diff) | |
download | nextcloud-server-8f05d4b662e2f0839af46c29ad0a7a4cad88d73a.tar.gz nextcloud-server-8f05d4b662e2f0839af46c29ad0a7a4cad88d73a.zip |
Merge pull request #16535 from rullzer/ocs_share_api_url
OCS Share API link shares now always have an url
-rw-r--r-- | apps/files_sharing/api/local.php | 10 | ||||
-rw-r--r-- | apps/files_sharing/tests/api.php | 45 |
2 files changed, 55 insertions, 0 deletions
diff --git a/apps/files_sharing/api/local.php b/apps/files_sharing/api/local.php index 308965192b9..84a789f26e4 100644 --- a/apps/files_sharing/api/local.php +++ b/apps/files_sharing/api/local.php @@ -71,6 +71,10 @@ class Local { } $share['icon'] = substr(\OC_Helper::mimetypeIcon($share['mimetype']), 0, -3) . 'svg'; } + + if (!is_null($share['token'])) { + $share['url'] = \OC::$server->getURLGenerator()->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', ['token' => $share['token']]); + } } return new \OC_OCS_Result($shares); } @@ -143,6 +147,12 @@ class Local { if ($shares === null || empty($shares)) { return new \OC_OCS_Result(null, 404, 'share doesn\'t exist'); } else { + foreach ($shares as &$share) { + if (!is_null($share['token'])) { + $share['url'] = \OC::$server->getURLGenerator()->linkToRouteAbsolute('files_sharing.sharecontroller.showShare', ['token' => $share['token']]); + } + } + return new \OC_OCS_Result($shares); } } diff --git a/apps/files_sharing/tests/api.php b/apps/files_sharing/tests/api.php index d5a6fd5b657..af441b38ff2 100644 --- a/apps/files_sharing/tests/api.php +++ b/apps/files_sharing/tests/api.php @@ -311,6 +311,51 @@ class Test_Files_Sharing_Api extends TestCase { * @medium * @depends testCreateShare */ + function testPublicLinkUrl() { + // simulate a post request + $_POST['path'] = $this->folder; + $_POST['shareType'] = \OCP\Share::SHARE_TYPE_LINK; + + $result = \OCA\Files_Sharing\API\Local::createShare([]); + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + + // check if we have a token + $this->assertTrue(is_string($data['token'])); + $id = $data['id']; + + // check for correct link + $url = \OC::$server->getURLGenerator()->getAbsoluteURL('/index.php/s/' . $data['token']); + $this->assertEquals($url, $data['url']); + + // check for link in getall shares + $result = \OCA\Files_Sharing\API\Local::getAllShares([]); + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $this->assertEquals($url, current($data)['url']); + + // check for path + $_GET['path'] = $this->folder; + $result = \OCA\Files_Sharing\API\Local::getAllShares([]); + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $this->assertEquals($url, current($data)['url']); + + // check in share id + $result = \OCA\Files_Sharing\API\Local::getShare(['id' => $id]); + $this->assertTrue($result->succeeded()); + $data = $result->getData(); + $this->assertEquals($url, current($data)['url']); + + //Clean up share + $fileinfo = $this->view->getFileInfo($this->folder); + \OCP\Share::unshare('folder', $fileinfo['fileid'], \OCP\Share::SHARE_TYPE_LINK, null); + } + + /** + * @medium + * @depends testCreateShare + */ function testGetShareFromSource() { $fileInfo = $this->view->getFileInfo($this->filename); |