Browse Source

Return whether the file is readable or not in the DAV permissions

Until now it was safe to assume that every file was readable by its
owner, so there was no need to return whether the file was readable or
not. However, with the introduction of end to end encryption that is no
longer the case, and it is now necessary to explicitly provide that
information.

Signed-off-by: Daniel Calviño Sánchez <danxuliu@gmail.com>
tags/v13.0.0beta2
Daniel Calviño Sánchez 6 years ago
parent
commit
555d582f35

+ 3
- 0
apps/dav/lib/Connector/Sabre/Node.php View File

@@ -299,6 +299,9 @@ abstract class Node implements \Sabre\DAV\INode {
if ($this->info->isMounted()) {
$p .= 'M';
}
if ($this->info->isReadable()) {
$p .= 'G';
}
if ($this->info->isDeletable()) {
$p .= 'D';
}

+ 11
- 9
apps/dav/tests/unit/Connector/Sabre/NodeTest.php View File

@@ -41,15 +41,17 @@ use OCP\Share\IShare;
class NodeTest extends \Test\TestCase {
public function davPermissionsProvider() {
return array(
array(\OCP\Constants::PERMISSION_ALL, 'file', false, false, 'RDNVW'),
array(\OCP\Constants::PERMISSION_ALL, 'dir', false, false, 'RDNVCK'),
array(\OCP\Constants::PERMISSION_ALL, 'file', true, false, 'SRDNVW'),
array(\OCP\Constants::PERMISSION_ALL, 'file', true, true, 'SRMDNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_SHARE, 'file', true, false, 'SDNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_UPDATE, 'file', false, false, 'RD'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_DELETE, 'file', false, false, 'RNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_CREATE, 'file', false, false, 'RDNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_CREATE, 'dir', false, false, 'RDNV'),
array(\OCP\Constants::PERMISSION_ALL, 'file', false, false, 'RGDNVW'),
array(\OCP\Constants::PERMISSION_ALL, 'dir', false, false, 'RGDNVCK'),
array(\OCP\Constants::PERMISSION_ALL, 'file', true, false, 'SRGDNVW'),
array(\OCP\Constants::PERMISSION_ALL, 'file', true, true, 'SRMGDNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_SHARE, 'file', true, false, 'SGDNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_UPDATE, 'file', false, false, 'RGD'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_DELETE, 'file', false, false, 'RGNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_CREATE, 'file', false, false, 'RGDNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_READ, 'file', false, false, 'RDNVW'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_CREATE, 'dir', false, false, 'RGDNV'),
array(\OCP\Constants::PERMISSION_ALL - \OCP\Constants::PERMISSION_READ, 'dir', false, false, 'RDNVCK'),
);
}


+ 6
- 6
build/integration/features/sharing-v1-part3.feature View File

@@ -167,7 +167,7 @@ Feature: sharing
And folder "/merge-test-outside-perms" of user "user0" is shared with user "user1" with permissions 31
Then as "user1" gets properties of folder "/merge-test-outside-perms" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRGDNVCK"
And as "user1" the folder "/merge-test-outside-perms (2)" does not exist

Scenario: Merging shares for recipient when shared from outside with two groups
@@ -197,7 +197,7 @@ Feature: sharing
And folder "/merge-test-outside-twogroups-perms" of user "user0" is shared with group "group2" with permissions 31
Then as "user1" gets properties of folder "/merge-test-outside-twogroups-perms" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRGDNVCK"
And as "user1" the folder "/merge-test-outside-twogroups-perms (2)" does not exist

Scenario: Merging shares for recipient when shared from outside with two groups and member
@@ -214,7 +214,7 @@ Feature: sharing
And folder "/merge-test-outside-twogroups-member-perms" of user "user0" is shared with user "user1" with permissions 1
Then as "user1" gets properties of folder "/merge-test-outside-twogroups-member-perms" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRGDNVCK"
And as "user1" the folder "/merge-test-outside-twogroups-member-perms (2)" does not exist

Scenario: Merging shares for recipient when shared from inside with group
@@ -253,7 +253,7 @@ Feature: sharing
And folder "/merge-test-inside-twogroups-perms" of user "user0" is shared with group "group2"
Then as "user0" gets properties of folder "/merge-test-inside-twogroups-perms" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "RDNVCK"
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "RGDNVCK"
And as "user0" the folder "/merge-test-inside-twogroups-perms (2)" does not exist
And as "user0" the folder "/merge-test-inside-twogroups-perms (3)" does not exist

@@ -270,7 +270,7 @@ Feature: sharing
And folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with user "user1"
Then as "user1" gets properties of folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRGDNVCK"
And as "user1" the folder "/merge-test-outside-groups-renamebeforesecondshare" does not exist

Scenario: Merging shares for recipient when shared from outside with user then group and recipient renames in between
@@ -287,7 +287,7 @@ Feature: sharing
And folder "/merge-test-outside-groups-renamebeforesecondshare" of user "user0" is shared with group "group1"
Then as "user1" gets properties of folder "/merge-test-outside-groups-renamebeforesecondshare-renamed" with
|{http://owncloud.org/ns}permissions|
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRDNVCK"
And the single response should contain a property "{http://owncloud.org/ns}permissions" with value "SRGDNVCK"
And as "user1" the folder "/merge-test-outside-groups-renamebeforesecondshare" does not exist

Scenario: Empting trashbin

Loading…
Cancel
Save