summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--apps/files_sharing/api/share20ocs.php9
-rw-r--r--lib/private/share20/defaultshareprovider.php2
-rw-r--r--tests/lib/share20/defaultshareprovidertest.php14
3 files changed, 16 insertions, 9 deletions
diff --git a/apps/files_sharing/api/share20ocs.php b/apps/files_sharing/api/share20ocs.php
index c5e7dcff824..3048eb7cd1a 100644
--- a/apps/files_sharing/api/share20ocs.php
+++ b/apps/files_sharing/api/share20ocs.php
@@ -335,7 +335,9 @@ class Share20OCS {
$formatted = [];
foreach ($shares as $share) {
- $formatted[] = $this->formatShare($share);
+ if ($this->canAccessShare($share)) {
+ $formatted[] = $this->formatShare($share);
+ }
}
return new \OC_OCS_Result($formatted);
@@ -496,6 +498,11 @@ class Share20OCS {
* @return bool
*/
protected function canAccessShare(IShare $share) {
+ // A file with permissions 0 can't be accessed by us. So Don't show it
+ if ($share->getPermissions() === 0) {
+ return false;
+ }
+
// Owner of the file and the sharer of the file can always get share
if ($share->getShareOwner() === $this->currentUser ||
$share->getSharedBy() === $this->currentUser
diff --git a/lib/private/share20/defaultshareprovider.php b/lib/private/share20/defaultshareprovider.php
index fb2acb56a73..117d56acf93 100644
--- a/lib/private/share20/defaultshareprovider.php
+++ b/lib/private/share20/defaultshareprovider.php
@@ -760,7 +760,7 @@ class DefaultShareProvider implements IShareProvider {
$stmt->closeCursor();
if ($data !== false) {
- $share->setPermissions($data['permissions']);
+ $share->setPermissions((int)$data['permissions']);
$share->setTarget($data['file_target']);
}
diff --git a/tests/lib/share20/defaultshareprovidertest.php b/tests/lib/share20/defaultshareprovidertest.php
index 79cc92116be..f86d4df948d 100644
--- a/tests/lib/share20/defaultshareprovidertest.php
+++ b/tests/lib/share20/defaultshareprovidertest.php
@@ -981,13 +981,13 @@ class DefaultShareProviderTest extends \Test\TestCase {
$this->assertCount(1, $share);
$share = $share[0];
- $this->assertEquals($id, $share->getId());
- $this->assertEquals($group, $share->getSharedWith());
- $this->assertEquals($owner, $share->getShareOwner());
- $this->assertEquals($initiator, $share->getSharedBy());
- $this->assertEquals(\OCP\Share::SHARE_TYPE_GROUP, $share->getShareType());
- $this->assertEquals(0, $share->getPermissions());
- $this->assertEquals('userTarget', $share->getTarget());
+ $this->assertSame($id, $share->getId());
+ $this->assertSame($group, $share->getSharedWith());
+ $this->assertSame($owner, $share->getShareOwner());
+ $this->assertSame($initiator, $share->getSharedBy());
+ $this->assertSame(\OCP\Share::SHARE_TYPE_GROUP, $share->getShareType());
+ $this->assertSame(0, $share->getPermissions());
+ $this->assertSame('userTarget', $share->getTarget());
}
public function testGetSharesBy() {