diff --git a/.drone.env b/.drone.env
index e774b092a9..4b25ea503b 100644
--- a/.drone.env
+++ b/.drone.env
@@ -1,4 +1,4 @@
# The test runner source for API tests
-APITESTS_COMMITID=4076bc71e63b4dd4d7931e1ad085ee214f137e38
+APITESTS_COMMITID=1788406b5273782d5bad44543ba5b9f94d48370d
APITESTS_BRANCH=master
APITESTS_REPO_GIT_URL=https://github.com/owncloud/ocis.git
diff --git a/.drone.star b/.drone.star
index e80cb94fb1..f7e6c558d7 100644
--- a/.drone.star
+++ b/.drone.star
@@ -119,7 +119,7 @@ def ocisIntegrationTest():
"REVA_LDAP_HOSTNAME": "ldap",
"TEST_REVA": "true",
"SEND_SCENARIO_LINE_REFERENCES": "true",
- "BEHAT_FILTER_TAGS": "~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@local_storage&&~@skipOnOcis-OCIS-Storage&&~@personalSpace&&~@skipOnGraph&&~@caldav&&~@carddav&&~@skipOnReva&&~@skipOnRevaMaster",
+ "BEHAT_FILTER_TAGS": "~@provisioning_api-app-required&&~@preview-extension-required&&~@skipOnOcis-OCIS-Storage&&~@personalSpace&&~@skipOnGraph&&~@carddav&&~@skipOnReva&&~@skipOnRevaMaster",
"DIVIDE_INTO_NUM_PARTS": 6,
"RUN_PART": 2,
"EXPECTED_FAILURES_FILE": "/drone/src/tests/acceptance/expected-failures-on-OCIS-storage.md",
@@ -190,7 +190,7 @@ def s3ngIntegrationTests():
"REVA_LDAP_HOSTNAME": "ldap",
"TEST_REVA": "true",
"SEND_SCENARIO_LINE_REFERENCES": "true",
- "BEHAT_FILTER_TAGS": "~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@local_storage&&~@skipOnOcis-OCIS-Storage&&~@personalSpace&&~@skipOnGraph&&~@caldav&&~@carddav&&~@skipOnReva&&~@skipOnRevaMaster",
+ "BEHAT_FILTER_TAGS": "~@provisioning_api-app-required&&~@preview-extension-required&&~@skipOnOcis-OCIS-Storage&&~@personalSpace&&~@skipOnGraph&&~@carddav&&~@skipOnReva&&~@skipOnRevaMaster",
"DIVIDE_INTO_NUM_PARTS": parallelRuns,
"RUN_PART": runPart,
"EXPECTED_FAILURES_FILE": "/drone/src/tests/acceptance/expected-failures-on-S3NG-storage.md",
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 9ea1fd3530..5b04892bf1 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,281 @@
+Changelog for reva 1.24.0 (2023-05-11)
+=======================================
+
+The following sections list the changes in reva 1.24.0 relevant to
+reva users. The changes are ordered by importance.
+
+Summary
+-------
+
+ * Fix #3805: Apps: fixed viewMode resolution
+ * Fix #3771: Fix files sharing capabilities
+ * Fix #3749: Fix persisting updates of received shares in json driver
+ * Fix #3723: Fix revad docker images by enabling CGO
+ * Fix #3765: Fix create version folder in EOS driver
+ * Fix #3786: Fix listing directory for a read-only shares for EOS storage driver
+ * Fix #3787: Fix application flag for EOS binary
+ * Fix #3780: Fix Makefile error on Ubuntu
+ * Fix #3873: Fix parsing of grappa response
+ * Fix #3794: Fix unshare for EOS storage driver
+ * Fix #3838: Fix upload in a single file share for lightweight accounts
+ * Fix #3878: Fix creator/initiator in public and user shares
+ * Fix #3813: Fix propfind URL for OCM shares
+ * Fix #3770: Fixed default protocol on ocm-share-create
+ * Fix #3852: Pass remote share id and shared secret in OCM call
+ * Fix #3859: Fix inconsistency between data transfer protocol naming
+ * Enh #3847: Update data transfers for current OCM shares implementation
+ * Enh #3869: Datatx tutorial
+ * Enh #3762: Denial and Resharing Default capabilities
+ * Enh #3717: Disable sharing on low level paths
+ * Enh #3766: Download file revisions
+ * Enh #3733: Add support for static linking
+ * Enh #3778: Add support to tag eos traffic
+ * Enh #3868: Implement historical way of constructing OCM WebDAV URL
+ * Enh #3719: Skip computing groups when fetching all groups from grappa
+ * Enh #3783: Updated OCM tutorial
+ * Enh #3750: New metadata flags
+ * Enh #3839: Support multiple issuer in OIDC auth driver
+ * Enh #3772: New OCM discovery endpoint
+ * Enh #3619: Tests for invitation manager SQL driver
+ * Enh #3757: Support OCM v1.0 schema
+ * Enh #3695: Create OCM share from sciencemesh service
+ * Enh #3722: List only valid OCM tokens
+ * Enh #3821: Revamp user/group drivers and fix user type
+ * Enh #3724: Send invitation link from mesh directory
+ * Enh #3824: Serverless Services
+
+Details
+-------
+
+ * Bugfix #3805: Apps: fixed viewMode resolution
+
+ Currently, the viewMode passed on /app/open is taken without validating the actual user's
+ permissions. This PR fixes this.
+
+ https://github.com/cs3org/reva/pull/3805
+
+ * Bugfix #3771: Fix files sharing capabilities
+
+ A bug was preventing setting some capabilities (ResharingDefault and DenyAccess) for files
+ sharing from the configuration file
+
+ https://github.com/cs3org/reva/pull/3771
+
+ * Bugfix #3749: Fix persisting updates of received shares in json driver
+
+ https://github.com/cs3org/reva/pull/3749
+
+ * Bugfix #3723: Fix revad docker images by enabling CGO
+
+ https://github.com/cs3org/reva/pull/3723
+
+ * Bugfix #3765: Fix create version folder in EOS driver
+
+ In a read only share, a stat could fail, beacause the EOS storage driver was not able to create the
+ version folder for a file in case this did not exist. This fixes this bug impersonating the owner
+ of the file when creating the version folder.
+
+ https://github.com/cs3org/reva/pull/3765
+
+ * Bugfix #3786: Fix listing directory for a read-only shares for EOS storage driver
+
+ In a read-only share, while listing a folder, for resources not having a version folder, the
+ returned resource id was wrongly the one of the original file, instead of the version folder.
+ This behavior has been fixed, where the version folder is always created on behalf of the
+ resource owner.
+
+ https://github.com/cs3org/reva/pull/3786
+
+ * Bugfix #3787: Fix application flag for EOS binary
+
+ https://github.com/cs3org/reva/pull/3787
+
+ * Bugfix #3780: Fix Makefile error on Ubuntu
+
+ I've fixed Makefile using sh which is defaulted to dash in ubuntu, dash doesn't support `[[ ...
+ ]]` syntax and Makefile would throw `/bin/sh: 1: [[: not found` errors.
+
+ https://github.com/cs3org/reva/issues/3773
+ https://github.com/cs3org/reva/pull/3780
+
+ * Bugfix #3873: Fix parsing of grappa response
+
+ https://github.com/cs3org/reva/pull/3873
+
+ * Bugfix #3794: Fix unshare for EOS storage driver
+
+ In the EOS storage driver, the remove acl operation was a no-op. After removing a share, the
+ recipient of the share was still able to operate on the shared resource. Now this has been fixed,
+ removing correctly the ACL from the shared resource.
+
+ https://github.com/cs3org/reva/pull/3794
+
+ * Bugfix #3838: Fix upload in a single file share for lightweight accounts
+
+ https://github.com/cs3org/reva/pull/3838
+
+ * Bugfix #3878: Fix creator/initiator in public and user shares
+
+ https://github.com/cs3org/reva/pull/3878
+
+ * Bugfix #3813: Fix propfind URL for OCM shares
+
+ https://github.com/cs3org/reva/issues/3810
+ https://github.com/cs3org/reva/pull/3813
+
+ * Bugfix #3770: Fixed default protocol on ocm-share-create
+
+ https://github.com/cs3org/reva/pull/3770
+
+ * Bugfix #3852: Pass remote share id and shared secret in OCM call
+
+ https://github.com/cs3org/reva/pull/3852
+
+ * Bugfix #3859: Fix inconsistency between data transfer protocol naming
+
+ https://github.com/cs3org/reva/issues/3858
+ https://github.com/cs3org/reva/pull/3859
+
+ * Enhancement #3847: Update data transfers for current OCM shares implementation
+
+ https://github.com/cs3org/reva/issues/3846
+ https://github.com/cs3org/reva/pull/3847
+
+ * Enhancement #3869: Datatx tutorial
+
+ https://github.com/cs3org/reva/issues/3864
+ https://github.com/cs3org/reva/pull/3869
+
+ * Enhancement #3762: Denial and Resharing Default capabilities
+
+ https://github.com/cs3org/reva/pull/3762
+
+ * Enhancement #3717: Disable sharing on low level paths
+
+ Sharing can be disable in the user share provider for some paths, but the storage provider was
+ still sending the sharing permissions for those paths. This adds a config option in the storage
+ provider, `minimum_allowed_path_level_for_share`, to disable sharing permissions for
+ resources up to a defined path level.
+
+ https://github.com/cs3org/reva/pull/3717
+
+ * Enhancement #3766: Download file revisions
+
+ Currently it is only possible to restore a file version, replacing the actual file with the
+ selected version. This allows an user to download a version file, without touching/replacing
+ the last version of the file
+
+ https://github.com/cs3org/reva/pull/3766
+
+ * Enhancement #3733: Add support for static linking
+
+ We've added support for compiling reva with static linking enabled. It's possible to do so with
+ the `STATIC` flag: `make revad STATIC=true`
+
+ https://github.com/cs3org/reva/pull/3733
+
+ * Enhancement #3778: Add support to tag eos traffic
+
+ We've added support to tag eos traffic
+
+ https://github.com/cs3org/reva/pull/3778
+
+ * Enhancement #3868: Implement historical way of constructing OCM WebDAV URL
+
+ Expose the expected WebDAV endpoint for OCM by OC10 and Nextcloud as described in
+ https://github.com/cs3org/OCM-API/issues/70#issuecomment-1538551138 to allow reva
+ providers to participate to mesh.
+
+ https://github.com/cs3org/reva/issues/3855
+ https://github.com/cs3org/reva/pull/3868
+
+ * Enhancement #3719: Skip computing groups when fetching all groups from grappa
+
+ https://github.com/cs3org/reva/pull/3719
+
+ * Enhancement #3783: Updated OCM tutorial
+
+ The OCM tutorial in the doc was missing the example on how to access the received resources. Now
+ the tutorial contains all the steps to access a received resource using the WebDAV protocol.
+
+ https://github.com/cs3org/reva/pull/3783
+
+ * Enhancement #3750: New metadata flags
+
+ Several new flags, like site infrastructure and service status, are now gathered and exposed
+ by Mentix.
+
+ https://github.com/cs3org/reva/pull/3750
+
+ * Enhancement #3839: Support multiple issuer in OIDC auth driver
+
+ The OIDC auth driver supports now multiple issuers. Users of external providers are then
+ mapped to a local user by a mapping files. Only the main issuer (defined in the config with
+ `issuer`) and the ones defined in the mapping are allowed for the verification of the OIDC
+ token.
+
+ https://github.com/cs3org/reva/pull/3839
+
+ * Enhancement #3772: New OCM discovery endpoint
+
+ This PR implements the new OCM v1.1 specifications for the /ocm-provider endpoint.
+
+ https://github.com/cs3org/reva/pull/3772
+
+ * Enhancement #3619: Tests for invitation manager SQL driver
+
+ https://github.com/cs3org/reva/pull/3619
+
+ * Enhancement #3757: Support OCM v1.0 schema
+
+ Following cs3org/cs3apis#206, we add the fields to ensure backwards compatibility with OCM
+ v1.0. However, if the `protocol.options` undocumented object is not empty, we bail out for
+ now. Supporting interoperability with OCM v1.0 implementations (notably Nextcloud 25) may
+ come in the future if the undocumented options are fully reverse engineered. This is reflected
+ in the unit tests as well.
+
+ Also, added viewMode to webapp protocol options (cs3org/cs3apis#207) and adapted all SQL
+ code and unit tests.
+
+ https://github.com/cs3org/reva/pull/3757
+
+ * Enhancement #3695: Create OCM share from sciencemesh service
+
+ https://github.com/pondersource/sciencemesh-php/issues/166
+ https://github.com/cs3org/reva/pull/3695
+
+ * Enhancement #3722: List only valid OCM tokens
+
+ https://github.com/cs3org/reva/pull/3722
+
+ * Enhancement #3821: Revamp user/group drivers and fix user type
+
+ For lightweight accounts
+
+ * Fix the user type for lightweight accounts, using the source field to differentiate between a
+ primary and lw account * Remove all the code with manual parsing of the json returned by the CERN
+ provider * Introduce pagination for `GetMembers` method in the group driver * Reduced network
+ transfer size by requesting only needed fields for `GetMembers` method
+
+ https://github.com/cs3org/reva/pull/3821
+
+ * Enhancement #3724: Send invitation link from mesh directory
+
+ When generating and listing OCM tokens
+
+ To enhance user expirience, instead of only sending the token, we send directly the URL for
+ accepting the invitation workflow.
+
+ https://github.com/cs3org/reva/pull/3724
+
+ * Enhancement #3824: Serverless Services
+
+ New type of service (along with http and grpc) which does not have a listening server. Useful for
+ the notifications service and others in the future.
+
+ https://github.com/cs3org/reva/pull/3824
+
+
Changelog for reva 1.23.0 (2023-03-09)
=======================================
diff --git a/README.md b/README.md
index 86c04c112b..38c12f0cc8 100644
--- a/README.md
+++ b/README.md
@@ -156,7 +156,7 @@ This will require some PHP-related tools to run, for instance on Ubuntu you will
TEST_WITH_LDAP='true' \
REVA_LDAP_HOSTNAME='localhost' \
TEST_REVA='true' \
- BEHAT_FILTER_TAGS='~@notToImplementOnOCIS&&~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@local_storage&&~@skipOnOcis-OCIS-Storage&&~@skipOnOcis' \
+ BEHAT_FILTER_TAGS='~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@skipOnOcis-OCIS-Storage&&~@skipOnOcis' \
EXPECTED_FAILURES_FILE=../reva/tests/acceptance/expected-failures-on-OCIS-storage.md \
make test-acceptance-from-core-api
```
diff --git a/RELEASE_DATE b/RELEASE_DATE
index 5b8965fbbd..b4cc75e771 100644
--- a/RELEASE_DATE
+++ b/RELEASE_DATE
@@ -1 +1 @@
-2023-03-09
\ No newline at end of file
+2023-05-11
\ No newline at end of file
diff --git a/VERSION b/VERSION
index bfbadb3a2a..d437046834 100644
--- a/VERSION
+++ b/VERSION
@@ -1 +1 @@
-1.23.0
\ No newline at end of file
+1.24.0
\ No newline at end of file
diff --git a/changelog/unreleased/apps-viewmode.md b/changelog/1.24.0_2023-05-11/apps-viewmode.md
similarity index 100%
rename from changelog/unreleased/apps-viewmode.md
rename to changelog/1.24.0_2023-05-11/apps-viewmode.md
diff --git a/changelog/unreleased/datatx-new-ocm-impl.md b/changelog/1.24.0_2023-05-11/datatx-new-ocm-impl.md
similarity index 100%
rename from changelog/unreleased/datatx-new-ocm-impl.md
rename to changelog/1.24.0_2023-05-11/datatx-new-ocm-impl.md
diff --git a/changelog/1.24.0_2023-05-11/datatx-tutorial.md b/changelog/1.24.0_2023-05-11/datatx-tutorial.md
new file mode 100644
index 0000000000..556d6a3e91
--- /dev/null
+++ b/changelog/1.24.0_2023-05-11/datatx-tutorial.md
@@ -0,0 +1,4 @@
+Enhancement: Datatx tutorial
+
+https://github.com/cs3org/reva/pull/3869
+https://github.com/cs3org/reva/issues/3864
\ No newline at end of file
diff --git a/changelog/unreleased/deny-default-reshare-capabilities copy.md b/changelog/1.24.0_2023-05-11/deny-default-reshare-capabilities copy.md
similarity index 100%
rename from changelog/unreleased/deny-default-reshare-capabilities copy.md
rename to changelog/1.24.0_2023-05-11/deny-default-reshare-capabilities copy.md
diff --git a/changelog/unreleased/deny-default-reshare-capabilities.md b/changelog/1.24.0_2023-05-11/deny-default-reshare-capabilities.md
similarity index 100%
rename from changelog/unreleased/deny-default-reshare-capabilities.md
rename to changelog/1.24.0_2023-05-11/deny-default-reshare-capabilities.md
diff --git a/changelog/unreleased/disable-shares-low-level-paths.md b/changelog/1.24.0_2023-05-11/disable-shares-low-level-paths.md
similarity index 100%
rename from changelog/unreleased/disable-shares-low-level-paths.md
rename to changelog/1.24.0_2023-05-11/disable-shares-low-level-paths.md
diff --git a/changelog/unreleased/download-file-revisions.md b/changelog/1.24.0_2023-05-11/download-file-revisions.md
similarity index 100%
rename from changelog/unreleased/download-file-revisions.md
rename to changelog/1.24.0_2023-05-11/download-file-revisions.md
diff --git a/changelog/unreleased/enhancement-static.md b/changelog/1.24.0_2023-05-11/enhancement-static.md
similarity index 100%
rename from changelog/unreleased/enhancement-static.md
rename to changelog/1.24.0_2023-05-11/enhancement-static.md
diff --git a/changelog/unreleased/eosbinary-tag.md b/changelog/1.24.0_2023-05-11/eosbinary-tag.md
similarity index 100%
rename from changelog/unreleased/eosbinary-tag.md
rename to changelog/1.24.0_2023-05-11/eosbinary-tag.md
diff --git a/changelog/1.24.0_2023-05-11/expose-historical-ocm-webdav.md b/changelog/1.24.0_2023-05-11/expose-historical-ocm-webdav.md
new file mode 100644
index 0000000000..55b47ce051
--- /dev/null
+++ b/changelog/1.24.0_2023-05-11/expose-historical-ocm-webdav.md
@@ -0,0 +1,8 @@
+Enhancement: Implement historical way of constructing OCM WebDAV URL
+
+Expose the expected WebDAV endpoint for OCM by OC10 and Nextcloud as described
+in https://github.com/cs3org/OCM-API/issues/70#issuecomment-1538551138 to allow
+reva providers to participate to mesh.
+
+https://github.com/cs3org/reva/pull/3868
+https://github.com/cs3org/reva/issues/3855
\ No newline at end of file
diff --git a/changelog/unreleased/filter-computing-groups-grappa.md b/changelog/1.24.0_2023-05-11/filter-computing-groups-grappa.md
similarity index 100%
rename from changelog/unreleased/filter-computing-groups-grappa.md
rename to changelog/1.24.0_2023-05-11/filter-computing-groups-grappa.md
diff --git a/changelog/unreleased/fix-3747.md b/changelog/1.24.0_2023-05-11/fix-3747.md
similarity index 100%
rename from changelog/unreleased/fix-3747.md
rename to changelog/1.24.0_2023-05-11/fix-3747.md
diff --git a/changelog/unreleased/fix-cgo.md b/changelog/1.24.0_2023-05-11/fix-cgo.md
similarity index 100%
rename from changelog/unreleased/fix-cgo.md
rename to changelog/1.24.0_2023-05-11/fix-cgo.md
diff --git a/changelog/unreleased/fix-create-version-folder-eos.md b/changelog/1.24.0_2023-05-11/fix-create-version-folder-eos.md
similarity index 100%
rename from changelog/unreleased/fix-create-version-folder-eos.md
rename to changelog/1.24.0_2023-05-11/fix-create-version-folder-eos.md
diff --git a/changelog/unreleased/fix-create-version-folder-on-list-eos.md b/changelog/1.24.0_2023-05-11/fix-create-version-folder-on-list-eos.md
similarity index 100%
rename from changelog/unreleased/fix-create-version-folder-on-list-eos.md
rename to changelog/1.24.0_2023-05-11/fix-create-version-folder-on-list-eos.md
diff --git a/changelog/unreleased/fix-eosbinary-app.md b/changelog/1.24.0_2023-05-11/fix-eosbinary-app.md
similarity index 100%
rename from changelog/unreleased/fix-eosbinary-app.md
rename to changelog/1.24.0_2023-05-11/fix-eosbinary-app.md
diff --git a/changelog/unreleased/fix-makefile.md b/changelog/1.24.0_2023-05-11/fix-makefile.md
similarity index 100%
rename from changelog/unreleased/fix-makefile.md
rename to changelog/1.24.0_2023-05-11/fix-makefile.md
diff --git a/changelog/1.24.0_2023-05-11/fix-parsing-grappa-response.md b/changelog/1.24.0_2023-05-11/fix-parsing-grappa-response.md
new file mode 100644
index 0000000000..fda81c3d94
--- /dev/null
+++ b/changelog/1.24.0_2023-05-11/fix-parsing-grappa-response.md
@@ -0,0 +1,3 @@
+Bugfix: Fix parsing of grappa response
+
+https://github.com/cs3org/reva/pull/3873
\ No newline at end of file
diff --git a/changelog/unreleased/fix-unshare-eos.md b/changelog/1.24.0_2023-05-11/fix-unshare-eos.md
similarity index 100%
rename from changelog/unreleased/fix-unshare-eos.md
rename to changelog/1.24.0_2023-05-11/fix-unshare-eos.md
diff --git a/changelog/unreleased/fix-upload-lw-accounts-single-file-share.md b/changelog/1.24.0_2023-05-11/fix-upload-lw-accounts-single-file-share.md
similarity index 100%
rename from changelog/unreleased/fix-upload-lw-accounts-single-file-share.md
rename to changelog/1.24.0_2023-05-11/fix-upload-lw-accounts-single-file-share.md
diff --git a/changelog/1.24.0_2023-05-11/fix-users-shares.md b/changelog/1.24.0_2023-05-11/fix-users-shares.md
new file mode 100644
index 0000000000..1fb75738a7
--- /dev/null
+++ b/changelog/1.24.0_2023-05-11/fix-users-shares.md
@@ -0,0 +1,3 @@
+Bugfix: Fix creator/initiator in public and user shares
+
+https://github.com/cs3org/reva/pull/3878
\ No newline at end of file
diff --git a/changelog/unreleased/improve-ocm-tutorial.md b/changelog/1.24.0_2023-05-11/improve-ocm-tutorial.md
similarity index 100%
rename from changelog/unreleased/improve-ocm-tutorial.md
rename to changelog/1.24.0_2023-05-11/improve-ocm-tutorial.md
diff --git a/changelog/unreleased/mentix-prodflags.md b/changelog/1.24.0_2023-05-11/mentix-prodflags.md
similarity index 100%
rename from changelog/unreleased/mentix-prodflags.md
rename to changelog/1.24.0_2023-05-11/mentix-prodflags.md
diff --git a/changelog/unreleased/multiple-issuers-oidc.md b/changelog/1.24.0_2023-05-11/multiple-issuers-oidc.md
similarity index 100%
rename from changelog/unreleased/multiple-issuers-oidc.md
rename to changelog/1.24.0_2023-05-11/multiple-issuers-oidc.md
diff --git a/changelog/1.24.0_2023-05-11/ocm-discovery.md b/changelog/1.24.0_2023-05-11/ocm-discovery.md
new file mode 100644
index 0000000000..7fc0da8a4f
--- /dev/null
+++ b/changelog/1.24.0_2023-05-11/ocm-discovery.md
@@ -0,0 +1,6 @@
+Enhancement: new OCM discovery endpoint
+
+This PR implements the new OCM v1.1 specifications
+for the /ocm-provider endpoint.
+
+https://github.com/cs3org/reva/pull/3772
diff --git a/changelog/unreleased/ocm-invite-sql-tests.md b/changelog/1.24.0_2023-05-11/ocm-invite-sql-tests.md
similarity index 100%
rename from changelog/unreleased/ocm-invite-sql-tests.md
rename to changelog/1.24.0_2023-05-11/ocm-invite-sql-tests.md
diff --git a/changelog/unreleased/ocm-propfind.md b/changelog/1.24.0_2023-05-11/ocm-propfind.md
similarity index 100%
rename from changelog/unreleased/ocm-propfind.md
rename to changelog/1.24.0_2023-05-11/ocm-propfind.md
diff --git a/changelog/unreleased/ocm-reconcile.md b/changelog/1.24.0_2023-05-11/ocm-reconcile.md
similarity index 100%
rename from changelog/unreleased/ocm-reconcile.md
rename to changelog/1.24.0_2023-05-11/ocm-reconcile.md
diff --git a/changelog/unreleased/ocm-share-create-sm.md b/changelog/1.24.0_2023-05-11/ocm-share-create-sm.md
similarity index 100%
rename from changelog/unreleased/ocm-share-create-sm.md
rename to changelog/1.24.0_2023-05-11/ocm-share-create-sm.md
diff --git a/changelog/unreleased/ocm-share-create-webdav.md b/changelog/1.24.0_2023-05-11/ocm-share-create-webdav.md
similarity index 100%
rename from changelog/unreleased/ocm-share-create-webdav.md
rename to changelog/1.24.0_2023-05-11/ocm-share-create-webdav.md
diff --git a/changelog/unreleased/ocm-shares.md b/changelog/1.24.0_2023-05-11/ocm-shares.md
similarity index 100%
rename from changelog/unreleased/ocm-shares.md
rename to changelog/1.24.0_2023-05-11/ocm-shares.md
diff --git a/changelog/1.24.0_2023-05-11/remote-share-id.md b/changelog/1.24.0_2023-05-11/remote-share-id.md
new file mode 100644
index 0000000000..083bd7065a
--- /dev/null
+++ b/changelog/1.24.0_2023-05-11/remote-share-id.md
@@ -0,0 +1,3 @@
+Bugfix: Pass remote share id and shared secret in OCM call
+
+https://github.com/cs3org/reva/pull/3852
diff --git a/changelog/1.24.0_2023-05-11/rename-transfer-to-datatx.md b/changelog/1.24.0_2023-05-11/rename-transfer-to-datatx.md
new file mode 100644
index 0000000000..b0256ac73e
--- /dev/null
+++ b/changelog/1.24.0_2023-05-11/rename-transfer-to-datatx.md
@@ -0,0 +1,4 @@
+Bugfix: Fix inconsistency between data transfer protocol naming
+
+https://github.com/cs3org/reva/pull/3859
+https://github.com/cs3org/reva/issues/3858
\ No newline at end of file
diff --git a/changelog/unreleased/revamp-rest-used-group-drivers.md b/changelog/1.24.0_2023-05-11/revamp-rest-used-group-drivers.md
similarity index 100%
rename from changelog/unreleased/revamp-rest-used-group-drivers.md
rename to changelog/1.24.0_2023-05-11/revamp-rest-used-group-drivers.md
diff --git a/changelog/unreleased/send-invite-link-ocm.md b/changelog/1.24.0_2023-05-11/send-invite-link-ocm.md
similarity index 100%
rename from changelog/unreleased/send-invite-link-ocm.md
rename to changelog/1.24.0_2023-05-11/send-invite-link-ocm.md
diff --git a/changelog/unreleased/serverless-services.md b/changelog/1.24.0_2023-05-11/serverless-services.md
similarity index 100%
rename from changelog/unreleased/serverless-services.md
rename to changelog/1.24.0_2023-05-11/serverless-services.md
diff --git a/changelog/NOTE.md b/changelog/NOTE.md
index 9ea0f6d9e0..fdcb9ca96e 100644
--- a/changelog/NOTE.md
+++ b/changelog/NOTE.md
@@ -1,205 +1,278 @@
-Changelog for reva 1.23.0 (2023-03-09)
+Changelog for reva 1.24.0 (2023-05-11)
=======================================
-The following sections list the changes in reva 1.23.0 relevant to
+The following sections list the changes in reva 1.24.0 relevant to
reva users. The changes are ordered by importance.
Summary
-------
- * Fix #3621: Use 2700 as permission when creating EOS home folder
- * Fix #3551: Fixes implementation omission of #3526
- * Fix #3706: Fix revad-eos docker image which was failing to build
- * Fix #3626: Fix open in app for lightweight accounts
- * Fix #3613: Use subject from oidc userinfo when quering the user provider
- * Fix #3633: Fix litmus and acceptance tests in GitHub Actions
- * Fix #3694: Updated public links URLs and users' display names in WOPI apps
- * Chg #3553: Rename PullTransfer to CreateTransfer
- * Enh #3584: Bump the Copyright date to 2023
- * Enh #3640: Migrate acceptance tests from Drone to GitHub Actions
- * Enh #3629: Use cs3org/behat:latest docker image for tests
- * Enh #3608: Add Golang test coverage report for Codacy
- * Enh #3599: Add latest tag to revad Docker image with GitHub Actions
- * Enh #3713: Streamline EOS SSS and UNIX modes
- * Enh #3566: Migrate the litmusOcisSpacesDav test from Drone to GitHub Actions
- * Enh #3712: Improve Docker build speed and Docker Compose test speed
- * Enh #3630: Migrate the virtualViews test from Drone to GitHub Actions
- * Enh #3675: Cleanup unused configs in OCM HTTP service
- * Enh #3692: Create and list OCM shares in OCS layer
- * Enh #3666: Search OCM accepted users
- * Enh #3665: List valid OCM invite tokens
- * Enh #3617: SQL driver for OCM invitation manager
- * Enh #3667: List OCM providers
- * Enh #3668: Expose OCM received shares as a local mount
- * Enh #3683: Remote open in app in OCM
- * Enh #3654: SQL driver for OCM shares
- * Enh #3646: Update OCM shares to last version of CS3APIs
- * Enh #3687: Specify recipient as a query param when sending OCM token by email
- * Enh #3691: Add OCM scope and webdav endpoint
- * Enh #3611: Revamp OCM invitation workflow
- * Enh #3703: Bump reva(d) base image to alpine 3.17
+ * Fix #3805: Apps: fixed viewMode resolution
+ * Fix #3771: Fix files sharing capabilities
+ * Fix #3749: Fix persisting updates of received shares in json driver
+ * Fix #3723: Fix revad docker images by enabling CGO
+ * Fix #3765: Fix create version folder in EOS driver
+ * Fix #3786: Fix listing directory for a read-only shares for EOS storage driver
+ * Fix #3787: Fix application flag for EOS binary
+ * Fix #3780: Fix Makefile error on Ubuntu
+ * Fix #3873: Fix parsing of grappa response
+ * Fix #3794: Fix unshare for EOS storage driver
+ * Fix #3838: Fix upload in a single file share for lightweight accounts
+ * Fix #3878: Fix creator/initiator in public and user shares
+ * Fix #3813: Fix propfind URL for OCM shares
+ * Fix #3770: Fixed default protocol on ocm-share-create
+ * Fix #3852: Pass remote share id and shared secret in OCM call
+ * Fix #3859: Fix inconsistency between data transfer protocol naming
+ * Enh #3847: Update data transfers for current OCM shares implementation
+ * Enh #3869: Datatx tutorial
+ * Enh #3762: Denial and Resharing Default capabilities
+ * Enh #3717: Disable sharing on low level paths
+ * Enh #3766: Download file revisions
+ * Enh #3733: Add support for static linking
+ * Enh #3778: Add support to tag eos traffic
+ * Enh #3868: Implement historical way of constructing OCM WebDAV URL
+ * Enh #3719: Skip computing groups when fetching all groups from grappa
+ * Enh #3783: Updated OCM tutorial
+ * Enh #3750: New metadata flags
+ * Enh #3839: Support multiple issuer in OIDC auth driver
+ * Enh #3772: New OCM discovery endpoint
+ * Enh #3619: Tests for invitation manager SQL driver
+ * Enh #3757: Support OCM v1.0 schema
+ * Enh #3695: Create OCM share from sciencemesh service
+ * Enh #3722: List only valid OCM tokens
+ * Enh #3821: Revamp user/group drivers and fix user type
+ * Enh #3724: Send invitation link from mesh directory
+ * Enh #3824: Serverless Services
Details
-------
- * Bugfix #3621: Use 2700 as permission when creating EOS home folder
+ * Bugfix #3805: Apps: fixed viewMode resolution
- https://github.com/cs3org/reva/pull/3621
+ Currently, the viewMode passed on /app/open is taken without validating the actual user's
+ permissions. This PR fixes this.
- * Bugfix #3551: Fixes implementation omission of #3526
+ https://github.com/cs3org/reva/pull/3805
- In #3526 a new value format of the owner parameter of the ocm share request was introduced. This
- change was not implemented in the json driver. This change fixes that.
+ * Bugfix #3771: Fix files sharing capabilities
- https://github.com/cs3org/reva/pull/3551
+ A bug was preventing setting some capabilities (ResharingDefault and DenyAccess) for files
+ sharing from the configuration file
- * Bugfix #3706: Fix revad-eos docker image which was failing to build
+ https://github.com/cs3org/reva/pull/3771
- https://github.com/cs3org/reva/pull/3706
+ * Bugfix #3749: Fix persisting updates of received shares in json driver
- * Bugfix #3626: Fix open in app for lightweight accounts
+ https://github.com/cs3org/reva/pull/3749
- https://github.com/cs3org/reva/pull/3626
+ * Bugfix #3723: Fix revad docker images by enabling CGO
- * Bugfix #3613: Use subject from oidc userinfo when quering the user provider
+ https://github.com/cs3org/reva/pull/3723
- https://github.com/cs3org/reva/pull/3613
+ * Bugfix #3765: Fix create version folder in EOS driver
- * Bugfix #3633: Fix litmus and acceptance tests in GitHub Actions
+ In a read only share, a stat could fail, beacause the EOS storage driver was not able to create the
+ version folder for a file in case this did not exist. This fixes this bug impersonating the owner
+ of the file when creating the version folder.
- https://github.com/cs3org/reva/pull/3633
+ https://github.com/cs3org/reva/pull/3765
- * Bugfix #3694: Updated public links URLs and users' display names in WOPI apps
+ * Bugfix #3786: Fix listing directory for a read-only shares for EOS storage driver
- Public links have changed in the frontend and are reflected in folderurl query parameter.
- Additionally, OCM shares are supported for the folderurl and OCM users are decorated with
- their ID provider.
+ In a read-only share, while listing a folder, for resources not having a version folder, the
+ returned resource id was wrongly the one of the original file, instead of the version folder.
+ This behavior has been fixed, where the version folder is always created on behalf of the
+ resource owner.
- https://github.com/cs3org/reva/pull/3694
+ https://github.com/cs3org/reva/pull/3786
- * Change #3553: Rename PullTransfer to CreateTransfer
+ * Bugfix #3787: Fix application flag for EOS binary
- This change implements a CS3APIs name change in the datatx module (PullTransfer to
- CreateTransfer)
+ https://github.com/cs3org/reva/pull/3787
- https://github.com/cs3org/reva/pull/3553
+ * Bugfix #3780: Fix Makefile error on Ubuntu
- * Enhancement #3584: Bump the Copyright date to 2023
+ I've fixed Makefile using sh which is defaulted to dash in ubuntu, dash doesn't support `[[ ...
+ ]]` syntax and Makefile would throw `/bin/sh: 1: [[: not found` errors.
- https://github.com/cs3org/reva/pull/3584
+ https://github.com/cs3org/reva/issues/3773
+ https://github.com/cs3org/reva/pull/3780
- * Enhancement #3640: Migrate acceptance tests from Drone to GitHub Actions
+ * Bugfix #3873: Fix parsing of grappa response
- Migrate ocisIntegrationTests and s3ngIntegrationTests to GitHub Actions
+ https://github.com/cs3org/reva/pull/3873
- https://github.com/cs3org/reva/pull/3640
+ * Bugfix #3794: Fix unshare for EOS storage driver
- * Enhancement #3629: Use cs3org/behat:latest docker image for tests
+ In the EOS storage driver, the remove acl operation was a no-op. After removing a share, the
+ recipient of the share was still able to operate on the shared resource. Now this has been fixed,
+ removing correctly the ACL from the shared resource.
- https://github.com/cs3org/reva/pull/3629
+ https://github.com/cs3org/reva/pull/3794
- * Enhancement #3608: Add Golang test coverage report for Codacy
+ * Bugfix #3838: Fix upload in a single file share for lightweight accounts
- https://github.com/cs3org/reva/pull/3608
+ https://github.com/cs3org/reva/pull/3838
- * Enhancement #3599: Add latest tag to revad Docker image with GitHub Actions
+ * Bugfix #3878: Fix creator/initiator in public and user shares
- https://github.com/cs3org/reva/pull/3599
+ https://github.com/cs3org/reva/pull/3878
- * Enhancement #3713: Streamline EOS SSS and UNIX modes
+ * Bugfix #3813: Fix propfind URL for OCM shares
- https://github.com/cs3org/reva/pull/3713
+ https://github.com/cs3org/reva/issues/3810
+ https://github.com/cs3org/reva/pull/3813
- * Enhancement #3566: Migrate the litmusOcisSpacesDav test from Drone to GitHub Actions
+ * Bugfix #3770: Fixed default protocol on ocm-share-create
- https://github.com/cs3org/reva/pull/3566
+ https://github.com/cs3org/reva/pull/3770
- * Enhancement #3712: Improve Docker build speed and Docker Compose test speed
+ * Bugfix #3852: Pass remote share id and shared secret in OCM call
- https://github.com/cs3org/reva/pull/3712
+ https://github.com/cs3org/reva/pull/3852
- * Enhancement #3630: Migrate the virtualViews test from Drone to GitHub Actions
+ * Bugfix #3859: Fix inconsistency between data transfer protocol naming
- https://github.com/cs3org/reva/pull/3630
+ https://github.com/cs3org/reva/issues/3858
+ https://github.com/cs3org/reva/pull/3859
- * Enhancement #3675: Cleanup unused configs in OCM HTTP service
+ * Enhancement #3847: Update data transfers for current OCM shares implementation
- https://github.com/cs3org/reva/pull/3675
+ https://github.com/cs3org/reva/issues/3846
+ https://github.com/cs3org/reva/pull/3847
- * Enhancement #3692: Create and list OCM shares in OCS layer
+ * Enhancement #3869: Datatx tutorial
- https://github.com/cs3org/reva/pull/3692
+ https://github.com/cs3org/reva/issues/3864
+ https://github.com/cs3org/reva/pull/3869
- * Enhancement #3666: Search OCM accepted users
+ * Enhancement #3762: Denial and Resharing Default capabilities
- Adds the prefix `sm:` to the FindUser endpoint, to filter only the OCM accepted users.
+ https://github.com/cs3org/reva/pull/3762
- https://github.com/cs3org/reva/pull/3666
+ * Enhancement #3717: Disable sharing on low level paths
- * Enhancement #3665: List valid OCM invite tokens
+ Sharing can be disable in the user share provider for some paths, but the storage provider was
+ still sending the sharing permissions for those paths. This adds a config option in the storage
+ provider, `minimum_allowed_path_level_for_share`, to disable sharing permissions for
+ resources up to a defined path level.
- Adds the endpoint `/list-invite` in the sciencemesh service, to get the list of valid OCM
- invite tokens.
+ https://github.com/cs3org/reva/pull/3717
- https://github.com/cs3org/reva/pull/3665
- https://github.com/cs3org/cs3apis/pull/201
+ * Enhancement #3766: Download file revisions
- * Enhancement #3617: SQL driver for OCM invitation manager
+ Currently it is only possible to restore a file version, replacing the actual file with the
+ selected version. This allows an user to download a version file, without touching/replacing
+ the last version of the file
- https://github.com/cs3org/reva/pull/3617
+ https://github.com/cs3org/reva/pull/3766
- * Enhancement #3667: List OCM providers
+ * Enhancement #3733: Add support for static linking
- Adds the endpoint `/list-providers` in the sciencemesh service, to get a filtered list of the
- OCM providers. The filter can be specified with the `search` query parameters, and filters by
- domain and full name of the provider.
+ We've added support for compiling reva with static linking enabled. It's possible to do so with
+ the `STATIC` flag: `make revad STATIC=true`
- https://github.com/cs3org/reva/pull/3667
+ https://github.com/cs3org/reva/pull/3733
- * Enhancement #3668: Expose OCM received shares as a local mount
+ * Enhancement #3778: Add support to tag eos traffic
- https://github.com/cs3org/reva/pull/3668
+ We've added support to tag eos traffic
- * Enhancement #3683: Remote open in app in OCM
+ https://github.com/cs3org/reva/pull/3778
- https://github.com/cs3org/reva/pull/3683
+ * Enhancement #3868: Implement historical way of constructing OCM WebDAV URL
- * Enhancement #3654: SQL driver for OCM shares
+ Expose the expected WebDAV endpoint for OCM by OC10 and Nextcloud as described in
+ https://github.com/cs3org/OCM-API/issues/70#issuecomment-1538551138 to allow reva
+ providers to participate to mesh.
- https://github.com/cs3org/reva/pull/3654
+ https://github.com/cs3org/reva/issues/3855
+ https://github.com/cs3org/reva/pull/3868
- * Enhancement #3646: Update OCM shares to last version of CS3APIs
+ * Enhancement #3719: Skip computing groups when fetching all groups from grappa
- https://github.com/cs3org/reva/pull/3646
- https://github.com/cs3org/cs3apis/pull/199
+ https://github.com/cs3org/reva/pull/3719
- * Enhancement #3687: Specify recipient as a query param when sending OCM token by email
+ * Enhancement #3783: Updated OCM tutorial
- Before the email recipient when sending the OCM token was specified as a form parameter. Now as a
- query parameter, as some clients does not allow in a GET request to set form values. It also add
- the possibility to specify a template for the subject and the body for the token email.
+ The OCM tutorial in the doc was missing the example on how to access the received resources. Now
+ the tutorial contains all the steps to access a received resource using the WebDAV protocol.
- https://github.com/cs3org/reva/pull/3687
+ https://github.com/cs3org/reva/pull/3783
- * Enhancement #3691: Add OCM scope and webdav endpoint
+ * Enhancement #3750: New metadata flags
- Adds the OCM scope and the ocmshares authentication, to authenticate the federated user to use
- the OCM shared resources. It also adds the (unprotected) webdav endpoint used to interact with
- the shared resources.
+ Several new flags, like site infrastructure and service status, are now gathered and exposed
+ by Mentix.
- https://github.com/cs3org/reva/issues/2739
- https://github.com/cs3org/reva/pull/3691
+ https://github.com/cs3org/reva/pull/3750
- * Enhancement #3611: Revamp OCM invitation workflow
+ * Enhancement #3839: Support multiple issuer in OIDC auth driver
- https://github.com/cs3org/reva/issues/3540
- https://github.com/cs3org/reva/pull/3611
+ The OIDC auth driver supports now multiple issuers. Users of external providers are then
+ mapped to a local user by a mapping files. Only the main issuer (defined in the config with
+ `issuer`) and the ones defined in the mapping are allowed for the verification of the OIDC
+ token.
- * Enhancement #3703: Bump reva(d) base image to alpine 3.17
+ https://github.com/cs3org/reva/pull/3839
- Prevents several vulnerabilities from the base image itself:
- https://artifacthub.io/packages/helm/cs3org/revad?modal=security-report
+ * Enhancement #3772: New OCM discovery endpoint
- https://github.com/cs3org/reva/pull/3703
+ This PR implements the new OCM v1.1 specifications for the /ocm-provider endpoint.
+
+ https://github.com/cs3org/reva/pull/3772
+
+ * Enhancement #3619: Tests for invitation manager SQL driver
+
+ https://github.com/cs3org/reva/pull/3619
+
+ * Enhancement #3757: Support OCM v1.0 schema
+
+ Following cs3org/cs3apis#206, we add the fields to ensure backwards compatibility with OCM
+ v1.0. However, if the `protocol.options` undocumented object is not empty, we bail out for
+ now. Supporting interoperability with OCM v1.0 implementations (notably Nextcloud 25) may
+ come in the future if the undocumented options are fully reverse engineered. This is reflected
+ in the unit tests as well.
+
+ Also, added viewMode to webapp protocol options (cs3org/cs3apis#207) and adapted all SQL
+ code and unit tests.
+
+ https://github.com/cs3org/reva/pull/3757
+
+ * Enhancement #3695: Create OCM share from sciencemesh service
+
+ https://github.com/pondersource/sciencemesh-php/issues/166
+ https://github.com/cs3org/reva/pull/3695
+
+ * Enhancement #3722: List only valid OCM tokens
+
+ https://github.com/cs3org/reva/pull/3722
+
+ * Enhancement #3821: Revamp user/group drivers and fix user type
+
+ For lightweight accounts
+
+ * Fix the user type for lightweight accounts, using the source field to differentiate between a
+ primary and lw account * Remove all the code with manual parsing of the json returned by the CERN
+ provider * Introduce pagination for `GetMembers` method in the group driver * Reduced network
+ transfer size by requesting only needed fields for `GetMembers` method
+
+ https://github.com/cs3org/reva/pull/3821
+
+ * Enhancement #3724: Send invitation link from mesh directory
+
+ When generating and listing OCM tokens
+
+ To enhance user expirience, instead of only sending the token, we send directly the URL for
+ accepting the invitation workflow.
+
+ https://github.com/cs3org/reva/pull/3724
+
+ * Enhancement #3824: Serverless Services
+
+ New type of service (along with http and grpc) which does not have a listening server. Useful for
+ the notifications service and others in the future.
+
+ https://github.com/cs3org/reva/pull/3824
diff --git a/changelog/unreleased/fix-group-get.md b/changelog/unreleased/fix-group-get.md
new file mode 100644
index 0000000000..ee002a21ef
--- /dev/null
+++ b/changelog/unreleased/fix-group-get.md
@@ -0,0 +1,6 @@
+Bugfix: Fix group request to Grappa
+
+The `url.JoinPath` call was returning an url-encoded string, turning `?` into
+`%3`. This caused the request to return 404.
+
+https://github.com/cs3org/reva/pull/3883
diff --git a/cmd/reva/ocm-share-create.go b/cmd/reva/ocm-share-create.go
index b9861823fc..b151156a4b 100644
--- a/cmd/reva/ocm-share-create.go
+++ b/cmd/reva/ocm-share-create.go
@@ -48,12 +48,12 @@ func ocmShareCreateCommand() *command {
webdav := cmd.Bool("webdav", false, "create a share with webdav access")
webapp := cmd.Bool("webapp", false, "create a share for app access")
- transfer := cmd.Bool("transfer", false, "create a share for a data transfer")
+ datatx := cmd.Bool("datatx", false, "create a share for a data transfer")
rol := cmd.String("rol", "viewer", "the permission for the share (viewer or editor) / applies to webdav and webapp")
cmd.ResetFlags = func() {
- *grantType, *grantee, *idp, *rol, *userType, *webdav, *webapp, *transfer = "user", "", "", "viewer", "primary", false, false, false
+ *grantType, *grantee, *idp, *rol, *userType, *webdav, *webapp, *datatx = "user", "", "", "viewer", "primary", false, false, false
}
cmd.Action = func(w ...io.Writer) error {
@@ -70,7 +70,7 @@ func ocmShareCreateCommand() *command {
return errors.New("IdP cannot be empty: use -idp flag\n" + cmd.Usage())
}
- if !*webdav && !*webapp && !*transfer {
+ if !*webdav && !*webapp && !*datatx {
*webdav = true
}
@@ -111,7 +111,7 @@ func ocmShareCreateCommand() *command {
}
gt := getGrantType(*grantType)
- am, err := getAccessMethods(*webdav, *webapp, *transfer, *rol)
+ am, err := getAccessMethods(*webdav, *webapp, *datatx, *rol)
if err != nil {
return err
}
@@ -155,7 +155,7 @@ func ocmShareCreateCommand() *command {
return cmd
}
-func getAccessMethods(webdav, webapp, transfer bool, rol string) ([]*ocm.AccessMethod, error) {
+func getAccessMethods(webdav, webapp, datatx bool, rol string) ([]*ocm.AccessMethod, error) {
var m []*ocm.AccessMethod
if webdav {
perm, err := getOCMSharePerm(rol)
@@ -171,7 +171,7 @@ func getAccessMethods(webdav, webapp, transfer bool, rol string) ([]*ocm.AccessM
}
m = append(m, ocmshare.NewWebappAccessMethod(v))
}
- if transfer {
+ if datatx {
m = append(m, ocmshare.NewTransferAccessMethod())
}
return m, nil
diff --git a/cmd/reva/ocm-share-list-received.go b/cmd/reva/ocm-share-list-received.go
index 11d34e6837..f6e9971c26 100644
--- a/cmd/reva/ocm-share-list-received.go
+++ b/cmd/reva/ocm-share-list-received.go
@@ -54,11 +54,11 @@ func ocmShareListReceivedCommand() *command {
if len(w) == 0 {
t := table.NewWriter()
t.SetOutputMirror(os.Stdout)
- t.AppendHeader(table.Row{"#", "Owner.Idp", "Owner.OpaqueId", "ResourceId", "Type",
+ t.AppendHeader(table.Row{"#", "Owner.Idp", "Owner.OpaqueId", "RemoteShareId", "Type",
"Grantee.Idp", "Grantee.OpaqueId", "Created", "Updated", "State", "ShareType"})
for _, s := range shareRes.Shares {
t.AppendRows([]table.Row{
- {s.Id.OpaqueId, s.Owner.Idp, s.Owner.OpaqueId, s.ResourceId.String(),
+ {s.Id.OpaqueId, s.Owner.Idp, s.Owner.OpaqueId, s.RemoteShareId,
s.Grantee.Type.String(), s.Grantee.GetUserId().Idp,
s.Grantee.GetUserId().OpaqueId, time.Unix(int64(s.Ctime.Seconds), 0),
time.Unix(int64(s.Mtime.Seconds), 0), s.State.String(), s.ShareType.String()},
diff --git a/docs/content/en/docs/changelog/1.24.0/_index.md b/docs/content/en/docs/changelog/1.24.0/_index.md
new file mode 100644
index 0000000000..eecac4c88a
--- /dev/null
+++ b/docs/content/en/docs/changelog/1.24.0/_index.md
@@ -0,0 +1,287 @@
+
+---
+title: "v1.24.0"
+linkTitle: "v1.24.0"
+weight: 40
+description: >
+ Changelog for Reva v1.24.0 (2023-05-11)
+---
+
+Changelog for reva 1.24.0 (2023-05-11)
+=======================================
+
+The following sections list the changes in reva 1.24.0 relevant to
+reva users. The changes are ordered by importance.
+
+Summary
+-------
+
+ * Fix #3805: Apps: fixed viewMode resolution
+ * Fix #3771: Fix files sharing capabilities
+ * Fix #3749: Fix persisting updates of received shares in json driver
+ * Fix #3723: Fix revad docker images by enabling CGO
+ * Fix #3765: Fix create version folder in EOS driver
+ * Fix #3786: Fix listing directory for a read-only shares for EOS storage driver
+ * Fix #3787: Fix application flag for EOS binary
+ * Fix #3780: Fix Makefile error on Ubuntu
+ * Fix #3873: Fix parsing of grappa response
+ * Fix #3794: Fix unshare for EOS storage driver
+ * Fix #3838: Fix upload in a single file share for lightweight accounts
+ * Fix #3878: Fix creator/initiator in public and user shares
+ * Fix #3813: Fix propfind URL for OCM shares
+ * Fix #3770: Fixed default protocol on ocm-share-create
+ * Fix #3852: Pass remote share id and shared secret in OCM call
+ * Fix #3859: Fix inconsistency between data transfer protocol naming
+ * Enh #3847: Update data transfers for current OCM shares implementation
+ * Enh #3869: Datatx tutorial
+ * Enh #3762: Denial and Resharing Default capabilities
+ * Enh #3717: Disable sharing on low level paths
+ * Enh #3766: Download file revisions
+ * Enh #3733: Add support for static linking
+ * Enh #3778: Add support to tag eos traffic
+ * Enh #3868: Implement historical way of constructing OCM WebDAV URL
+ * Enh #3719: Skip computing groups when fetching all groups from grappa
+ * Enh #3783: Updated OCM tutorial
+ * Enh #3750: New metadata flags
+ * Enh #3839: Support multiple issuer in OIDC auth driver
+ * Enh #3772: New OCM discovery endpoint
+ * Enh #3619: Tests for invitation manager SQL driver
+ * Enh #3757: Support OCM v1.0 schema
+ * Enh #3695: Create OCM share from sciencemesh service
+ * Enh #3722: List only valid OCM tokens
+ * Enh #3821: Revamp user/group drivers and fix user type
+ * Enh #3724: Send invitation link from mesh directory
+ * Enh #3824: Serverless Services
+
+Details
+-------
+
+ * Bugfix #3805: Apps: fixed viewMode resolution
+
+ Currently, the viewMode passed on /app/open is taken without validating the actual user's
+ permissions. This PR fixes this.
+
+ https://github.com/cs3org/reva/pull/3805
+
+ * Bugfix #3771: Fix files sharing capabilities
+
+ A bug was preventing setting some capabilities (ResharingDefault and DenyAccess) for files
+ sharing from the configuration file
+
+ https://github.com/cs3org/reva/pull/3771
+
+ * Bugfix #3749: Fix persisting updates of received shares in json driver
+
+ https://github.com/cs3org/reva/pull/3749
+
+ * Bugfix #3723: Fix revad docker images by enabling CGO
+
+ https://github.com/cs3org/reva/pull/3723
+
+ * Bugfix #3765: Fix create version folder in EOS driver
+
+ In a read only share, a stat could fail, beacause the EOS storage driver was not able to create the
+ version folder for a file in case this did not exist. This fixes this bug impersonating the owner
+ of the file when creating the version folder.
+
+ https://github.com/cs3org/reva/pull/3765
+
+ * Bugfix #3786: Fix listing directory for a read-only shares for EOS storage driver
+
+ In a read-only share, while listing a folder, for resources not having a version folder, the
+ returned resource id was wrongly the one of the original file, instead of the version folder.
+ This behavior has been fixed, where the version folder is always created on behalf of the
+ resource owner.
+
+ https://github.com/cs3org/reva/pull/3786
+
+ * Bugfix #3787: Fix application flag for EOS binary
+
+ https://github.com/cs3org/reva/pull/3787
+
+ * Bugfix #3780: Fix Makefile error on Ubuntu
+
+ I've fixed Makefile using sh which is defaulted to dash in ubuntu, dash doesn't support `[[ ...
+ ]]` syntax and Makefile would throw `/bin/sh: 1: [[: not found` errors.
+
+ https://github.com/cs3org/reva/issues/3773
+ https://github.com/cs3org/reva/pull/3780
+
+ * Bugfix #3873: Fix parsing of grappa response
+
+ https://github.com/cs3org/reva/pull/3873
+
+ * Bugfix #3794: Fix unshare for EOS storage driver
+
+ In the EOS storage driver, the remove acl operation was a no-op. After removing a share, the
+ recipient of the share was still able to operate on the shared resource. Now this has been fixed,
+ removing correctly the ACL from the shared resource.
+
+ https://github.com/cs3org/reva/pull/3794
+
+ * Bugfix #3838: Fix upload in a single file share for lightweight accounts
+
+ https://github.com/cs3org/reva/pull/3838
+
+ * Bugfix #3878: Fix creator/initiator in public and user shares
+
+ https://github.com/cs3org/reva/pull/3878
+
+ * Bugfix #3813: Fix propfind URL for OCM shares
+
+ https://github.com/cs3org/reva/issues/3810
+ https://github.com/cs3org/reva/pull/3813
+
+ * Bugfix #3770: Fixed default protocol on ocm-share-create
+
+ https://github.com/cs3org/reva/pull/3770
+
+ * Bugfix #3852: Pass remote share id and shared secret in OCM call
+
+ https://github.com/cs3org/reva/pull/3852
+
+ * Bugfix #3859: Fix inconsistency between data transfer protocol naming
+
+ https://github.com/cs3org/reva/issues/3858
+ https://github.com/cs3org/reva/pull/3859
+
+ * Enhancement #3847: Update data transfers for current OCM shares implementation
+
+ https://github.com/cs3org/reva/issues/3846
+ https://github.com/cs3org/reva/pull/3847
+
+ * Enhancement #3869: Datatx tutorial
+
+ https://github.com/cs3org/reva/issues/3864
+ https://github.com/cs3org/reva/pull/3869
+
+ * Enhancement #3762: Denial and Resharing Default capabilities
+
+ https://github.com/cs3org/reva/pull/3762
+
+ * Enhancement #3717: Disable sharing on low level paths
+
+ Sharing can be disable in the user share provider for some paths, but the storage provider was
+ still sending the sharing permissions for those paths. This adds a config option in the storage
+ provider, `minimum_allowed_path_level_for_share`, to disable sharing permissions for
+ resources up to a defined path level.
+
+ https://github.com/cs3org/reva/pull/3717
+
+ * Enhancement #3766: Download file revisions
+
+ Currently it is only possible to restore a file version, replacing the actual file with the
+ selected version. This allows an user to download a version file, without touching/replacing
+ the last version of the file
+
+ https://github.com/cs3org/reva/pull/3766
+
+ * Enhancement #3733: Add support for static linking
+
+ We've added support for compiling reva with static linking enabled. It's possible to do so with
+ the `STATIC` flag: `make revad STATIC=true`
+
+ https://github.com/cs3org/reva/pull/3733
+
+ * Enhancement #3778: Add support to tag eos traffic
+
+ We've added support to tag eos traffic
+
+ https://github.com/cs3org/reva/pull/3778
+
+ * Enhancement #3868: Implement historical way of constructing OCM WebDAV URL
+
+ Expose the expected WebDAV endpoint for OCM by OC10 and Nextcloud as described in
+ https://github.com/cs3org/OCM-API/issues/70#issuecomment-1538551138 to allow reva
+ providers to participate to mesh.
+
+ https://github.com/cs3org/reva/issues/3855
+ https://github.com/cs3org/reva/pull/3868
+
+ * Enhancement #3719: Skip computing groups when fetching all groups from grappa
+
+ https://github.com/cs3org/reva/pull/3719
+
+ * Enhancement #3783: Updated OCM tutorial
+
+ The OCM tutorial in the doc was missing the example on how to access the received resources. Now
+ the tutorial contains all the steps to access a received resource using the WebDAV protocol.
+
+ https://github.com/cs3org/reva/pull/3783
+
+ * Enhancement #3750: New metadata flags
+
+ Several new flags, like site infrastructure and service status, are now gathered and exposed
+ by Mentix.
+
+ https://github.com/cs3org/reva/pull/3750
+
+ * Enhancement #3839: Support multiple issuer in OIDC auth driver
+
+ The OIDC auth driver supports now multiple issuers. Users of external providers are then
+ mapped to a local user by a mapping files. Only the main issuer (defined in the config with
+ `issuer`) and the ones defined in the mapping are allowed for the verification of the OIDC
+ token.
+
+ https://github.com/cs3org/reva/pull/3839
+
+ * Enhancement #3772: New OCM discovery endpoint
+
+ This PR implements the new OCM v1.1 specifications for the /ocm-provider endpoint.
+
+ https://github.com/cs3org/reva/pull/3772
+
+ * Enhancement #3619: Tests for invitation manager SQL driver
+
+ https://github.com/cs3org/reva/pull/3619
+
+ * Enhancement #3757: Support OCM v1.0 schema
+
+ Following cs3org/cs3apis#206, we add the fields to ensure backwards compatibility with OCM
+ v1.0. However, if the `protocol.options` undocumented object is not empty, we bail out for
+ now. Supporting interoperability with OCM v1.0 implementations (notably Nextcloud 25) may
+ come in the future if the undocumented options are fully reverse engineered. This is reflected
+ in the unit tests as well.
+
+ Also, added viewMode to webapp protocol options (cs3org/cs3apis#207) and adapted all SQL
+ code and unit tests.
+
+ https://github.com/cs3org/reva/pull/3757
+
+ * Enhancement #3695: Create OCM share from sciencemesh service
+
+ https://github.com/pondersource/sciencemesh-php/issues/166
+ https://github.com/cs3org/reva/pull/3695
+
+ * Enhancement #3722: List only valid OCM tokens
+
+ https://github.com/cs3org/reva/pull/3722
+
+ * Enhancement #3821: Revamp user/group drivers and fix user type
+
+ For lightweight accounts
+
+ * Fix the user type for lightweight accounts, using the source field to differentiate between a
+ primary and lw account * Remove all the code with manual parsing of the json returned by the CERN
+ provider * Introduce pagination for `GetMembers` method in the group driver * Reduced network
+ transfer size by requesting only needed fields for `GetMembers` method
+
+ https://github.com/cs3org/reva/pull/3821
+
+ * Enhancement #3724: Send invitation link from mesh directory
+
+ When generating and listing OCM tokens
+
+ To enhance user expirience, instead of only sending the token, we send directly the URL for
+ accepting the invitation workflow.
+
+ https://github.com/cs3org/reva/pull/3724
+
+ * Enhancement #3824: Serverless Services
+
+ New type of service (along with http and grpc) which does not have a listening server. Useful for
+ the notifications service and others in the future.
+
+ https://github.com/cs3org/reva/pull/3824
+
+
diff --git a/docs/content/en/docs/config/http/services/ocmprovider/_index.md b/docs/content/en/docs/config/http/services/ocmprovider/_index.md
new file mode 100644
index 0000000000..298380f561
--- /dev/null
+++ b/docs/content/en/docs/config/http/services/ocmprovider/_index.md
@@ -0,0 +1,66 @@
+---
+title: "ocmprovider"
+linkTitle: "ocmprovider"
+weight: 10
+description: >
+ Configuration for the ocmprovider service
+---
+
+# _struct: config_
+
+{{% dir name="ocm_prefix" type="string" default="ocm" %}}
+The prefix URL where the OCM API is served. [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/ocmprovider/ocmprovider.go#L37)
+{{< highlight toml >}}
+[http.services.ocmprovider]
+ocm_prefix = "ocm"
+{{< /highlight >}}
+{{% /dir %}}
+
+{{% dir name="endpoint" type="string" default="This host's URL. If it's not configured, it is assumed OCM is not available." %}}
+ [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/ocmprovider/ocmprovider.go#L38)
+{{< highlight toml >}}
+[http.services.ocmprovider]
+endpoint = "This host's URL. If it's not configured, it is assumed OCM is not available."
+{{< /highlight >}}
+{{% /dir %}}
+
+{{% dir name="provider" type="string" default="reva" %}}
+A friendly name that defines this service. [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/ocmprovider/ocmprovider.go#L39)
+{{< highlight toml >}}
+[http.services.ocmprovider]
+provider = "reva"
+{{< /highlight >}}
+{{% /dir %}}
+
+{{% dir name="webdav_root" type="string" default="/remote.php/dav/ocm" %}}
+The root URL of the WebDAV endpoint to serve OCM shares. [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/ocmprovider/ocmprovider.go#L40)
+{{< highlight toml >}}
+[http.services.ocmprovider]
+webdav_root = "/remote.php/dav/ocm"
+{{< /highlight >}}
+{{% /dir %}}
+
+{{% dir name="webapp_root" type="string" default="/external/sciencemesh" %}}
+The root URL to serve Web apps via OCM. [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/ocmprovider/ocmprovider.go#L41)
+{{< highlight toml >}}
+[http.services.ocmprovider]
+webapp_root = "/external/sciencemesh"
+{{< /highlight >}}
+{{% /dir %}}
+
+{{% dir name="enable_webapp" type="bool" default=false %}}
+Whether web apps are enabled in OCM shares. [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/ocmprovider/ocmprovider.go#L42)
+{{< highlight toml >}}
+[http.services.ocmprovider]
+enable_webapp = false
+{{< /highlight >}}
+{{% /dir %}}
+
+{{% dir name="enable_datatx" type="bool" default=false %}}
+Whether data transfers are enabled in OCM shares. [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/ocmprovider/ocmprovider.go#L43)
+{{< highlight toml >}}
+[http.services.ocmprovider]
+enable_datatx = false
+{{< /highlight >}}
+{{% /dir %}}
+
diff --git a/docs/content/en/docs/config/http/services/owncloud/ocdav/_index.md b/docs/content/en/docs/config/http/services/owncloud/ocdav/_index.md
index 887d0acc24..edeb84444c 100644
--- a/docs/content/en/docs/config/http/services/owncloud/ocdav/_index.md
+++ b/docs/content/en/docs/config/http/services/owncloud/ocdav/_index.md
@@ -9,7 +9,7 @@ description: >
# _struct: Config_
{{% dir name="insecure" type="bool" default=false %}}
-Whether to skip certificate checks when sending requests. [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/owncloud/ocdav/ocdav.go#L102)
+Whether to skip certificate checks when sending requests. [[Ref]](https://github.com/cs3org/reva/tree/master/internal/http/services/owncloud/ocdav/ocdav.go#L103)
{{< highlight toml >}}
[http.services.owncloud.ocdav]
insecure = false
diff --git a/docs/content/en/docs/config/packages/auth/manager/oidc/_index.md b/docs/content/en/docs/config/packages/auth/manager/oidc/_index.md
index 758a8a14af..96d81c6d93 100644
--- a/docs/content/en/docs/config/packages/auth/manager/oidc/_index.md
+++ b/docs/content/en/docs/config/packages/auth/manager/oidc/_index.md
@@ -9,7 +9,7 @@ description: >
# _struct: config_
{{% dir name="insecure" type="bool" default=false %}}
-Whether to skip certificate checks when sending requests. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L61)
+Whether to skip certificate checks when sending requests. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L63)
{{< highlight toml >}}
[auth.manager.oidc]
insecure = false
@@ -17,7 +17,7 @@ insecure = false
{{% /dir %}}
{{% dir name="issuer" type="string" default="" %}}
-The issuer of the OIDC token. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L62)
+The issuer of the OIDC token. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L64)
{{< highlight toml >}}
[auth.manager.oidc]
issuer = ""
@@ -25,7 +25,7 @@ issuer = ""
{{% /dir %}}
{{% dir name="id_claim" type="string" default="sub" %}}
-The claim containing the ID of the user. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L63)
+The claim containing the ID of the user. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L65)
{{< highlight toml >}}
[auth.manager.oidc]
id_claim = "sub"
@@ -33,7 +33,7 @@ id_claim = "sub"
{{% /dir %}}
{{% dir name="uid_claim" type="string" default="" %}}
-The claim containing the UID of the user. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L64)
+The claim containing the UID of the user. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L66)
{{< highlight toml >}}
[auth.manager.oidc]
uid_claim = ""
@@ -41,7 +41,7 @@ uid_claim = ""
{{% /dir %}}
{{% dir name="gid_claim" type="string" default="" %}}
-The claim containing the GID of the user. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L65)
+The claim containing the GID of the user. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L67)
{{< highlight toml >}}
[auth.manager.oidc]
gid_claim = ""
@@ -49,7 +49,7 @@ gid_claim = ""
{{% /dir %}}
{{% dir name="gatewaysvc" type="string" default="" %}}
-The endpoint at which the GRPC gateway is exposed. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L66)
+The endpoint at which the GRPC gateway is exposed. [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L68)
{{< highlight toml >}}
[auth.manager.oidc]
gatewaysvc = ""
@@ -57,7 +57,7 @@ gatewaysvc = ""
{{% /dir %}}
{{% dir name="users_mapping" type="string" default="" %}}
- The optional OIDC users mapping file path [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L67)
+ The optional OIDC users mapping file path [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L69)
{{< highlight toml >}}
[auth.manager.oidc]
users_mapping = ""
@@ -65,7 +65,7 @@ users_mapping = ""
{{% /dir %}}
{{% dir name="group_claim" type="string" default="" %}}
- The group claim to be looked up to map the user (default to 'groups'). [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L68)
+ The group claim to be looked up to map the user (default to 'groups'). [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/auth/manager/oidc/oidc.go#L70)
{{< highlight toml >}}
[auth.manager.oidc]
group_claim = ""
diff --git a/docs/content/en/docs/config/packages/cbox/group/rest/_index.md b/docs/content/en/docs/config/packages/cbox/group/rest/_index.md
index 4f7bf6bd9a..36888b42b1 100644
--- a/docs/content/en/docs/config/packages/cbox/group/rest/_index.md
+++ b/docs/content/en/docs/config/packages/cbox/group/rest/_index.md
@@ -9,7 +9,7 @@ description: >
# _struct: config_
{{% dir name="redis_address" type="string" default="localhost:6379" %}}
-The address at which the redis server is running [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L54)
+The address at which the redis server is running [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L56)
{{< highlight toml >}}
[cbox.group.rest]
redis_address = "localhost:6379"
@@ -17,7 +17,7 @@ redis_address = "localhost:6379"
{{% /dir %}}
{{% dir name="group_members_cache_expiration" type="int" default=5 %}}
-The time in minutes for which the members of a group would be cached [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L60)
+The time in minutes for which the members of a group would be cached [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L62)
{{< highlight toml >}}
[cbox.group.rest]
group_members_cache_expiration = 5
@@ -25,7 +25,7 @@ group_members_cache_expiration = 5
{{% /dir %}}
{{% dir name="id_provider" type="string" default="http://cernbox.cern.ch" %}}
-The OIDC Provider [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L62)
+The OIDC Provider [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L64)
{{< highlight toml >}}
[cbox.group.rest]
id_provider = "http://cernbox.cern.ch"
@@ -33,7 +33,7 @@ id_provider = "http://cernbox.cern.ch"
{{% /dir %}}
{{% dir name="api_base_url" type="string" default="https://authorization-service-api-dev.web.cern.ch" %}}
-Base API Endpoint [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L64)
+Base API Endpoint [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L66)
{{< highlight toml >}}
[cbox.group.rest]
api_base_url = "https://authorization-service-api-dev.web.cern.ch"
@@ -41,7 +41,7 @@ api_base_url = "https://authorization-service-api-dev.web.cern.ch"
{{% /dir %}}
{{% dir name="client_id" type="string" default="-" %}}
-Client ID needed to authenticate [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L66)
+Client ID needed to authenticate [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L68)
{{< highlight toml >}}
[cbox.group.rest]
client_id = "-"
@@ -49,7 +49,7 @@ client_id = "-"
{{% /dir %}}
{{% dir name="client_secret" type="string" default="-" %}}
-Client Secret [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L68)
+Client Secret [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L70)
{{< highlight toml >}}
[cbox.group.rest]
client_secret = "-"
@@ -57,7 +57,7 @@ client_secret = "-"
{{% /dir %}}
{{% dir name="oidc_token_endpoint" type="string" default="https://keycloak-dev.cern.ch/auth/realms/cern/api-access/token" %}}
-Endpoint to generate token to access the API [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L71)
+Endpoint to generate token to access the API [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L73)
{{< highlight toml >}}
[cbox.group.rest]
oidc_token_endpoint = "https://keycloak-dev.cern.ch/auth/realms/cern/api-access/token"
@@ -65,7 +65,7 @@ oidc_token_endpoint = "https://keycloak-dev.cern.ch/auth/realms/cern/api-access/
{{% /dir %}}
{{% dir name="target_api" type="string" default="authorization-service-api" %}}
-The target application for which token needs to be generated [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L73)
+The target application for which token needs to be generated [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L75)
{{< highlight toml >}}
[cbox.group.rest]
target_api = "authorization-service-api"
@@ -73,7 +73,7 @@ target_api = "authorization-service-api"
{{% /dir %}}
{{% dir name="group_fetch_interval" type="int" default=3600 %}}
-The time in seconds between bulk fetch of groups [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L75)
+The time in seconds between bulk fetch of groups [[Ref]](https://github.com/cs3org/reva/tree/master/pkg/cbox/group/rest/rest.go#L77)
{{< highlight toml >}}
[cbox.group.rest]
group_fetch_interval = 3600
diff --git a/docs/content/en/docs/tutorials/data-transfer-tutorial.md b/docs/content/en/docs/tutorials/data-transfer-tutorial.md
new file mode 100644
index 0000000000..48aa76d94a
--- /dev/null
+++ b/docs/content/en/docs/tutorials/data-transfer-tutorial.md
@@ -0,0 +1,166 @@
+---
+title: "Data transfer functionality in Reva"
+linkTitle: "Data transfer functionality"
+weight: 5
+description: >
+ Data transfer functionality in Reva.
+---
+
+This is a guide on how to try the data transfer functionality in Reva in your local environment using rclone as the data transfer driver.
+
+### Recap
+A data transfer is initiated through an OCM share by setting the `protocol` to type `datatx`.
+
+## Prerequisites
+* Have an rclone instance running (see [Rclone setup](#1-rclone-setup) below).
+* A mesh setup equal to the OCM share tutorial (see [Reva daemons setup](#2-reva-daemons-setup)).
+
+## 1. Rclone setup
+Use rclone version v1.61 or higher. Available at [https://rclone.org/](https://rclone.org/).
+
The rclone server should be run with the `server-side-across-configs` flag set to `true` which will make HTTP Third Party Copy (TPC) transfers possible:
+```
+rclone -vv rcd --server-side-across-configs=true --rc-user=rclone --rc-pass=rclonesecret --rc-addr=0.0.0.0:5572
+```
+TPC allows for direct (ie. efficient) Reva to Reva transfers as opposed to streaming the data through rclone
+
+## 2. Reva daemons setup
+Follow the setup ([prerequisites](https://reva.link/docs/tutorials/share-tutorial/#prerequisites), [building](https://reva.link/docs/tutorials/share-tutorial/#2-build-reva), [running](https://reva.link/docs/tutorials/share-tutorial/#3-run-reva)) of the OCM share [tutorial](https://reva.link/docs/tutorials/share-tutorial/).
+
+Use the [data transfer example config](https://github.com/cs3org/reva/blob/master/examples/datatx/datatx.toml) for the relevant settings to enable rclone driven data transfer.
+
+At this point you should have a two Reva daemon setup between which we will establish a data transfer driven by rclone.
+
+## 3. Create a datatx protocol type OCM share
+(assume we are logged in as einstein on the first Reva instance and we have uploaded some data to the `/home/my-data` folder)
+
The tutorial explains transfer between user einstein at cern and user marie at cesnet.
+
+Creating a transfer is similar to creating a regular OCM share through the `ocm-share-create` command with the addition of the `-datatx` flag. The `-datatx` flag signifies that this is a data transfer.
+
The `ocm-share-create` command makes (see example below), via an OCM share, the contents of folder `/home/my-data` available for transferring to the grantee.
+
*Note that only a folder can be transferred!
+```
+>> ocm-share-create -grantee f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c -idp cesnet.cz -transfer /home/my-data
++--------------------------------------+-----------------+--------------------------------------+--------------------------------------------------------------------------------------------+-------------------+-------------+--------------------------------------+--------------------------------+--------------------------------+
+| # | OWNER.IDP | OWNER.OPAQUEID | RESOURCEID | TYPE | GRANTEE.IDP | GRANTEE.OPAQUEID | CREATED | UPDATED |
++--------------------------------------+-----------------+--------------------------------------+--------------------------------------------------------------------------------------------+-------------------+-------------+--------------------------------------+--------------------------------+--------------------------------+
+| edc8f1c3-5f12-4430-8680-95b9034d6592 | cernbox.cern.ch | 4c510ada-c86b-4815-8820-42cdf82c3d51 | storage_id:"123e4567-e89b-12d3-a456-426655440000" opaque_id:"fileid-einstein%2Fmy-data" | GRANTEE_TYPE_USER | cesnet.cz | f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c | 2023-04-11 11:52:08 +0200 CEST | 2023-04-11 11:52:08 +0200 CEST |
++--------------------------------------+-----------------+--------------------------------------+--------------------------------------------------------------------------------------------+-------------------+-------------+--------------------------------------+--------------------------------+--------------------------------+
+```
+
+## 4. Discovering the transfer
+(assume we are logged in on the receiving Reva instance as marie)
+
+
The grantee (ie. the receiver of the transfer) can now discover the transfer share and its details in the same way as with regular shares using the `ocm-share-list-received` command to obtain the share id, and subsequent `ocm-share-get-received` command using that share id:
+
+```
+>> ocm-share-list-received
++--------------------------------------+-----------------+--------------------------------------+-------------------------------------------------------------------------------+-------------------+-------------+--------------------------------------+--------------------------------+--------------------------------+---------------------+-----------------+
+| # | OWNER.IDP | OWNER.OPAQUEID | RESOURCEID | TYPE | GRANTEE.IDP | GRANTEE.OPAQUEID | CREATED | UPDATED | STATE | SHARETYPE |
++--------------------------------------+-----------------+--------------------------------------+-------------------------------------------------------------------------------+-------------------+-------------+--------------------------------------+--------------------------------+--------------------------------+---------------------+-----------------+
+| 79a2bf32-4bba-437a-ad8f-ec93211375b5 | cernbox.cern.ch | 4c510ada-c86b-4815-8820-42cdf82c3d51 | opaque_id:"123e4567-e89b-12d3-a456-426655440000:fileid-einstein%2Fmy-data" | GRANTEE_TYPE_USER | cesnet.cz | f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c | 2023-04-11 11:52:08 +0200 CEST | 2023-04-11 11:52:08 +0200 CEST | SHARE_STATE_PENDING | SHARE_TYPE_USER |
++--------------------------------------+-----------------+--------------------------------------+-------------------------------------------------------------------------------+-------------------+-------------+--------------------------------------+--------------------------------+--------------------------------+---------------------+-----------------+
+
+>> ocm-share-get-received 79a2bf32-4bba-437a-ad8f-ec93211375b5
+{"id":{"opaqueId":"79a2bf32-4bba-437a-ad8f-ec93211375b5"}, "name":"my-data", "resourceId":{"opaqueId":"123e4567-e89b-12d3-a456-426655440000:fileid-einstein%2Fmy-data"}, "grantee":{"type":"GRANTEE_TYPE_USER", "userId":{"idp":"cesnet.cz", "opaqueId":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c"}}, "owner":{"idp":"cernbox.cern.ch", "opaqueId":"4c510ada-c86b-4815-8820-42cdf82c3d51", "type":"USER_TYPE_FEDERATED"}, "creator":{"idp":"cernbox.cern.ch", "opaqueId":"4c510ada-c86b-4815-8820-42cdf82c3d51", "type":"USER_TYPE_FEDERATED"}, "ctime":{"seconds":"1683549473", "nanos":722800878}, "mtime":{"seconds":"1683549473", "nanos":722800878}, "shareType":"SHARE_TYPE_USER", "protocols":[{"transferOptions":{"sourceUri":"https://cernbox.cern.ch/remote.php/dav/ocm/IFs4ZVKVjp7OQsArvCSvXkf8A7emEQ71"}}], "state":"SHARE_STATE_PENDING", "resourceType":"RESOURCE_TYPE_CONTAINER"}
+```
+To start the transfer it must be accepted by the grantee.
+
+## 4. Accepting the transfer by the grantee
+The grantee (ie. the receiver of the transfer) must now accept the transfer by updating the `state` of the transfer to `accepted`. That will start the transfer. Optionally the grantee can also specify a path to which the data must be transferred:
+
+```
+>> ocm-share-update-received -state accepted -path /home/transfers 79a2bf32-4bba-437a-ad8f-ec93211375b5
+OK
+```
+At this point the transfer should have started automatically. In the command example above the data will be transferred into the `/home/transfers` folder of the grantee. In this case the final resulting path will read `/home/transfer/my-data/`
+
+If a path is not provided with the command the transfers will be written into the folder as set by the configuration property `data_transfers_folder` of the gateway as follows:
+```
+[grpc.services.gateway]
+data_transfers_folder = "/home/MyTransfers"
+```
+Note that at least one of each must be provided but that the `path` command flag overrides the configuration setting (ie. per transfer).
+
+## 4.1 Do over a transfer
+In case the transfer has failed and it is not a driver (rclone) issue, or maybe you want to transfer to another folder, use these 2 steps:
+
First update the share to `pending`:
+```
+ocm-share-get-received -state pending 79a2bf32-4bba-437a-ad8f-ec93211375b5
+OK
+```
+Next accept the transfer, optionally with a different path:
+```
+>> ocm-share-update-received -state accepted -path /home/transfers-sec 79a2bf32-4bba-437a-ad8f-ec93211375b5
+OK
+```
+Now the data will be transferred to the `/home/transfers-sec/my-data/` folder.
+
+Whenever transfer shares are accepted corresponding transfer jobs will be created for them. These can be [managed](#5-managing-transfer-jobs).
+
+## 5. Managing transfer jobs
+The transfer driver creates a transfer job for each transfer. These jobs can be managed (request status, retried, cancelled). For this one must first discover the transfer id from the transfers list.
+
+## 5.1 List transfers
+List the transfers using the `transfer-list` command to discover their corresponding transfer id:
+
+```
+>> transfer-list
++--------------------------------------+--------------------------------------+
+| SHAREID.OPAQUEID | ID.OPAQUEID |
++--------------------------------------+--------------------------------------+
+| 2c55dc61-4a06-4f44-9478-78eb1243971b | 0f901f2c-a004-4126-b810-29bf51909035 |
+| 1f5de8f0-5565-4694-8eca-f66e578783c8 | f0b3b410-0e39-4591-92f7-8e229650b3c7 |
+| 79a2bf32-4bba-437a-ad8f-ec93211375b5 | fe671ae3-0fbf-4b06-b7df-32418c2ebfcb |
++--------------------------------------+--------------------------------------+
+
+```
+## 5.2 Show status transfer
+Show the current status of a transfer using the `transfer-status` command. Possible transfer states are:
+```
+cancelled
+cancel failed
+complete
+expired
+failed
+in progress
+new
+invalid
+```
+```
+transfer-get-status -txId fe671ae3-0fbf-4b06-b7df-32418c2ebfcb
++--------------------------------------+--------------------------------------+--------------------------+-----------------------------------+
+| SHAREID.OPAQUEID | ID.OPAQUEID | STATUS | CTIME |
++--------------------------------------+--------------------------------------+--------------------------+-----------------------------------+
+| 79a2bf32-4bba-437a-ad8f-ec93211375b5 | fe671ae3-0fbf-4b06-b7df-32418c2ebfcb | STATUS_TRANSFER_COMPLETE | Mon May 8 12:38:08 +0000 UTC 2023 |
++--------------------------------------+--------------------------------------+--------------------------+-----------------------------------+
+```
+
+
+## 5.5 Retry transfer
+Retry a transfer using the `transfer-retry` command with the transfer id specified. This should restart the transfer job and return the new status of the transfer:
+
+```
+transfer-retry -txId fe671ae3-0fbf-4b06-b7df-32418c2ebfcb
++--------------------------------------+--------------------------------------+---------------------+-------------------------------+
+| SHAREID.OPAQUEID | ID.OPAQUEID | STATUS | CTIME |
++--------------------------------------+--------------------------------------+---------------------+-------------------------------+
+| 79a2bf32-4bba-437a-ad8f-ec93211375b5 | fe671ae3-0fbf-4b06-b7df-32418c2ebfcb | STATUS_TRANSFER_NEW | 2023-05-08 12:41:07 +0000 UTC |
++--------------------------------------+--------------------------------------+---------------------+-------------------------------+
+```
+## 5.4 Cancel transfer
+A running transfer (transfer state `in progress`) can be cancelled using the `transfer-cancel` command as follows:
+```
+transfer-retry -txId fe671ae3-0fbf-4b06-b7df-32418c2ebfcb
++--------------------------------------+--------------------------------------+---------------------+-------------------------------+
+| SHAREID.OPAQUEID | ID.OPAQUEID | STATUS | CTIME |
++--------------------------------------+--------------------------------------+---------------------+-------------------------------+
+| 79a2bf32-4bba-437a-ad8f-ec93211375b5 | fe671ae3-0fbf-4b06-b7df-32418c2ebfcb | STATUS_TRANSFER_CANCELLED | 2023-05-08 13:50:12 +0000 UTC |
++--------------------------------------+--------------------------------------+---------------------+-------------------------------+
+```
+
+## 6 Cleanup transfers
+Transfers will be removed from the db using the `transfer-cancel` command when the configuration property `remove_on_cancel` of the datatx service has been set to `true` as follows:
+```
+[grpc.services.datatx]
+remove_on_cancel = true
+```
+Currently this setting is recommended.
\ No newline at end of file
diff --git a/examples/meshdirectory/meshdirectory.toml b/examples/meshdirectory/meshdirectory.toml
index c525e9ad0c..9711044416 100644
--- a/examples/meshdirectory/meshdirectory.toml
+++ b/examples/meshdirectory/meshdirectory.toml
@@ -24,6 +24,7 @@ file = "/var/tmp/reva/shares_server_1.json"
[http.services.dataprovider]
[http.services.prometheus]
[http.services.ocmd]
+[http.services.ocmprovider]
[http.services.ocdav]
[http.services.ocs]
diff --git a/examples/nextcloud-integration/revad.toml b/examples/nextcloud-integration/revad.toml
index fda4fe6428..b37faacdc8 100644
--- a/examples/nextcloud-integration/revad.toml
+++ b/examples/nextcloud-integration/revad.toml
@@ -112,7 +112,7 @@ driver = "nextcloud"
endpoint = "http://localhost/apps/sciencemesh/"
[http]
-enabled_services = ["ocmd"]
+enabled_services = ["ocmd", "ocmprovider"]
enabled_middlewares = ["providerauthorizer", "cors"]
address = "0.0.0.0:19001"
@@ -126,7 +126,13 @@ driver = "nextcloud"
user_layout = "{{.Username}}"
[http.services.ocmd]
-prefix = "ocm"
+
+[http.services.ocmprovider]
+provider = "Reva-Nextcloud"
+endpoint = "http://localhost"
+webdav_root = "/remote.php/dav/ocm"
+enable_webapp = true
+enable_datatx = true
[http.middlewares.providerauthorizer]
driver = "json"
diff --git a/examples/oc-phoenix/ocmd.toml b/examples/oc-phoenix/ocmd.toml
index 37ad659d12..0864d48b54 100644
--- a/examples/oc-phoenix/ocmd.toml
+++ b/examples/oc-phoenix/ocmd.toml
@@ -28,13 +28,16 @@ driver = "json"
providers = "providers.demo.json"
[http]
-enabled_services = ["ocmd"]
+enabled_services = ["ocmd", "ocmprovider"]
enabled_middlewares = ["providerauthorizer", "cors"]
address = "0.0.0.0:13001"
[http.services.ocmd]
prefix = "ocm"
+[http.services.ocmprovider]
+endpoint = "http://localhost:13001"
+
[http.middlewares.providerauthorizer]
driver = "json"
diff --git a/examples/ocmd/server-1/ocmd-server-1.toml b/examples/ocmd/server-1/ocmd-server-1.toml
index 8f6132d29c..5ecf585745 100644
--- a/examples/ocmd/server-1/ocmd-server-1.toml
+++ b/examples/ocmd/server-1/ocmd-server-1.toml
@@ -123,6 +123,13 @@ user_layout = "{{.Username}}"
[http.services.ocmd]
prefix = "ocm"
+[http.services.ocmprovider]
+ocm_prefix = "ocm"
+provider = "reva@cern"
+endpoint = "http://localhost:19001"
+enable_webapp = true
+enable_datatx = true
+
[http.middlewares.providerauthorizer]
driver = "json"
diff --git a/examples/ocmd/server-2/ocmd-server-2.toml b/examples/ocmd/server-2/ocmd-server-2.toml
index 99eac947f8..8ac94f9ba9 100644
--- a/examples/ocmd/server-2/ocmd-server-2.toml
+++ b/examples/ocmd/server-2/ocmd-server-2.toml
@@ -112,7 +112,12 @@ driver = "localhome"
user_layout = "{{.Username}}"
[http.services.ocmd]
-prefix = "ocm"
+
+[http.services.ocmprovider]
+provider = "reva@cesnet"
+endpoint = "http://localhost:17001"
+enable_webapp = true
+enable_datatx = true
[http.middlewares.providerauthorizer]
driver = "json"
diff --git a/examples/oidc-mapping-tpc/server-1.toml b/examples/oidc-mapping-tpc/server-1.toml
index c212892e59..61248b2a13 100644
--- a/examples/oidc-mapping-tpc/server-1.toml
+++ b/examples/oidc-mapping-tpc/server-1.toml
@@ -62,6 +62,7 @@ driver = "localhome"
[http.services.datagateway]
[http.services.prometheus]
[http.services.ocmd]
+[http.services.ocmprovider]
[http.services.ocs]
[http.services.ocdav]
enable_http_tpc = true
diff --git a/examples/oidc-mapping-tpc/server-2.toml b/examples/oidc-mapping-tpc/server-2.toml
index 259c4b77d8..02eaee63bc 100644
--- a/examples/oidc-mapping-tpc/server-2.toml
+++ b/examples/oidc-mapping-tpc/server-2.toml
@@ -62,6 +62,7 @@ driver = "localhome"
[http.services.datagateway]
[http.services.prometheus]
[http.services.ocmd]
+[http.services.ocmprovider]
[http.services.ocs]
[http.services.ocdav]
enable_http_tpc = true
diff --git a/examples/serverless-example/notifications.toml b/examples/serverless/notifications.toml
similarity index 100%
rename from examples/serverless-example/notifications.toml
rename to examples/serverless/notifications.toml
diff --git a/examples/standalone/standalone.toml b/examples/standalone/standalone.toml
index fe293dbb01..0b54edd841 100644
--- a/examples/standalone/standalone.toml
+++ b/examples/standalone/standalone.toml
@@ -17,5 +17,6 @@
[http.services.dataprovider]
[http.services.prometheus]
[http.services.ocmd]
+[http.services.ocmprovider]
[http.services.ocdav]
[http.services.ocs]
diff --git a/examples/storage-references/gateway.toml b/examples/storage-references/gateway.toml
index a8e90d8866..8b887d1d3d 100644
--- a/examples/storage-references/gateway.toml
+++ b/examples/storage-references/gateway.toml
@@ -44,6 +44,7 @@ mime_types = [
[http.services.datagateway]
[http.services.prometheus]
[http.services.ocmd]
+[http.services.ocmprovider]
[http.services.ocdav]
[http.services.ocs]
[http.services.appprovider]
diff --git a/examples/two-server-setup/gateway-1.toml b/examples/two-server-setup/gateway-1.toml
index 6b7051d80e..4a6990a42a 100644
--- a/examples/two-server-setup/gateway-1.toml
+++ b/examples/two-server-setup/gateway-1.toml
@@ -54,6 +54,12 @@ address = "0.0.0.0:19001"
[http.services.datagateway]
[http.services.prometheus]
[http.services.ocmd]
+[http.services.ocmprovider]
+provider = "Reva-Server-1"
+endpoint = "http://localhost:19001"
+enable_webapp = true
+enable_datatx = true
+
[http.services.ocdav]
[http.services.ocs]
diff --git a/examples/two-server-setup/gateway-2.toml b/examples/two-server-setup/gateway-2.toml
index e3379e93eb..808ec4c9ed 100644
--- a/examples/two-server-setup/gateway-2.toml
+++ b/examples/two-server-setup/gateway-2.toml
@@ -69,6 +69,12 @@ address = "0.0.0.0:29001"
[http.services.datagateway]
[http.services.prometheus]
[http.services.ocmd]
+[http.services.ocmprovider]
+provider = "Reva-Server-2"
+endpoint = "http://localhost:29001"
+enable_webapp = true
+enable_datatx = true
+
[http.services.ocdav]
[http.services.ocs]
diff --git a/go.mod b/go.mod
index 35fd10c9f9..4386d9d1b8 100644
--- a/go.mod
+++ b/go.mod
@@ -14,9 +14,8 @@ require (
github.com/cenkalti/backoff v2.2.1+incompatible
github.com/ceph/go-ceph v0.15.0
github.com/cheggaaa/pb v1.0.29
- github.com/coreos/go-oidc v2.2.1+incompatible
github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e
- github.com/cs3org/go-cs3apis v0.0.0-20230331073620-011a5b8a3115
+ github.com/cs3org/go-cs3apis v0.0.0-20230508132523-e0d062e63b3b
github.com/dgraph-io/ristretto v0.1.1
github.com/dolthub/go-mysql-server v0.14.0
github.com/eventials/go-tus v0.0.0-20200718001131-45c7ec8f5d59
@@ -153,7 +152,6 @@ require (
github.com/patrickmn/go-cache v2.1.0+incompatible // indirect
github.com/pkg/term v1.2.0-beta.2 // indirect
github.com/pmezard/go-difflib v1.0.0 // indirect
- github.com/pquerna/cachecontrol v0.1.0 // indirect
github.com/prometheus/client_golang v1.13.0 // indirect
github.com/prometheus/client_model v0.2.0 // indirect
github.com/prometheus/common v0.37.0 // indirect
@@ -176,7 +174,6 @@ require (
golang.org/x/tools v0.6.0 // indirect
google.golang.org/appengine v1.6.7 // indirect
gopkg.in/ini.v1 v1.66.6 // indirect
- gopkg.in/square/go-jose.v2 v2.6.0 // indirect
gopkg.in/src-d/go-errors.v1 v1.0.0 // indirect
gopkg.in/tomb.v1 v1.0.0-20141024135613-dd632973f1e7 // indirect
gopkg.in/yaml.v2 v2.4.0 // indirect
diff --git a/go.sum b/go.sum
index 69d2ea6cda..59cd3d6f40 100644
--- a/go.sum
+++ b/go.sum
@@ -289,8 +289,6 @@ github.com/containerd/ttrpc v0.0.0-20190828154514-0e0f228740de/go.mod h1:PvCDdDG
github.com/containerd/typeurl v0.0.0-20180627222232-a93fcdb778cd/go.mod h1:Cm3kwCdlkCfMSHURc+r6fwoGH6/F1hH3S4sg0rLFWPc=
github.com/coreos/bbolt v1.3.2/go.mod h1:iRUV2dpdMOn7Bo10OQBFzIJO9kkE559Wcmn+qkEiiKk=
github.com/coreos/etcd v3.3.13+incompatible/go.mod h1:uF7uidLiAD3TWHmW31ZFd/JWoc32PjwdhPthX9715RE=
-github.com/coreos/go-oidc v2.2.1+incompatible h1:mh48q/BqXqgjVHpy2ZY7WnWAbenxRjsz9N1i1YxjHAk=
-github.com/coreos/go-oidc v2.2.1+incompatible/go.mod h1:CgnwVTmzoESiwO9qyAFEMiHoZ1nMCKZlZ9V6mm3/LKc=
github.com/coreos/go-oidc/v3 v3.5.0 h1:VxKtbccHZxs8juq7RdJntSqtXFtde9YpNpGn0yqgEHw=
github.com/coreos/go-oidc/v3 v3.5.0/go.mod h1:ecXRtV4romGPeO6ieExAsUK9cb/3fp9hXNz1tlv8PIM=
github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk=
@@ -309,8 +307,8 @@ github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ3
github.com/creack/pty v1.1.11/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e h1:tqSPWQeueWTKnJVMJffz4pz0o1WuQxJ28+5x5JgaHD8=
github.com/cs3org/cato v0.0.0-20200828125504-e418fc54dd5e/go.mod h1:XJEZ3/EQuI3BXTp/6DUzFr850vlxq11I6satRtz0YQ4=
-github.com/cs3org/go-cs3apis v0.0.0-20230331073620-011a5b8a3115 h1:WR5sDbfsHZZViXKB0036V2hobzZSxew1MomrSk1kWyI=
-github.com/cs3org/go-cs3apis v0.0.0-20230331073620-011a5b8a3115/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY=
+github.com/cs3org/go-cs3apis v0.0.0-20230508132523-e0d062e63b3b h1:UCO7Rnf5bvIvRtETguV8IaTx73cImLlFWxrApCB0QsQ=
+github.com/cs3org/go-cs3apis v0.0.0-20230508132523-e0d062e63b3b/go.mod h1:UXha4TguuB52H14EMoSsCqDj7k8a/t7g4gVP+bgY5LY=
github.com/cyberdelia/templates v0.0.0-20141128023046-ca7fffd4298c/go.mod h1:GyV+0YP4qX0UQ7r2MoYZ+AvYDp12OF5yg4q8rGnyNh4=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c=
@@ -979,8 +977,6 @@ github.com/pkg/xattr v0.4.5/go.mod h1:sBD3RAqlr8Q+RC3FutZcikpT8nyDrIEEBw2J744gVW
github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI=
-github.com/pquerna/cachecontrol v0.1.0 h1:yJMy84ti9h/+OEWa752kBTKv4XC30OtVVHYv/8cTqKc=
-github.com/pquerna/cachecontrol v0.1.0/go.mod h1:NrUG3Z7Rdu85UNR3vm7SOsl1nFIeSiQnrHV5K9mBcUI=
github.com/pquerna/otp v1.3.0/go.mod h1:dkJfzwRKNiegxyNb54X/3fLwhCynbMspSyWKnvi1AEg=
github.com/prashantv/gostub v1.1.0/go.mod h1:A5zLQHz7ieHGG7is6LLXLz7I8+3LZzsrV0P1IAHhP5U=
github.com/prometheus/alertmanager v0.24.0 h1:HBWR3lk4uy3ys+naDZthDdV7yEsxpaNeZuUS+hJgrOw=
@@ -1401,8 +1397,6 @@ golang.org/x/oauth2 v0.0.0-20220608161450-d0670ef3b1eb/go.mod h1:jaDAt6Dkxork7Lm
golang.org/x/oauth2 v0.0.0-20220622183110-fd043fe589d2/go.mod h1:jaDAt6Dkxork7LmZnYtzbRWj0W47D86a3TGe0YHBvmE=
golang.org/x/oauth2 v0.0.0-20220822191816-0ebed06d0094/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.0.0-20220909003341-f21342109be1/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783 h1:nt+Q6cXKz4MosCSpnbMtqiQ8Oz0pxTef2B4Vca2lvfk=
-golang.org/x/oauth2 v0.0.0-20221014153046-6fdb5e3db783/go.mod h1:h4gKUeWbJ4rQPri7E0u6Gs4e9Ri2zaLxzw5DI5XGrYg=
golang.org/x/oauth2 v0.3.0 h1:6l90koy8/LaBLmLu8jpHeHexzMwEita0zFfYlggy2F8=
golang.org/x/oauth2 v0.3.0/go.mod h1:rQrIauxkUhJ6CuwEXwymO2/eh4xz2ZWF1nBkcxS+tGk=
golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
@@ -1908,8 +1902,6 @@ gopkg.in/ini.v1 v1.66.6/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k=
gopkg.in/ns1/ns1-go.v2 v2.4.4/go.mod h1:GMnKY+ZuoJ+lVLL+78uSTjwTz2jMazq6AfGKQOYhsPk=
gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo=
gopkg.in/square/go-jose.v2 v2.5.1/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
-gopkg.in/square/go-jose.v2 v2.6.0 h1:NGk74WTnPKBNUhNzQX7PYcTLUjoq7mzKk2OKbvwk2iI=
-gopkg.in/square/go-jose.v2 v2.6.0/go.mod h1:M9dMgbHiYLoDGQrXy7OpJDJWiKiU//h+vD76mk0e1AI=
gopkg.in/src-d/go-errors.v1 v1.0.0 h1:cooGdZnCjYbeS1zb1s6pVAAimTdKceRrpn7aKOnNIfc=
gopkg.in/src-d/go-errors.v1 v1.0.0/go.mod h1:q1cBlomlw2FnDBDNGlnh6X0jPihy+QxZfMMNxPCbdYg=
gopkg.in/telebot.v3 v3.0.0/go.mod h1:7rExV8/0mDDNu9epSrDm/8j22KLaActH1Tbee6YjzWg=
diff --git a/internal/grpc/services/ocmcore/ocmcore.go b/internal/grpc/services/ocmcore/ocmcore.go
index be4332701a..6cd63987f8 100644
--- a/internal/grpc/services/ocmcore/ocmcore.go
+++ b/internal/grpc/services/ocmcore/ocmcore.go
@@ -117,10 +117,8 @@ func (s *service) CreateOCMCoreShare(ctx context.Context, req *ocmcore.CreateOCM
}
share, err := s.repo.StoreReceivedShare(ctx, &ocm.ReceivedShare{
- ResourceId: &providerpb.ResourceId{
- OpaqueId: req.ResourceId,
- },
- Name: req.Name,
+ RemoteShareId: req.ResourceId,
+ Name: req.Name,
Grantee: &providerpb.Grantee{
Type: providerpb.GranteeType_GRANTEE_TYPE_USER,
Id: &providerpb.Grantee_UserId{
diff --git a/internal/grpc/services/ocmproviderauthorizer/ocmproviderauthorizer.go b/internal/grpc/services/ocmproviderauthorizer/ocmproviderauthorizer.go
index 0bf9b19a72..9d0892068d 100644
--- a/internal/grpc/services/ocmproviderauthorizer/ocmproviderauthorizer.go
+++ b/internal/grpc/services/ocmproviderauthorizer/ocmproviderauthorizer.go
@@ -22,6 +22,7 @@ import (
"context"
ocmprovider "github.com/cs3org/go-cs3apis/cs3/ocm/provider/v1beta1"
+ "github.com/cs3org/reva/pkg/appctx"
"github.com/cs3org/reva/pkg/errtypes"
"github.com/cs3org/reva/pkg/ocm/provider"
"github.com/cs3org/reva/pkg/ocm/provider/authorizer/registry"
@@ -118,6 +119,8 @@ func (s *service) GetInfoByDomain(ctx context.Context, req *ocmprovider.GetInfoB
}
func (s *service) IsProviderAllowed(ctx context.Context, req *ocmprovider.IsProviderAllowedRequest) (*ocmprovider.IsProviderAllowedResponse, error) {
+ log := appctx.GetLogger(ctx)
+ log.Debug().Msgf("is provider '%s' allowed?", req.Provider.Domain)
err := s.pa.IsProviderAllowed(ctx, req.Provider)
if err != nil {
return &ocmprovider.IsProviderAllowedResponse{
diff --git a/internal/grpc/services/ocmshareprovider/ocmshareprovider.go b/internal/grpc/services/ocmshareprovider/ocmshareprovider.go
index 9112af18fe..37b0307545 100644
--- a/internal/grpc/services/ocmshareprovider/ocmshareprovider.go
+++ b/internal/grpc/services/ocmshareprovider/ocmshareprovider.go
@@ -193,8 +193,9 @@ func (s *service) getWebdavProtocol(ctx context.Context, share *ocm.Share, m *oc
}
return &ocmd.WebDAV{
- Permissions: perms,
- URL: s.webdavURL(ctx, share),
+ Permissions: perms,
+ URL: s.webdavURL(ctx, share),
+ SharedSecret: share.Token,
}
}
@@ -299,7 +300,7 @@ func (s *service) CreateOCMShare(ctx context.Context, req *ocm.CreateOCMShareReq
newShareReq := &client.NewShareRequest{
ShareWith: formatOCMUser(req.Grantee.GetUserId()),
Name: ocmshare.Name,
- ResourceID: fmt.Sprintf("%s:%s", req.ResourceId.StorageId, req.ResourceId.OpaqueId),
+ ProviderID: ocmshare.Id.OpaqueId,
Owner: formatOCMUser(&userpb.UserId{
OpaqueId: info.Owner.OpaqueId,
Idp: s.conf.ProviderDomain, // FIXME: this is not generally true in case of resharing
diff --git a/internal/http/services/loader/loader.go b/internal/http/services/loader/loader.go
index 37ffdb4ce4..ed0ec11c40 100644
--- a/internal/http/services/loader/loader.go
+++ b/internal/http/services/loader/loader.go
@@ -30,6 +30,7 @@ import (
_ "github.com/cs3org/reva/internal/http/services/meshdirectory"
_ "github.com/cs3org/reva/internal/http/services/metrics"
_ "github.com/cs3org/reva/internal/http/services/ocmd"
+ _ "github.com/cs3org/reva/internal/http/services/ocmprovider"
_ "github.com/cs3org/reva/internal/http/services/owncloud/ocdav"
_ "github.com/cs3org/reva/internal/http/services/owncloud/ocs"
_ "github.com/cs3org/reva/internal/http/services/preferences"
diff --git a/internal/http/services/ocmd/config.go b/internal/http/services/ocmd/config.go
deleted file mode 100644
index a8666e53f1..0000000000
--- a/internal/http/services/ocmd/config.go
+++ /dev/null
@@ -1,88 +0,0 @@
-// Copyright 2018-2023 CERN
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-//
-// In applying this license, CERN does not waive the privileges and immunities
-// granted to it by virtue of its status as an Intergovernmental Organization
-// or submit itself to any jurisdiction.
-
-package ocmd
-
-import (
- "encoding/json"
- "fmt"
- "net/http"
-
- "github.com/cs3org/reva/pkg/appctx"
-)
-
-type configData struct {
- Enabled bool `json:"enabled" xml:"enabled"`
- APIVersion string `json:"apiVersion" xml:"apiVersion"`
- Host string `json:"host" xml:"host"`
- Endpoint string `json:"endPoint" xml:"endPoint"`
- Provider string `json:"provider" xml:"provider"`
- ResourceTypes []resourceTypes `json:"resourceTypes" xml:"resourceTypes"`
-}
-
-type resourceTypes struct {
- Name string `json:"name"`
- ShareTypes []string `json:"shareTypes"`
- Protocols resourceTypesProtocols `json:"protocols"`
-}
-
-type resourceTypesProtocols struct {
- Webdav string `json:"webdav"`
-}
-
-type configHandler struct {
- c configData
-}
-
-func (h *configHandler) init(c *config) {
- h.c = c.Config
- if h.c.APIVersion == "" {
- h.c.APIVersion = "1.0-proposal1"
- }
- if h.c.Host == "" {
- h.c.Host = "localhost"
- }
- if h.c.Provider == "" {
- h.c.Provider = "cernbox"
- }
- h.c.Enabled = true
- if len(c.Prefix) > 0 {
- h.c.Endpoint = fmt.Sprintf("https://%s/%s", h.c.Host, c.Prefix)
- } else {
- h.c.Endpoint = fmt.Sprintf("https://%s", h.c.Host)
- }
- h.c.ResourceTypes = []resourceTypes{{
- Name: "file",
- ShareTypes: []string{"user"},
- Protocols: resourceTypesProtocols{
- Webdav: fmt.Sprintf("/%s/ocm_webdav", h.c.Provider),
- },
- }}
-}
-
-// Send sends the configuration to the caller.
-func (h *configHandler) Send(w http.ResponseWriter, r *http.Request) {
- log := appctx.GetLogger(r.Context())
-
- w.Header().Set("Content-Type", "application/json")
- w.WriteHeader(http.StatusOK)
- indentedConf, _ := json.MarshalIndent(h.c, "", " ")
- if _, err := w.Write(indentedConf); err != nil {
- log.Err(err).Msg("Error writing to ResponseWriter")
- }
-}
diff --git a/internal/http/services/ocmd/ocm.go b/internal/http/services/ocmd/ocm.go
index f998db52da..ab178796f6 100644
--- a/internal/http/services/ocmd/ocm.go
+++ b/internal/http/services/ocmd/ocm.go
@@ -34,15 +34,13 @@ func init() {
}
type config struct {
- Prefix string `mapstructure:"prefix"`
- GatewaySvc string `mapstructure:"gatewaysvc"`
- Config configData `mapstructure:"config"`
- ExposeRecipientDisplayName bool `mapstructure:"expose_recipient_display_name"`
+ Prefix string `mapstructure:"prefix"`
+ GatewaySvc string `mapstructure:"gatewaysvc"`
+ ExposeRecipientDisplayName bool `mapstructure:"expose_recipient_display_name"`
}
func (c *config) init() {
c.GatewaySvc = sharedconf.GetGatewaySVC(c.GatewaySvc)
-
if c.Prefix == "" {
c.Prefix = "ocm"
}
@@ -76,12 +74,10 @@ func New(m map[string]interface{}, log *zerolog.Logger) (global.Service, error)
}
func (s *svc) routerInit() error {
- configHandler := new(configHandler)
sharesHandler := new(sharesHandler)
notificationsHandler := new(notificationsHandler)
invitesHandler := new(invitesHandler)
- configHandler.init(s.Conf)
if err := sharesHandler.init(s.Conf); err != nil {
return err
}
@@ -90,11 +86,9 @@ func (s *svc) routerInit() error {
return err
}
- s.router.Get("/ocm-provider", configHandler.Send) // FIXME: where this endpoint is documented?
s.router.Post("/shares", sharesHandler.CreateShare)
s.router.Post("/notifications", notificationsHandler.SendNotification)
s.router.Post("/invite-accepted", invitesHandler.AcceptInvite)
-
return nil
}
@@ -114,7 +108,7 @@ func (s *svc) Unprotected() []string {
func (s *svc) Handler() http.Handler {
return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
log := appctx.GetLogger(r.Context())
- log.Debug().Str("path", r.URL.Path).Msg("ocs routing")
+ log.Debug().Str("path", r.URL.Path).Msg("ocm routing")
// unset raw path, otherwise chi uses it to route and then fails to match percent encoded path segments
r.URL.RawPath = ""
diff --git a/internal/http/services/ocmd/shares.go b/internal/http/services/ocmd/shares.go
index 8ba0861f06..6a491ba974 100644
--- a/internal/http/services/ocmd/shares.go
+++ b/internal/http/services/ocmd/shares.go
@@ -37,6 +37,7 @@ import (
rpc "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
"github.com/cs3org/reva/internal/http/services/reqres"
+ "github.com/cs3org/reva/pkg/appctx"
"github.com/cs3org/reva/pkg/rgrpc/todo/pool"
"github.com/cs3org/reva/pkg/utils"
"github.com/go-playground/validator/v10"
@@ -63,7 +64,7 @@ type createShareRequest struct {
ShareWith string `json:"shareWith" validate:"required"` // identifier of the recipient of the share
Name string `json:"name" validate:"required"` // name of the resource
Description string `json:"description"` // (optional) description of the resource
- ResourceID string `json:"resourceId" validate:"required"` // unique identifier of the resource at provider side
+ ProviderID string `json:"providerId" validate:"required"` // unique identifier of the resource at provider side
Owner string `json:"owner" validate:"required"` // unique identifier of the owner at provider side
Sender string `json:"sender" validate:"required"` // unique indentifier of the user who wants to share the resource at provider side
OwnerDisplayName string `json:"ownerDisplayName"` // display name of the owner of the resource
@@ -78,7 +79,7 @@ type createShareRequest struct {
// synchronization between the two services.
func (h *sharesHandler) CreateShare(w http.ResponseWriter, r *http.Request) {
ctx := r.Context()
-
+ log := appctx.GetLogger(ctx)
req, err := getCreateShareRequest(r)
if err != nil {
reqres.WriteError(w, r, reqres.APIErrorInvalidParameter, err.Error(), nil)
@@ -86,6 +87,7 @@ func (h *sharesHandler) CreateShare(w http.ResponseWriter, r *http.Request) {
}
_, meshProvider, err := getIDAndMeshProvider(req.Sender)
+ log.Debug().Msgf("Determined Mesh Provider '%s' from req.Sender '%s'", meshProvider, req.Sender)
if err != nil {
reqres.WriteError(w, r, reqres.APIErrorInvalidParameter, err.Error(), nil)
return
@@ -150,7 +152,7 @@ func (h *sharesHandler) CreateShare(w http.ResponseWriter, r *http.Request) {
createShareReq := &ocmcore.CreateOCMCoreShareRequest{
Description: req.Description,
Name: req.Name,
- ResourceId: req.ResourceID,
+ ResourceId: req.ProviderID,
Owner: owner,
Sender: sender,
ShareWith: userRes.User.Id,
diff --git a/internal/http/services/ocmprovider/ocmprovider.go b/internal/http/services/ocmprovider/ocmprovider.go
new file mode 100644
index 0000000000..a88f9e52a0
--- /dev/null
+++ b/internal/http/services/ocmprovider/ocmprovider.go
@@ -0,0 +1,156 @@
+// Copyright 2018-2023 CERN
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+// http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+// In applying this license, CERN does not waive the privileges and immunities
+// granted to it by virtue of its status as an Intergovernmental Organization
+// or submit itself to any jurisdiction.
+
+package ocmprovider
+
+import (
+ "encoding/json"
+ "fmt"
+ "net/http"
+
+ "github.com/cs3org/reva/pkg/appctx"
+ "github.com/cs3org/reva/pkg/rhttp/global"
+ "github.com/mitchellh/mapstructure"
+ "github.com/rs/zerolog"
+)
+
+func init() {
+ global.Register("ocmprovider", New)
+}
+
+type config struct {
+ OCMPrefix string `mapstructure:"ocm_prefix" docs:"ocm;The prefix URL where the OCM API is served."`
+ Endpoint string `mapstructure:"endpoint" docs:"This host's URL. If it's not configured, it is assumed OCM is not available."`
+ Provider string `mapstructure:"provider" docs:"reva;A friendly name that defines this service."`
+ WebdavRoot string `mapstructure:"webdav_root" docs:"/remote.php/dav/ocm;The root URL of the WebDAV endpoint to serve OCM shares."`
+ WebappRoot string `mapstructure:"webapp_root" docs:"/external/sciencemesh;The root URL to serve Web apps via OCM."`
+ EnableWebapp bool `mapstructure:"enable_webapp" docs:"false;Whether web apps are enabled in OCM shares."`
+ EnableDatatx bool `mapstructure:"enable_datatx" docs:"false;Whether data transfers are enabled in OCM shares."`
+}
+
+type discoveryData struct {
+ Enabled bool `json:"enabled" xml:"enabled"`
+ APIVersion string `json:"apiVersion" xml:"apiVersion"`
+ Endpoint string `json:"endPoint" xml:"endPoint"`
+ Provider string `json:"provider" xml:"provider"`
+ ResourceTypes []resourceTypes `json:"resourceTypes" xml:"resourceTypes"`
+ Capabilities []string `json:"capabilities" xml:"capabilities"`
+}
+
+type resourceTypes struct {
+ Name string `json:"name"`
+ ShareTypes []string `json:"shareTypes"`
+ Protocols map[string]string `json:"protocols"`
+}
+
+type svc struct {
+ data *discoveryData
+}
+
+func (c *config) init() {
+ if c.OCMPrefix == "" {
+ c.OCMPrefix = "ocm"
+ }
+ if c.Provider == "" {
+ c.Provider = "reva"
+ }
+ if c.WebdavRoot == "" {
+ c.WebdavRoot = "/remote.php/dav/ocm"
+ }
+ if c.WebappRoot == "" {
+ c.WebappRoot = "/external/sciencemesh"
+ }
+}
+
+func (c *config) prepare() *discoveryData {
+ // generates the (static) data structure to be exposed by /ocm-provider
+ d := &discoveryData{}
+ if c.Endpoint == "" {
+ d.Enabled = false
+ d.Endpoint = ""
+ d.APIVersion = "1.1.0"
+ d.Provider = c.Provider
+ d.ResourceTypes = []resourceTypes{{
+ Name: "file",
+ ShareTypes: []string{},
+ Protocols: map[string]string{},
+ }}
+ d.Capabilities = []string{}
+ return d
+ }
+ d.Enabled = true
+ d.APIVersion = "1.1.0"
+ d.Endpoint = fmt.Sprintf("%s/%s", c.Endpoint, c.OCMPrefix)
+ d.Provider = c.Provider
+ rtProtos := map[string]string{}
+ // webdav is always enabled
+ rtProtos["webdav"] = fmt.Sprintf("%s%s", c.Endpoint, c.WebdavRoot)
+ if c.EnableWebapp {
+ rtProtos["webapp"] = fmt.Sprintf("%s%s", c.Endpoint, c.WebappRoot)
+ }
+ if c.EnableDatatx {
+ rtProtos["datatx"] = fmt.Sprintf("%s%s", c.Endpoint, c.WebdavRoot)
+ }
+ d.ResourceTypes = []resourceTypes{{
+ Name: "file", // so far we only support `file`
+ ShareTypes: []string{"user"}, // so far we only support `user`
+ Protocols: rtProtos, // expose the protocols as per configuration
+ }}
+ // for now we hardcode the capabilities, as this is currently only advisory
+ d.Capabilities = []string{"/invite-accepted"}
+ return d
+}
+
+// New returns a new ocmprovider object, that implements
+// the OCM discovery endpoint specified in
+// https://cs3org.github.io/OCM-API/docs.html?repo=OCM-API&user=cs3org#/paths/~1ocm-provider/get
+func New(m map[string]interface{}, log *zerolog.Logger) (global.Service, error) {
+ conf := &config{}
+ if err := mapstructure.Decode(m, conf); err != nil {
+ return nil, err
+ }
+
+ conf.init()
+ return &svc{data: conf.prepare()}, nil
+}
+
+// Close performs cleanup.
+func (s *svc) Close() error {
+ return nil
+}
+
+func (s *svc) Prefix() string {
+ // this is hardcoded as per OCM specifications
+ return "/ocm-provider"
+}
+
+func (s *svc) Unprotected() []string {
+ return []string{"/"}
+}
+
+func (s *svc) Handler() http.Handler {
+ return http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
+ log := appctx.GetLogger(r.Context())
+ w.Header().Set("Content-Type", "application/json")
+ w.WriteHeader(http.StatusOK)
+ indented, _ := json.MarshalIndent(s.data, "", " ")
+ if _, err := w.Write(indented); err != nil {
+ log.Err(err).Msg("Error writing to ResponseWriter")
+ }
+ })
+}
diff --git a/internal/http/services/owncloud/ocdav/dav.go b/internal/http/services/owncloud/ocdav/dav.go
index 54589c322c..ca42666023 100644
--- a/internal/http/services/owncloud/ocdav/dav.go
+++ b/internal/http/services/owncloud/ocdav/dav.go
@@ -21,6 +21,7 @@ package ocdav
import (
"context"
"net/http"
+ "net/url"
"path"
"strings"
@@ -187,7 +188,20 @@ func (h *DavHandler) Handler(s *svc) http.Handler {
return
}
- token, _ := router.ShiftPath(r.URL.Path)
+ // OC10 and Nextcloud (OCM 1.0) are using basic auth for carrying the
+ // shared token.
+ var token string
+ username, _, ok := r.BasicAuth()
+ if ok {
+ // OCM 1.0
+ token = username
+ r.URL.Path, _ = url.JoinPath("/", token, r.URL.Path)
+ ctx = context.WithValue(ctx, ctxOCM10, true)
+ } else {
+ token, _ = router.ShiftPath(r.URL.Path)
+ ctx = context.WithValue(ctx, ctxOCM10, false)
+ }
+
authRes, err := handleOCMAuth(ctx, c, token)
switch {
case err != nil:
diff --git a/internal/http/services/owncloud/ocdav/ocdav.go b/internal/http/services/owncloud/ocdav/ocdav.go
index bebcfa25b3..518812da46 100644
--- a/internal/http/services/owncloud/ocdav/ocdav.go
+++ b/internal/http/services/owncloud/ocdav/ocdav.go
@@ -50,6 +50,7 @@ type ctxKey int
const (
ctxKeyBaseURI ctxKey = iota
+ ctxOCM10
)
var (
diff --git a/internal/http/services/owncloud/ocdav/propfind.go b/internal/http/services/owncloud/ocdav/propfind.go
index 1909a77534..fc7e40c356 100644
--- a/internal/http/services/owncloud/ocdav/propfind.go
+++ b/internal/http/services/owncloud/ocdav/propfind.go
@@ -44,6 +44,7 @@ import (
"github.com/cs3org/reva/pkg/appctx"
ctxpkg "github.com/cs3org/reva/pkg/ctx"
"github.com/cs3org/reva/pkg/publicshare"
+ "github.com/cs3org/reva/pkg/rhttp/router"
"github.com/cs3org/reva/pkg/share"
rtrace "github.com/cs3org/reva/pkg/trace"
"github.com/cs3org/reva/pkg/utils"
@@ -516,6 +517,16 @@ func (s *svc) newPropRaw(key, val string) *propertyXML {
}
}
+func supportLegacyOCMAccess(ctx context.Context, md *provider.ResourceInfo) {
+ ocm10, _ := ctx.Value(ctxOCM10).(bool)
+ if ocm10 {
+ // the path is something like //...
+ // we need to strip the token part as this
+ // is passed as username in the basic auth
+ _, md.Path = router.ShiftPath(md.Path)
+ }
+}
+
// mdToPropResponse converts the CS3 metadata into a webdav PropResponse
// ns is the CS3 namespace that needs to be removed from the CS3 path before
// prefixing it with the baseURI.
@@ -525,6 +536,7 @@ func (s *svc) mdToPropResponse(ctx context.Context, pf *propfindXML, md *provide
baseURI := ctx.Value(ctxKeyBaseURI).(string)
+ supportLegacyOCMAccess(ctx, md)
ref := path.Join(baseURI, md.Path)
if md.Type == provider.ResourceType_RESOURCE_TYPE_CONTAINER {
ref += "/"
diff --git a/internal/http/services/sciencemesh/share.go b/internal/http/services/sciencemesh/share.go
index 130cbd0505..ac84dc41ad 100644
--- a/internal/http/services/sciencemesh/share.go
+++ b/internal/http/services/sciencemesh/share.go
@@ -103,6 +103,7 @@ func (h *sharesHandler) CreateShare(w http.ResponseWriter, r *http.Request) {
perm, viewMode := getPermissionsByRole(req.Role)
+ log.Debug().Msg("calling gatewayClient.CreateOCMShare from sciencemesh/share.go")
shareRes, err := h.gatewayClient.CreateOCMShare(ctx, &ocm.CreateOCMShareRequest{
ResourceId: statRes.Info.Id,
Grantee: &providerpb.Grantee{
@@ -120,6 +121,8 @@ func (h *sharesHandler) CreateShare(w http.ResponseWriter, r *http.Request) {
share.NewWebappAccessMethod(viewMode),
},
})
+ log.Debug().Msg("called gatewayClient.CreateOCMShare from sciencemesh/share.go")
+
switch {
case err != nil:
reqres.WriteError(w, r, reqres.APIErrorServerError, "error sending a grpc CreateOCMShare", err)
diff --git a/pkg/cbox/group/rest/rest.go b/pkg/cbox/group/rest/rest.go
index 24d37b9502..e6cd591b78 100644
--- a/pkg/cbox/group/rest/rest.go
+++ b/pkg/cbox/group/rest/rest.go
@@ -21,7 +21,6 @@ package rest
import (
"context"
"fmt"
- "net/url"
"os"
"os/signal"
"strings"
@@ -278,10 +277,7 @@ func (m *manager) GetMembers(ctx context.Context, gid *grouppb.GroupId) ([]*user
return users, nil
}
- url, err := url.JoinPath(m.conf.APIBaseURL, "/api/v1.0/Group", gid.OpaqueId, "/memberidentities/precomputed?limit=10&field=upn&field=primaryAccountEmail&field=displayName&field=uid&field=gid&field=type&field=source")
- if err != nil {
- return nil, err
- }
+ url := fmt.Sprintf("%s/api/v1.0/Group/%s/memberidentities/precomputed?limit=10&field=upn&field=primaryAccountEmail&field=displayName&field=uid&field=gid&field=type&field=source", m.conf.APIBaseURL, gid.OpaqueId)
var r user.IdentitiesResponse
members := []*userpb.UserId{}
diff --git a/pkg/cbox/publicshare/sql/sql.go b/pkg/cbox/publicshare/sql/sql.go
index 84e09a9b39..c0b5266964 100644
--- a/pkg/cbox/publicshare/sql/sql.go
+++ b/pkg/cbox/publicshare/sql/sql.go
@@ -29,6 +29,7 @@ import (
"syscall"
"time"
+ gatewayv1beta1 "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
link "github.com/cs3org/go-cs3apis/cs3/sharing/link/v1beta1"
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
@@ -38,6 +39,7 @@ import (
"github.com/cs3org/reva/pkg/errtypes"
"github.com/cs3org/reva/pkg/publicshare"
"github.com/cs3org/reva/pkg/publicshare/manager/registry"
+ "github.com/cs3org/reva/pkg/rgrpc/todo/pool"
"github.com/cs3org/reva/pkg/sharedconf"
"github.com/cs3org/reva/pkg/utils"
"github.com/mitchellh/mapstructure"
@@ -71,8 +73,9 @@ type config struct {
}
type manager struct {
- c *config
- db *sql.DB
+ c *config
+ db *sql.DB
+ client gatewayv1beta1.GatewayAPIClient
}
func (c *config) init() {
@@ -118,9 +121,15 @@ func New(m map[string]interface{}) (publicshare.Manager, error) {
return nil, err
}
+ gw, err := pool.GetGatewayServiceClient(pool.Endpoint(c.GatewaySvc))
+ if err != nil {
+ return nil, err
+ }
+
mgr := manager{
- c: c,
- db: db,
+ c: c,
+ db: db,
+ client: gw,
}
go mgr.startJanitorRun()
@@ -275,7 +284,11 @@ func (m *manager) getByToken(ctx context.Context, token string, u *user.User) (*
}
return nil, "", err
}
- return conversions.ConvertToCS3PublicShare(s), s.ShareWith, nil
+ share, err := conversions.ConvertToCS3PublicShare(ctx, m.client, s)
+ if err != nil {
+ return nil, "", err
+ }
+ return share, s.ShareWith, nil
}
func (m *manager) getByID(ctx context.Context, id *link.PublicShareId, u *user.User) (*link.PublicShare, string, error) {
@@ -288,7 +301,11 @@ func (m *manager) getByID(ctx context.Context, id *link.PublicShareId, u *user.U
}
return nil, "", err
}
- return conversions.ConvertToCS3PublicShare(s), s.ShareWith, nil
+ share, err := conversions.ConvertToCS3PublicShare(ctx, m.client, s)
+ if err != nil {
+ return nil, "", err
+ }
+ return share, s.ShareWith, nil
}
func (m *manager) GetPublicShare(ctx context.Context, u *user.User, ref *link.PublicShareReference, sign bool) (*link.PublicShare, error) {
@@ -418,13 +435,16 @@ func (m *manager) ListPublicShares(ctx context.Context, u *user.User, filters []
if err := rows.Scan(&s.UIDOwner, &s.UIDInitiator, &s.ShareWith, &s.Prefix, &s.ItemSource, &s.ItemType, &s.Token, &s.Expiration, &s.ShareName, &s.ID, &s.STime, &s.Permissions, &s.Quicklink, &s.Description); err != nil {
continue
}
- cs3Share := conversions.ConvertToCS3PublicShare(s)
+ cs3Share, err := conversions.ConvertToCS3PublicShare(ctx, m.client, s)
+ if err != nil {
+ return nil, err
+ }
if expired(cs3Share) {
_ = m.cleanupExpiredShares()
} else {
if cs3Share.PasswordProtected && sign {
if err := publicshare.AddSignature(cs3Share, s.ShareWith); err != nil {
- return nil, err
+ continue
}
}
shares = append(shares, cs3Share)
@@ -481,7 +501,10 @@ func (m *manager) GetPublicShareByToken(ctx context.Context, token string, auth
}
return nil, err
}
- cs3Share := conversions.ConvertToCS3PublicShare(s)
+ cs3Share, err := conversions.ConvertToCS3PublicShare(ctx, m.client, s)
+ if err != nil {
+ return nil, err
+ }
if expired(cs3Share) {
if err := m.cleanupExpiredShares(); err != nil {
return nil, err
diff --git a/pkg/cbox/share/sql/sql.go b/pkg/cbox/share/sql/sql.go
index 3f344a801f..f9694b1051 100644
--- a/pkg/cbox/share/sql/sql.go
+++ b/pkg/cbox/share/sql/sql.go
@@ -27,6 +27,7 @@ import (
"strings"
"time"
+ gatewayv1beta1 "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
user "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
collaboration "github.com/cs3org/go-cs3apis/cs3/sharing/collaboration/v1beta1"
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
@@ -71,8 +72,9 @@ type config struct {
}
type mgr struct {
- c *config
- db *sql.DB
+ c *config
+ db *sql.DB
+ client gatewayv1beta1.GatewayAPIClient
}
// New returns a new share manager.
@@ -88,9 +90,15 @@ func New(m map[string]interface{}) (share.Manager, error) {
return nil, err
}
+ gw, err := pool.GetGatewayServiceClient(pool.Endpoint(c.GatewaySvc))
+ if err != nil {
+ return nil, err
+ }
+
return &mgr{
- c: c,
- db: db,
+ c: c,
+ db: db,
+ client: gw,
}, nil
}
@@ -189,7 +197,11 @@ func (m *mgr) getByID(ctx context.Context, id *collaboration.ShareId, checkOwner
}
return nil, err
}
- return conversions.ConvertToCS3Share(s), nil
+ share, err := conversions.ConvertToCS3Share(ctx, m.client, s)
+ if err != nil {
+ return nil, err
+ }
+ return share, nil
}
func (m *mgr) getByKey(ctx context.Context, key *collaboration.ShareKey, checkOwner bool) (*collaboration.Share, error) {
@@ -210,7 +222,11 @@ func (m *mgr) getByKey(ctx context.Context, key *collaboration.ShareKey, checkOw
}
return nil, err
}
- return conversions.ConvertToCS3Share(s), nil
+ share, err := conversions.ConvertToCS3Share(ctx, m.client, s)
+ if err != nil {
+ return nil, err
+ }
+ return share, nil
}
func (m *mgr) GetShare(ctx context.Context, ref *collaboration.ShareReference) (*collaboration.Share, error) {
@@ -450,7 +466,11 @@ func (m *mgr) ListShares(ctx context.Context, filters []*collaboration.Filter) (
if err := rows.Scan(&s.UIDOwner, &s.UIDInitiator, &s.ShareWith, &s.Prefix, &s.ItemSource, &s.ItemType, &s.ID, &s.STime, &s.Permissions, &s.ShareType); err != nil {
continue
}
- shares = append(shares, conversions.ConvertToCS3Share(s))
+ share, err := conversions.ConvertToCS3Share(ctx, m.client, s)
+ if err != nil {
+ continue
+ }
+ shares = append(shares, share)
}
if err = rows.Err(); err != nil {
return nil, err
@@ -503,7 +523,11 @@ func (m *mgr) ListReceivedShares(ctx context.Context, filters []*collaboration.F
if err := rows.Scan(&s.UIDOwner, &s.UIDInitiator, &s.ShareWith, &s.Prefix, &s.ItemSource, &s.ItemType, &s.ID, &s.STime, &s.Permissions, &s.ShareType, &s.State); err != nil {
continue
}
- shares = append(shares, conversions.ConvertToCS3ReceivedShare(s))
+ share, err := conversions.ConvertToCS3ReceivedShare(ctx, m.client, s)
+ if err != nil {
+ continue
+ }
+ shares = append(shares, share)
}
if err = rows.Err(); err != nil {
return nil, err
@@ -538,7 +562,11 @@ func (m *mgr) getReceivedByID(ctx context.Context, id *collaboration.ShareId) (*
}
return nil, err
}
- return conversions.ConvertToCS3ReceivedShare(s), nil
+ share, err := conversions.ConvertToCS3ReceivedShare(ctx, m.client, s)
+ if err != nil {
+ return nil, err
+ }
+ return share, nil
}
func (m *mgr) getReceivedByKey(ctx context.Context, key *collaboration.ShareKey) (*collaboration.ReceivedShare, error) {
@@ -569,7 +597,12 @@ func (m *mgr) getReceivedByKey(ctx context.Context, key *collaboration.ShareKey)
}
return nil, err
}
- return conversions.ConvertToCS3ReceivedShare(s), nil
+
+ share, err := conversions.ConvertToCS3ReceivedShare(ctx, m.client, s)
+ if err != nil {
+ return nil, err
+ }
+ return share, nil
}
func (m *mgr) GetReceivedShare(ctx context.Context, ref *collaboration.ShareReference) (*collaboration.ReceivedShare, error) {
diff --git a/pkg/cbox/utils/conversions.go b/pkg/cbox/utils/conversions.go
index 8fee7ac57a..0c3262b5a1 100644
--- a/pkg/cbox/utils/conversions.go
+++ b/pkg/cbox/utils/conversions.go
@@ -19,11 +19,14 @@
package utils
import (
- "strings"
+ "context"
+ "errors"
"time"
+ gatewayv1beta1 "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
grouppb "github.com/cs3org/go-cs3apis/cs3/identity/group/v1beta1"
userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
+ rpcv1beta1 "github.com/cs3org/go-cs3apis/cs3/rpc/v1beta1"
collaboration "github.com/cs3org/go-cs3apis/cs3/sharing/collaboration/v1beta1"
link "github.com/cs3org/go-cs3apis/cs3/sharing/link/v1beta1"
provider "github.com/cs3org/go-cs3apis/cs3/storage/provider/v1beta1"
@@ -70,19 +73,27 @@ func FormatGrantee(g *provider.Grantee) (int, string) {
}
// ExtractGrantee retrieves the CS3API grantee from a formatted string.
-func ExtractGrantee(t int, g string) *provider.Grantee {
+func ExtractGrantee(ctx context.Context, gateway gatewayv1beta1.GatewayAPIClient, t int, g string) (*provider.Grantee, error) {
var grantee provider.Grantee
switch t {
case 0:
grantee.Type = provider.GranteeType_GRANTEE_TYPE_USER
- grantee.Id = &provider.Grantee_UserId{UserId: ExtractUserID(g)}
+ user, err := ExtractUserID(ctx, gateway, g)
+ if err != nil {
+ return nil, err
+ }
+ grantee.Id = &provider.Grantee_UserId{UserId: user}
case 1:
grantee.Type = provider.GranteeType_GRANTEE_TYPE_GROUP
- grantee.Id = &provider.Grantee_GroupId{GroupId: ExtractGroupID(g)}
+ group, err := ExtractGroupID(ctx, gateway, g)
+ if err != nil {
+ return nil, err
+ }
+ grantee.Id = &provider.Grantee_GroupId{GroupId: group}
default:
grantee.Type = provider.GranteeType_GRANTEE_TYPE_INVALID
}
- return &grantee
+ return &grantee, nil
}
// ResourceTypeToItem maps a resource type to a string.
@@ -166,14 +177,18 @@ func FormatUserID(u *userpb.UserId) string {
}
// ExtractUserID retrieves a CS3API user ID from a string.
-func ExtractUserID(u string) *userpb.UserId {
- t := userpb.UserType_USER_TYPE_PRIMARY
- if strings.HasPrefix(u, "guest:") {
- t = userpb.UserType_USER_TYPE_LIGHTWEIGHT
- } else if strings.Contains(u, "@") {
- t = userpb.UserType_USER_TYPE_FEDERATED
+func ExtractUserID(ctx context.Context, gateway gatewayv1beta1.GatewayAPIClient, u string) (*userpb.UserId, error) {
+ userRes, err := gateway.GetUser(ctx, &userpb.GetUserRequest{
+ UserId: &userpb.UserId{OpaqueId: u},
+ })
+ if err != nil {
+ return nil, err
}
- return &userpb.UserId{OpaqueId: u, Type: t}
+ if userRes.Status.Code != rpcv1beta1.Code_CODE_OK {
+ return nil, errors.New(userRes.Status.Message)
+ }
+
+ return userRes.User.Id, nil
}
// FormatGroupID formats a CS3API group ID to a string.
@@ -182,15 +197,37 @@ func FormatGroupID(u *grouppb.GroupId) string {
}
// ExtractGroupID retrieves a CS3API group ID from a string.
-func ExtractGroupID(u string) *grouppb.GroupId {
- return &grouppb.GroupId{OpaqueId: u}
+func ExtractGroupID(ctx context.Context, gateway gatewayv1beta1.GatewayAPIClient, u string) (*grouppb.GroupId, error) {
+ groupRes, err := gateway.GetGroup(ctx, &grouppb.GetGroupRequest{
+ GroupId: &grouppb.GroupId{OpaqueId: u},
+ })
+ if err != nil {
+ return nil, err
+ }
+ if groupRes.Status.Code != rpcv1beta1.Code_CODE_OK {
+ return nil, errors.New(groupRes.Status.Message)
+ }
+ return groupRes.Group.Id, nil
}
// ConvertToCS3Share converts a DBShare to a CS3API collaboration share.
-func ConvertToCS3Share(s DBShare) *collaboration.Share {
+func ConvertToCS3Share(ctx context.Context, gateway gatewayv1beta1.GatewayAPIClient, s DBShare) (*collaboration.Share, error) {
ts := &typespb.Timestamp{
Seconds: uint64(s.STime),
}
+ owner, err := ExtractUserID(ctx, gateway, s.UIDOwner)
+ if err != nil {
+ return nil, err
+ }
+ creator, err := ExtractUserID(ctx, gateway, s.UIDInitiator)
+ if err != nil {
+ return nil, err
+ }
+ grantee, err := ExtractGrantee(ctx, gateway, s.ShareType, s.ShareWith)
+ if err != nil {
+ return nil, err
+ }
+
return &collaboration.Share{
Id: &collaboration.ShareId{
OpaqueId: s.ID,
@@ -201,24 +238,28 @@ func ConvertToCS3Share(s DBShare) *collaboration.Share {
OpaqueId: s.ItemSource,
},
Permissions: &collaboration.SharePermissions{Permissions: IntTosharePerm(s.Permissions, s.ItemType)},
- Grantee: ExtractGrantee(s.ShareType, s.ShareWith),
- Owner: ExtractUserID(s.UIDOwner),
- Creator: ExtractUserID(s.UIDInitiator),
+ Grantee: grantee,
+ Owner: owner,
+ Creator: creator,
Ctime: ts,
Mtime: ts,
- }
+ }, nil
}
// ConvertToCS3ReceivedShare converts a DBShare to a CS3API collaboration received share.
-func ConvertToCS3ReceivedShare(s DBShare) *collaboration.ReceivedShare {
+func ConvertToCS3ReceivedShare(ctx context.Context, gateway gatewayv1beta1.GatewayAPIClient, s DBShare) (*collaboration.ReceivedShare, error) {
+ share, err := ConvertToCS3Share(ctx, gateway, s)
+ if err != nil {
+ return nil, err
+ }
return &collaboration.ReceivedShare{
- Share: ConvertToCS3Share(s),
+ Share: share,
State: IntToShareState(s.State),
- }
+ }, nil
}
// ConvertToCS3PublicShare converts a DBShare to a CS3API public share.
-func ConvertToCS3PublicShare(s DBShare) *link.PublicShare {
+func ConvertToCS3PublicShare(ctx context.Context, gateway gatewayv1beta1.GatewayAPIClient, s DBShare) (*link.PublicShare, error) {
ts := &typespb.Timestamp{
Seconds: uint64(s.STime),
}
@@ -235,6 +276,14 @@ func ConvertToCS3PublicShare(s DBShare) *link.PublicShare {
}
}
}
+ owner, err := ExtractUserID(ctx, gateway, s.UIDOwner)
+ if err != nil {
+ return nil, err
+ }
+ creator, err := ExtractUserID(ctx, gateway, s.UIDInitiator)
+ if err != nil {
+ return nil, err
+ }
return &link.PublicShare{
Id: &link.PublicShareId{
OpaqueId: s.ID,
@@ -244,8 +293,8 @@ func ConvertToCS3PublicShare(s DBShare) *link.PublicShare {
OpaqueId: s.ItemSource,
},
Permissions: &link.PublicSharePermissions{Permissions: IntTosharePerm(s.Permissions, s.ItemType)},
- Owner: ExtractUserID(s.UIDOwner),
- Creator: ExtractUserID(s.UIDInitiator),
+ Owner: owner,
+ Creator: creator,
Token: s.Token,
DisplayName: s.ShareName,
PasswordProtected: pwd,
@@ -254,5 +303,5 @@ func ConvertToCS3PublicShare(s DBShare) *link.PublicShare {
Mtime: ts,
Quicklink: s.Quicklink,
Description: s.Description,
- }
+ }, nil
}
diff --git a/pkg/ocm/client/client.go b/pkg/ocm/client/client.go
index a0a9191412..651129bf5b 100644
--- a/pkg/ocm/client/client.go
+++ b/pkg/ocm/client/client.go
@@ -28,6 +28,7 @@ import (
"time"
"github.com/cs3org/reva/internal/http/services/ocmd"
+ "github.com/cs3org/reva/pkg/appctx"
"github.com/cs3org/reva/pkg/errtypes"
"github.com/cs3org/reva/pkg/rhttp"
"github.com/pkg/errors"
@@ -158,7 +159,7 @@ type NewShareRequest struct {
ShareWith string `json:"shareWith"`
Name string `json:"name"`
Description string `json:"description"`
- ResourceID string `json:"resourceId"`
+ ProviderID string `json:"providerId"`
Owner string `json:"owner"`
Sender string `json:"sender"`
OwnerDisplayName string `json:"ownerDisplayName"`
@@ -195,6 +196,8 @@ func (c *OCMClient) NewShare(ctx context.Context, endpoint string, r *NewShareRe
return nil, err
}
+ log := appctx.GetLogger(ctx)
+ log.Debug().Msgf("Sending OCM /shares POST to %s: %s", url, body)
req, err := http.NewRequestWithContext(ctx, http.MethodPost, url, body)
if err != nil {
return nil, errors.Wrap(err, "error creating request")
@@ -228,3 +231,50 @@ func (c *OCMClient) parseNewShareResponse(r *http.Response) (*NewShareResponse,
}
return nil, errtypes.InternalError(string(body))
}
+
+// Capabilities contains a set of properties exposed by
+// a remote cloud storage.
+type Capabilities struct {
+ Enabled bool `json:"enabled"`
+ APIVersion string `json:"apiVersion"`
+ EndPoint string `json:"endPoint"`
+ Provider string `json:"provider"`
+ ResourceTypes []struct {
+ Name string `json:"name"`
+ ShareTypes []string `json:"shareTypes"`
+ Protocols struct {
+ Webdav *string `json:"webdav"`
+ Webapp *string `json:"webapp"`
+ Datatx *string `json:"datatx"`
+ } `json:"protocols"`
+ } `json:"resourceTypes"`
+ Capabilities []string `json:"capabilities"`
+}
+
+// Discovery returns a number of properties used to discover the capabilities offered by a remote cloud storage.
+// https://cs3org.github.io/OCM-API/docs.html?branch=develop&repo=OCM-API&user=cs3org#/paths/~1ocm-provider/get
+func (c *OCMClient) Discovery(ctx context.Context, endpoint string) (*Capabilities, error) {
+ url, err := url.JoinPath(endpoint, "shares")
+ if err != nil {
+ return nil, err
+ }
+
+ req, err := http.NewRequestWithContext(ctx, http.MethodGet, url, nil)
+ if err != nil {
+ return nil, errors.Wrap(err, "error creating request")
+ }
+ req.Header.Set("Content-Type", "application/json")
+
+ resp, err := c.client.Do(req)
+ if err != nil {
+ return nil, errors.Wrap(err, "error doing request")
+ }
+ defer resp.Body.Close()
+
+ var cap Capabilities
+ if err := json.NewDecoder(resp.Body).Decode(&c); err != nil {
+ return nil, err
+ }
+
+ return &cap, nil
+}
diff --git a/pkg/ocm/invite/repository/sql/sql.go b/pkg/ocm/invite/repository/sql/sql.go
index fe27f2413a..eccfe506a0 100644
--- a/pkg/ocm/invite/repository/sql/sql.go
+++ b/pkg/ocm/invite/repository/sql/sql.go
@@ -24,12 +24,14 @@ import (
"fmt"
"time"
+ gatewayv1beta1 "github.com/cs3org/go-cs3apis/cs3/gateway/v1beta1"
userpb "github.com/cs3org/go-cs3apis/cs3/identity/user/v1beta1"
invitepb "github.com/cs3org/go-cs3apis/cs3/ocm/invite/v1beta1"
types "github.com/cs3org/go-cs3apis/cs3/types/v1beta1"
conversions "github.com/cs3org/reva/pkg/cbox/utils"
"github.com/cs3org/reva/pkg/errtypes"
"github.com/cs3org/reva/pkg/ocm/invite"
+ "github.com/cs3org/reva/pkg/rgrpc/todo/pool"
"github.com/go-sql-driver/mysql"
"github.com/cs3org/reva/pkg/ocm/invite/repository/registry"
@@ -51,8 +53,9 @@ func init() {
}
type mgr struct {
- c *config
- db *sql.DB
+ c *config
+ db *sql.DB
+ client gatewayv1beta1.GatewayAPIClient
}
type config struct {
@@ -88,9 +91,15 @@ func New(c map[string]interface{}) (invite.Repository, error) {
return nil, errors.Wrap(err, "sql: error opening connection to mysql database")
}
+ gw, err := pool.GetGatewayServiceClient(pool.Endpoint(conf.GatewaySvc))
+ if err != nil {
+ return nil, err
+ }
+
mgr := mgr{
- c: conf,
- db: db,
+ c: conf,
+ db: db,
+ client: gw,
}
return &mgr, nil
}
@@ -124,18 +133,22 @@ func (m *mgr) GetToken(ctx context.Context, token string) (*invitepb.InviteToken
}
return nil, err
}
- return convertToInviteToken(tkn), nil
+ return m.convertToInviteToken(ctx, tkn)
}
-func convertToInviteToken(tkn dbToken) *invitepb.InviteToken {
+func (m *mgr) convertToInviteToken(ctx context.Context, tkn dbToken) (*invitepb.InviteToken, error) {
+ user, err := conversions.ExtractUserID(ctx, m.client, tkn.Initiator)
+ if err != nil {
+ return nil, err
+ }
return &invitepb.InviteToken{
Token: tkn.Token,
- UserId: conversions.ExtractUserID(tkn.Initiator),
+ UserId: user,
Expiration: &types.Timestamp{
Seconds: uint64(tkn.Expiration.Unix()),
},
Description: tkn.Description,
- }
+ }, nil
}
func (m *mgr) ListTokens(ctx context.Context, initiator *userpb.UserId) ([]*invitepb.InviteToken, error) {
@@ -152,7 +165,11 @@ func (m *mgr) ListTokens(ctx context.Context, initiator *userpb.UserId) ([]*invi
if err := rows.Scan(&tkn.Token, &tkn.Initiator, &tkn.Expiration, &tkn.Description); err != nil {
continue
}
- tokens = append(tokens, convertToInviteToken(tkn))
+ token, err := m.convertToInviteToken(ctx, tkn)
+ if err != nil {
+ return nil, err
+ }
+ tokens = append(tokens, token)
}
return tokens, nil
diff --git a/pkg/ocm/provider/authorizer/json/json.go b/pkg/ocm/provider/authorizer/json/json.go
index 33d90fa7bb..e4592871c0 100644
--- a/pkg/ocm/provider/authorizer/json/json.go
+++ b/pkg/ocm/provider/authorizer/json/json.go
@@ -28,6 +28,7 @@ import (
"sync"
ocmprovider "github.com/cs3org/go-cs3apis/cs3/ocm/provider/v1beta1"
+ "github.com/cs3org/reva/pkg/appctx"
"github.com/cs3org/reva/pkg/errtypes"
"github.com/cs3org/reva/pkg/ocm/provider"
"github.com/cs3org/reva/pkg/ocm/provider/authorizer/registry"
@@ -114,6 +115,7 @@ func (a *authorizer) GetInfoByDomain(ctx context.Context, domain string) (*ocmpr
}
func (a *authorizer) IsProviderAllowed(ctx context.Context, pi *ocmprovider.ProviderInfo) error {
+ log := appctx.GetLogger(ctx)
var err error
normalizedDomain, err := normalizeDomain(pi.Domain)
if err != nil {
@@ -142,6 +144,7 @@ func (a *authorizer) IsProviderAllowed(ctx context.Context, pi *ocmprovider.Prov
var ocmHost string
for _, p := range a.providers {
+ log.Debug().Msgf("Comparing '%s' to '%s'", p.Domain, normalizedDomain)
if p.Domain == normalizedDomain {
ocmHost, err = a.getOCMHost(p)
if err != nil {
diff --git a/pkg/ocm/share/repository/json/json.go b/pkg/ocm/share/repository/json/json.go
index 109a3d367e..7621830036 100644
--- a/pkg/ocm/share/repository/json/json.go
+++ b/pkg/ocm/share/repository/json/json.go
@@ -379,11 +379,6 @@ func receivedShareEqual(ref *ocm.ShareReference, s *ocm.ReceivedShare) bool {
if ref.GetId().OpaqueId == s.Id.OpaqueId {
return true
}
- } else if ref.GetKey() != nil {
- if (utils.UserEqual(ref.GetKey().Owner, s.Owner) || utils.UserEqual(ref.GetKey().Owner, s.Creator)) &&
- utils.ResourceIDEqual(ref.GetKey().ResourceId, s.ResourceId) && utils.GranteeEqual(ref.GetKey().Grantee, s.Grantee) {
- return true
- }
}
return false
}
diff --git a/pkg/ocm/share/repository/nextcloud/nextcloud.go b/pkg/ocm/share/repository/nextcloud/nextcloud.go
index b1f3dcd9ba..801a75b51f 100644
--- a/pkg/ocm/share/repository/nextcloud/nextcloud.go
+++ b/pkg/ocm/share/repository/nextcloud/nextcloud.go
@@ -78,14 +78,14 @@ type GranteeAltMap struct {
// ShareAltMap is an alternative map to JSON-unmarshal a Share.
type ShareAltMap struct {
- ID *ocm.ShareId `json:"id"`
- ResourceID *provider.ResourceId `json:"resource_id"`
- Permissions *ocm.SharePermissions `json:"permissions"`
- Grantee *GranteeAltMap `json:"grantee"`
- Owner *userpb.UserId `json:"owner"`
- Creator *userpb.UserId `json:"creator"`
- Ctime *typespb.Timestamp `json:"ctime"`
- Mtime *typespb.Timestamp `json:"mtime"`
+ ID *ocm.ShareId `json:"id"`
+ RemoteShareID string `json:"remote_share_id"`
+ Permissions *ocm.SharePermissions `json:"permissions"`
+ Grantee *GranteeAltMap `json:"grantee"`
+ Owner *userpb.UserId `json:"owner"`
+ Creator *userpb.UserId `json:"creator"`
+ Ctime *typespb.Timestamp `json:"ctime"`
+ Mtime *typespb.Timestamp `json:"mtime"`
}
// ReceivedShareAltMap is an alternative map to JSON-unmarshal a ReceivedShare.
@@ -179,8 +179,7 @@ func (sm *Manager) GetShare(ctx context.Context, user *userpb.User, ref *ocm.Sha
return nil, err
}
return &ocm.Share{
- Id: altResult.ID,
- ResourceId: altResult.ResourceID,
+ Id: altResult.ID,
Grantee: &provider.Grantee{
Id: altResult.Grantee.ID,
},
@@ -227,8 +226,7 @@ func (sm *Manager) UpdateShare(ctx context.Context, user *userpb.User, ref *ocm.
return nil, err
}
return &ocm.Share{
- Id: altResult.ID,
- ResourceId: altResult.ResourceID,
+ Id: altResult.ID,
Grantee: &provider.Grantee{
Id: altResult.Grantee.ID,
},
@@ -260,8 +258,7 @@ func (sm *Manager) ListShares(ctx context.Context, user *userpb.User, filters []
var lst = make([]*ocm.Share, 0, len(respArr))
for _, altResult := range respArr {
lst = append(lst, &ocm.Share{
- Id: altResult.ID,
- ResourceId: altResult.ResourceID,
+ Id: altResult.ID,
Grantee: &provider.Grantee{
Id: altResult.Grantee.ID,
},
@@ -312,8 +309,8 @@ func (sm *Manager) ListReceivedShares(ctx context.Context, user *userpb.User) ([
continue
}
res = append(res, &ocm.ReceivedShare{
- Id: altResultShare.ID,
- ResourceId: altResultShare.ResourceID,
+ Id: altResultShare.ID,
+ RemoteShareId: altResultShare.RemoteShareID, // sic, see https://github.com/cs3org/reva/pull/3852#discussion_r1189681465
Grantee: &provider.Grantee{
Id: altResultShare.Grantee.ID,
},
@@ -350,8 +347,8 @@ func (sm *Manager) GetReceivedShare(ctx context.Context, user *userpb.User, ref
}, nil
}
return &ocm.ReceivedShare{
- Id: altResultShare.ID,
- ResourceId: altResultShare.ResourceID,
+ Id: altResultShare.ID,
+ RemoteShareId: altResultShare.RemoteShareID, // sic, see https://github.com/cs3org/reva/pull/3852#discussion_r1189681465
Grantee: &provider.Grantee{
Id: altResultShare.Grantee.ID,
},
@@ -396,8 +393,8 @@ func (sm *Manager) UpdateReceivedShare(ctx context.Context, user *userpb.User, s
}, nil
}
return &ocm.ReceivedShare{
- Id: altResultShare.ID,
- ResourceId: altResultShare.ResourceID,
+ Id: altResultShare.ID,
+ RemoteShareId: altResultShare.RemoteShareID, // sic, see https://github.com/cs3org/reva/pull/3852#discussion_r1189681465
Grantee: &provider.Grantee{
Id: altResultShare.Grantee.ID,
},
diff --git a/pkg/ocm/share/repository/nextcloud/nextcloud_server_mock.go b/pkg/ocm/share/repository/nextcloud/nextcloud_server_mock.go
index 75ccf42d6f..377c6bbc8d 100644
--- a/pkg/ocm/share/repository/nextcloud/nextcloud_server_mock.go
+++ b/pkg/ocm/share/repository/nextcloud/nextcloud_server_mock.go
@@ -51,7 +51,7 @@ var responses = map[string]Response{
`POST /apps/sciencemesh/~tester/api/ocm/ListShares [{"type":4,"Term":{"Creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}}]`: {200, `[{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}}]`, serverStateHome},
`POST /apps/sciencemesh/~tester/api/ocm/ListReceivedShares `: {200, `[{"share":{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2}]`, serverStateHome},
`POST /apps/sciencemesh/~tester/api/ocm/GetReceivedShare {"Spec":{"Id":{"opaque_id":"some-share-id"}}}`: {200, `{"share":{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2}`, serverStateHome},
- `POST /apps/sciencemesh/~tester/api/ocm/UpdateReceivedShare {"received_share":{"id":{},"resource_id":{},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890},"state":2},"field_mask":{"paths":["state"]}}`: {200, `{"share":{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2}`, serverStateHome},
+ `POST /apps/sciencemesh/~tester/api/ocm/UpdateReceivedShare {"received_share":{"id":{},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890},"state":2},"field_mask":{"paths":["state"]}}`: {200, `{"share":{"id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2}`, serverStateHome},
`POST /index.php/apps/sciencemesh/~marie/api/ocm/addReceivedShare {"md":{"opaque_id":"fileid-/some/path"},"g":{"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"permissions":{"permissions":{"get_path":true}}},"provider_domain":"cern.ch","resource_type":"file","provider_id":2,"owner_opaque_id":"einstein","owner_display_name":"Albert Einstein","protocol":{"name":"webdav","options":{"sharedSecret":"secret","permissions":"webdav-property"}}}`: {200, `{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}}`, serverStateHome},
`POST /index.php/apps/sciencemesh/~marie/api/ocm/GetShare {"Spec":{"Id":{"opaque_id":"some-share-id"}}}`: {200, `{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}}`, serverStateHome},
@@ -60,7 +60,7 @@ var responses = map[string]Response{
`POST /index.php/apps/sciencemesh/~marie/api/ocm/ListShares [{"type":4,"Term":{"Creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}}]`: {200, `[{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}}]`, serverStateHome},
`POST /index.php/apps/sciencemesh/~marie/api/ocm/ListReceivedShares `: {200, `[{"share":{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2}]`, serverStateHome},
`POST /index.php/apps/sciencemesh/~marie/api/ocm/GetReceivedShare {"Spec":{"Id":{"opaque_id":"some-share-id"}}}`: {200, `{"share":{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2}`, serverStateHome},
- `POST /index.php/apps/sciencemesh/~marie/api/ocm/UpdateReceivedShare {"received_share":{"share":{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2},"field_mask":{"paths":["state"]}}`: {200, `{"share":{"id":{},"resource_id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2}`, serverStateHome},
+ `POST /index.php/apps/sciencemesh/~marie/api/ocm/UpdateReceivedShare {"received_share":{"share":{"id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2},"field_mask":{"paths":["state"]}}`: {200, `{"share":{"id":{},"permissions":{"permissions":{"add_grant":true,"create_container":true,"delete":true,"get_path":true,"get_quota":true,"initiate_file_download":true,"initiate_file_upload":true,"list_grants":true,"list_container":true,"list_file_versions":true,"list_recycle":true,"move":true,"remove_grant":true,"purge_recycle":true,"restore_file_version":true,"restore_recycle_item":true,"stat":true,"update_grant":true,"deny_grant":true}},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890}},"state":2}`, serverStateHome},
}
// GetNextcloudServerMock returns a handler that pretends to be a remote Nextcloud server.
diff --git a/pkg/ocm/share/repository/nextcloud/nextcloud_test.go b/pkg/ocm/share/repository/nextcloud/nextcloud_test.go
index ec1e764e46..b0934d22ed 100644
--- a/pkg/ocm/share/repository/nextcloud/nextcloud_test.go
+++ b/pkg/ocm/share/repository/nextcloud/nextcloud_test.go
@@ -257,8 +257,7 @@ var _ = Describe("Nextcloud", func() {
})
Expect(err).ToNot(HaveOccurred())
Expect(*share).To(Equal(ocm.Share{
- Id: &ocm.ShareId{},
- ResourceId: &provider.ResourceId{},
+ Id: &ocm.ShareId{},
Grantee: &provider.Grantee{
Id: &provider.Grantee_UserId{
UserId: &userpb.UserId{
@@ -353,8 +352,7 @@ var _ = Describe("Nextcloud", func() {
})
Expect(err).ToNot(HaveOccurred())
Expect(*share).To(Equal(ocm.Share{
- Id: &ocm.ShareId{},
- ResourceId: &provider.ResourceId{},
+ Id: &ocm.ShareId{},
Grantee: &provider.Grantee{
Id: &provider.Grantee_UserId{
UserId: &userpb.UserId{
@@ -414,8 +412,7 @@ var _ = Describe("Nextcloud", func() {
Expect(err).ToNot(HaveOccurred())
Expect(len(shares)).To(Equal(1))
Expect(*shares[0]).To(Equal(ocm.Share{
- Id: &ocm.ShareId{},
- ResourceId: &provider.ResourceId{},
+ Id: &ocm.ShareId{},
Grantee: &provider.Grantee{
Id: &provider.Grantee_UserId{
UserId: &userpb.UserId{
@@ -464,8 +461,8 @@ var _ = Describe("Nextcloud", func() {
Expect(err).ToNot(HaveOccurred())
Expect(len(receivedShares)).To(Equal(1))
Expect(*receivedShares[0]).To(Equal(ocm.ReceivedShare{
- Id: &ocm.ShareId{},
- ResourceId: &provider.ResourceId{},
+ Id: &ocm.ShareId{},
+ RemoteShareId: "",
Grantee: &provider.Grantee{
Id: &provider.Grantee_UserId{
UserId: &userpb.UserId{
@@ -520,8 +517,8 @@ var _ = Describe("Nextcloud", func() {
})
Expect(err).ToNot(HaveOccurred())
Expect(*receivedShare).To(Equal(ocm.ReceivedShare{
- Id: &ocm.ShareId{},
- ResourceId: &provider.ResourceId{},
+ Id: &ocm.ShareId{},
+ RemoteShareId: "",
Grantee: &provider.Grantee{
Id: &provider.Grantee_UserId{
UserId: &userpb.UserId{
@@ -569,8 +566,8 @@ var _ = Describe("Nextcloud", func() {
receivedShare, err := am.UpdateReceivedShare(ctx, user,
&ocm.ReceivedShare{
- Id: &ocm.ShareId{},
- ResourceId: &provider.ResourceId{},
+ Id: &ocm.ShareId{},
+ RemoteShareId: "",
Grantee: &provider.Grantee{
Id: &provider.Grantee_UserId{
UserId: &userpb.UserId{
@@ -611,8 +608,8 @@ var _ = Describe("Nextcloud", func() {
})
Expect(err).ToNot(HaveOccurred())
Expect(*receivedShare).To(Equal(ocm.ReceivedShare{
- Id: &ocm.ShareId{},
- ResourceId: &provider.ResourceId{},
+ Id: &ocm.ShareId{},
+ RemoteShareId: "",
Grantee: &provider.Grantee{
Id: &provider.Grantee_UserId{
UserId: &userpb.UserId{
@@ -648,7 +645,7 @@ var _ = Describe("Nextcloud", func() {
},
State: ocm.ShareState_SHARE_STATE_ACCEPTED,
}))
- checkCalled(called, `POST /apps/sciencemesh/~tester/api/ocm/UpdateReceivedShare {"received_share":{"id":{},"resource_id":{},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890},"state":2},"field_mask":{"paths":["state"]}}`)
+ checkCalled(called, `POST /apps/sciencemesh/~tester/api/ocm/UpdateReceivedShare {"received_share":{"id":{},"grantee":{"Id":{"UserId":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1}}},"owner":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"creator":{"idp":"0.0.0.0:19000","opaque_id":"f7fbf8c8-139b-4376-b307-cf0a8c2d0d9c","type":1},"ctime":{"seconds":1234567890},"mtime":{"seconds":1234567890},"state":2},"field_mask":{"paths":["state"]}}`)
})
})
diff --git a/pkg/ocm/share/repository/sql/conversions.go b/pkg/ocm/share/repository/sql/conversions.go
index b565a09617..cf2149161a 100644
--- a/pkg/ocm/share/repository/sql/conversions.go
+++ b/pkg/ocm/share/repository/sql/conversions.go
@@ -148,19 +148,18 @@ type dbAccessMethod struct {
}
type dbReceivedShare struct {
- ID int
- Name string
- Prefix string
- ItemSource string
- ItemType ItemType
- ShareWith string
- Owner string
- Initiator string
- Ctime int
- Mtime int
- Expiration sql.NullInt64
- Type ShareType
- State ShareState
+ ID int
+ Name string
+ RemoteShareID string
+ ItemType ItemType
+ ShareWith string
+ Owner string
+ Initiator string
+ Ctime int
+ Mtime int
+ Expiration sql.NullInt64
+ Type ShareType
+ State ShareState
}
type dbProtocol struct {
@@ -234,11 +233,8 @@ func convertToCS3OCMReceivedShare(s *dbReceivedShare, p []*ocm.Protocol) *ocm.Re
Id: &ocm.ShareId{
OpaqueId: strconv.Itoa(s.ID),
},
- ResourceId: &provider.ResourceId{
- StorageId: s.Prefix,
- OpaqueId: s.ItemSource,
- },
- Name: s.Name,
+ RemoteShareId: s.RemoteShareID,
+ Name: s.Name,
Grantee: &provider.Grantee{
Type: provider.GranteeType_GRANTEE_TYPE_USER,
Id: &provider.Grantee_UserId{
diff --git a/pkg/ocm/share/repository/sql/sql.go b/pkg/ocm/share/repository/sql/sql.go
index 894ca1d778..ca7e6a9597 100644
--- a/pkg/ocm/share/repository/sql/sql.go
+++ b/pkg/ocm/share/repository/sql/sql.go
@@ -513,8 +513,8 @@ func storeProtocol(tx *sql.Tx, shareID int64, p Protocol) (int64, error) {
// StoreReceivedShare stores a received share.
func (m *mgr) StoreReceivedShare(ctx context.Context, s *ocm.ReceivedShare) (*ocm.ReceivedShare, error) {
if err := transaction(ctx, m.db, func(tx *sql.Tx) error {
- query := "INSERT INTO ocm_received_shares SET name=?,fileid_prefix=?,item_source=?,item_type=?,share_with=?,owner=?,initiator=?,ctime=?,mtime=?,type=?,state=?"
- params := []any{s.Name, s.ResourceId.StorageId, s.ResourceId.OpaqueId, convertFromCS3ResourceType(s.ResourceType), s.Grantee.GetUserId().OpaqueId, formatUserID(s.Owner), formatUserID(s.Creator), s.Ctime.Seconds, s.Mtime.Seconds, convertFromCS3OCMShareType(s.ShareType), convertFromCS3OCMShareState(s.State)}
+ query := "INSERT INTO ocm_received_shares SET name=?,remote_share_id=?,item_type=?,share_with=?,owner=?,initiator=?,ctime=?,mtime=?,type=?,state=?"
+ params := []any{s.Name, s.RemoteShareId, convertFromCS3ResourceType(s.ResourceType), s.Grantee.GetUserId().OpaqueId, formatUserID(s.Owner), formatUserID(s.Creator), s.Ctime.Seconds, s.Mtime.Seconds, convertFromCS3OCMShareType(s.ShareType), convertFromCS3OCMShareState(s.State)}
if s.Expiration != nil {
query += ",expiration=?"
@@ -565,7 +565,7 @@ func (m *mgr) StoreReceivedShare(ctx context.Context, s *ocm.ReceivedShare) (*oc
// ListReceivedShares returns the list of shares the user has access.
func (m *mgr) ListReceivedShares(ctx context.Context, user *userpb.User) ([]*ocm.ReceivedShare, error) {
- query := "SELECT id, name, fileid_prefix, item_source, item_type, share_with, owner, initiator, ctime, mtime, expiration, type, state FROM ocm_received_shares WHERE share_with=?"
+ query := "SELECT id, name, remote_share_id, item_type, share_with, owner, initiator, ctime, mtime, expiration, type, state FROM ocm_received_shares WHERE share_with=?"
rows, err := m.db.QueryContext(ctx, query, user.Id.OpaqueId)
if err != nil {
@@ -576,7 +576,7 @@ func (m *mgr) ListReceivedShares(ctx context.Context, user *userpb.User) ([]*ocm
shares := []*ocm.ReceivedShare{}
var ids []any
for rows.Next() {
- if err := rows.Scan(&s.ID, &s.Name, &s.Prefix, &s.ItemSource, &s.ItemType, &s.ShareWith, &s.Owner, &s.Initiator, &s.Ctime, &s.Mtime, &s.Expiration, &s.Type, &s.State); err != nil {
+ if err := rows.Scan(&s.ID, &s.Name, &s.RemoteShareID, &s.ItemType, &s.ShareWith, &s.Owner, &s.Initiator, &s.Ctime, &s.Mtime, &s.Expiration, &s.Type, &s.State); err != nil {
continue
}
shares = append(shares, convertToCS3OCMReceivedShare(&s, nil))
@@ -633,8 +633,6 @@ func (m *mgr) GetReceivedShare(ctx context.Context, user *userpb.User, ref *ocm.
switch {
case ref.GetId() != nil:
s, err = m.getReceivedByID(ctx, user, ref.GetId())
- case ref.GetKey() != nil:
- s, err = m.getReceivedByKey(ctx, user, ref.GetKey())
default:
err = errtypes.NotFound(ref.String())
}
@@ -643,31 +641,11 @@ func (m *mgr) GetReceivedShare(ctx context.Context, user *userpb.User, ref *ocm.
}
func (m *mgr) getReceivedByID(ctx context.Context, user *userpb.User, id *ocm.ShareId) (*ocm.ReceivedShare, error) {
- query := "SELECT id, name, fileid_prefix, item_source, item_type, share_with, owner, initiator, ctime, mtime, expiration, type, state FROM ocm_received_shares WHERE id=? AND share_with=?"
+ query := "SELECT id, name, remote_share_id, item_type, share_with, owner, initiator, ctime, mtime, expiration, type, state FROM ocm_received_shares WHERE id=? AND share_with=?"
params := []any{id.OpaqueId, user.Id.OpaqueId}
var s dbReceivedShare
- if err := m.db.QueryRowContext(ctx, query, params...).Scan(&s.ID, &s.Name, &s.Prefix, &s.ItemSource, &s.ItemType, &s.ShareWith, &s.Owner, &s.Initiator, &s.Ctime, &s.Mtime, &s.Expiration, &s.Type, &s.State); err != nil {
- if err == sql.ErrNoRows {
- return nil, share.ErrShareNotFound
- }
- return nil, err
- }
-
- p, err := m.getProtocols(ctx, s.ID)
- if err != nil {
- return nil, err
- }
-
- return convertToCS3OCMReceivedShare(&s, p), nil
-}
-
-func (m *mgr) getReceivedByKey(ctx context.Context, user *userpb.User, key *ocm.ShareKey) (*ocm.ReceivedShare, error) {
- query := "SELECT id, name, fileid_prefix, item_source, item_type, share_with, owner, initiator, ctime, mtime, expiration, type, state FROM ocm_received_shares WHERE owner=? AND fileid_prefix=? AND item_source=? AND share_with=?"
- params := []any{formatUserID(key.Owner), key.ResourceId.StorageId, key.ResourceId.OpaqueId, key.Grantee.GetUserId().OpaqueId}
-
- var s dbReceivedShare
- if err := m.db.QueryRowContext(ctx, query, params...).Scan(&s.ID, &s.Name, &s.Prefix, &s.ItemSource, &s.ItemType, &s.ShareWith, &s.Owner, &s.Initiator, &s.Ctime, &s.Mtime, &s.Expiration, &s.Type, &s.State); err != nil {
+ if err := m.db.QueryRowContext(ctx, query, params...).Scan(&s.ID, &s.Name, &s.RemoteShareID, &s.ItemType, &s.ShareWith, &s.Owner, &s.Initiator, &s.Ctime, &s.Mtime, &s.Expiration, &s.Type, &s.State); err != nil {
if err == sql.ErrNoRows {
return nil, share.ErrShareNotFound
}
diff --git a/pkg/ocm/share/repository/sql/sql_test.go b/pkg/ocm/share/repository/sql/sql_test.go
index 4c9e0226d8..846916142e 100644
--- a/pkg/ocm/share/repository/sql/sql_test.go
+++ b/pkg/ocm/share/repository/sql/sql_test.go
@@ -201,8 +201,7 @@ func createReceivedShareTables(ctx *sql.Context, initData []*ocm.ReceivedShare)
tableShares := memory.NewTable(ocmReceivedShareTable, sql.NewPrimaryKeySchema(sql.Schema{
{Name: "id", Type: sql.Int64, Nullable: false, Source: ocmReceivedShareTable, PrimaryKey: true, AutoIncrement: true},
{Name: "name", Type: sql.Text, Nullable: false, Source: ocmReceivedShareTable},
- {Name: "fileid_prefix", Type: sql.Text, Nullable: false, Source: ocmReceivedShareTable},
- {Name: "item_source", Type: sql.Text, Nullable: false, Source: ocmReceivedShareTable},
+ {Name: "remote_share_id", Type: sql.Text, Nullable: false, Source: ocmReceivedShareTable},
{Name: "item_type", Type: sql.Int8, Nullable: false, Source: ocmReceivedShareTable},
{Name: "share_with", Type: sql.Text, Nullable: false, Source: ocmReceivedShareTable},
{Name: "owner", Type: sql.Text, Nullable: false, Source: ocmReceivedShareTable},
@@ -268,7 +267,7 @@ func createReceivedShareTables(ctx *sql.Context, initData []*ocm.ReceivedShare)
expiration = share.Expiration.Seconds
}
- must(tableShares.Insert(ctx, sql.NewRow(mustInt(share.Id.OpaqueId), share.Name, share.ResourceId.StorageId, share.ResourceId.OpaqueId, int8(convertFromCS3ResourceType(share.ResourceType)), share.Grantee.GetUserId().OpaqueId, fmt.Sprintf("%s@%s", share.Owner.OpaqueId, share.Owner.Idp), fmt.Sprintf("%s@%s", share.Creator.OpaqueId, share.Creator.Idp), share.Ctime.Seconds, share.Mtime.Seconds, expiration, int8(convertFromCS3OCMShareType(share.ShareType)), int8(convertFromCS3OCMShareState(share.State)))))
+ must(tableShares.Insert(ctx, sql.NewRow(mustInt(share.Id.OpaqueId), share.Name, share.RemoteShareId, int8(convertFromCS3ResourceType(share.ResourceType)), share.Grantee.GetUserId().OpaqueId, fmt.Sprintf("%s@%s", share.Owner.OpaqueId, share.Owner.Idp), fmt.Sprintf("%s@%s", share.Creator.OpaqueId, share.Creator.Idp), share.Ctime.Seconds, share.Mtime.Seconds, expiration, int8(convertFromCS3OCMShareType(share.ShareType)), int8(convertFromCS3OCMShareState(share.State)))))
for _, p := range share.Protocols {
i := id()
@@ -1283,17 +1282,17 @@ func TestGetReceivedShare(t *testing.T) {
description: "query by id",
shares: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1304,70 +1303,18 @@ func TestGetReceivedShare(t *testing.T) {
query: &ocm.ShareReference{Spec: &ocm.ShareReference_Id{Id: &ocm.ShareId{OpaqueId: "1"}}},
user: &userpb.User{Id: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}},
expected: &ocm.ReceivedShare{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
- Expiration: &typesv1beta1.Timestamp{},
- Protocols: []*ocm.Protocol{
- share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
- Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
- }),
- },
- },
- },
- {
- description: "query by key",
- shares: []*ocm.ReceivedShare{
- {
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
- Protocols: []*ocm.Protocol{
- share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
- Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
- }),
- },
- },
- },
- query: &ocm.ShareReference{
- Spec: &ocm.ShareReference_Key{
- Key: &ocm.ShareKey{
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- },
- },
- },
- user: &userpb.User{Id: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}},
- expected: &ocm.ReceivedShare{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
- Expiration: &typesv1beta1.Timestamp{},
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Expiration: &typesv1beta1.Timestamp{},
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1375,55 +1322,21 @@ func TestGetReceivedShare(t *testing.T) {
},
},
},
- {
- description: "query by key",
- shares: []*ocm.ReceivedShare{
- {
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
- Protocols: []*ocm.Protocol{
- share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
- Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
- }),
- },
- },
- },
- query: &ocm.ShareReference{
- Spec: &ocm.ShareReference_Key{
- Key: &ocm.ShareKey{
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "marie"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- },
- },
- },
- user: &userpb.User{Id: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}},
- err: share.ErrShareNotFound,
- },
{
description: "query by id - different user",
shares: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1439,17 +1352,17 @@ func TestGetReceivedShare(t *testing.T) {
description: "all protocols",
shares: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1462,18 +1375,18 @@ func TestGetReceivedShare(t *testing.T) {
query: &ocm.ShareReference{Spec: &ocm.ShareReference_Id{Id: &ocm.ShareId{OpaqueId: "1"}}},
user: &userpb.User{Id: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}},
expected: &ocm.ReceivedShare{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
- Expiration: &typesv1beta1.Timestamp{},
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
+ Expiration: &typesv1beta1.Timestamp{},
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1534,17 +1447,17 @@ func TestListReceviedShares(t *testing.T) {
description: "share belong to user",
shares: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1557,18 +1470,18 @@ func TestListReceviedShares(t *testing.T) {
user: &userpb.User{Id: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}},
expected: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
- Expiration: &typesv1beta1.Timestamp{},
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Expiration: &typesv1beta1.Timestamp{},
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1583,17 +1496,17 @@ func TestListReceviedShares(t *testing.T) {
description: "all shares belong to user",
shares: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1603,17 +1516,17 @@ func TestListReceviedShares(t *testing.T) {
},
},
{
- Id: &ocm.ShareId{OpaqueId: "2"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Id: &ocm.ShareId{OpaqueId: "2"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
Protocols: []*ocm.Protocol{
share.NewWebappProtocol("https://cernbox.cern.ch/ocm/54321", appprovider.ViewMode_VIEW_MODE_READ_ONLY),
},
@@ -1622,18 +1535,18 @@ func TestListReceviedShares(t *testing.T) {
user: &userpb.User{Id: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}},
expected: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
- Expiration: &typesv1beta1.Timestamp{},
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
+ Expiration: &typesv1beta1.Timestamp{},
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1643,18 +1556,18 @@ func TestListReceviedShares(t *testing.T) {
},
},
{
- Id: &ocm.ShareId{OpaqueId: "2"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
- Expiration: &typesv1beta1.Timestamp{},
+ Id: &ocm.ShareId{OpaqueId: "2"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Expiration: &typesv1beta1.Timestamp{},
Protocols: []*ocm.Protocol{
share.NewWebappProtocol("https://cernbox.cern.ch/ocm/54321", appprovider.ViewMode_VIEW_MODE_READ_ONLY),
},
@@ -1665,17 +1578,17 @@ func TestListReceviedShares(t *testing.T) {
description: "select share by user",
shares: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1685,17 +1598,17 @@ func TestListReceviedShares(t *testing.T) {
},
},
{
- Id: &ocm.ShareId{OpaqueId: "2"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "einstein"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Id: &ocm.ShareId{OpaqueId: "2"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "einstein"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "richard"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
Protocols: []*ocm.Protocol{
share.NewWebappProtocol("https://cernbox.cern.ch/ocm/54321", appprovider.ViewMode_VIEW_MODE_READ_WRITE),
},
@@ -1704,18 +1617,18 @@ func TestListReceviedShares(t *testing.T) {
user: &userpb.User{Id: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}},
expected: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
- Expiration: &typesv1beta1.Timestamp{},
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein", Type: userpb.UserType_USER_TYPE_FEDERATED},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ Expiration: &typesv1beta1.Timestamp{},
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1786,16 +1699,16 @@ func TestStoreReceivedShare(t *testing.T) {
description: "empty table",
shares: []*ocm.ReceivedShare{},
toStore: &ocm.ReceivedShare{
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1803,7 +1716,7 @@ func TestStoreReceivedShare(t *testing.T) {
},
},
expected: storeReceivedShareExpected{
- shares: []sql.Row{{int64(1), "file-name", "storage", "opaque-id", int8(1), "marie", "einstein@cernbox", "einstein@cernbox", uint64(1670859468), uint64(1670859468), nil, int8(ShareTypeUser), int8(ShareStateAccepted)}},
+ shares: []sql.Row{{int64(1), "file-name", "1-remote", int8(1), "marie", "einstein@cernbox", "einstein@cernbox", uint64(1670859468), uint64(1670859468), nil, int8(ShareTypeUser), int8(ShareStateAccepted)}},
protocols: []sql.Row{{int64(1), int64(1), int8(0)}},
webdav: []sql.Row{{int64(1), "webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", int64(15)}},
webapp: []sql.Row{},
@@ -1814,17 +1727,17 @@ func TestStoreReceivedShare(t *testing.T) {
description: "non empty table",
shares: []*ocm.ReceivedShare{
{
- Id: &ocm.ShareId{OpaqueId: "1"},
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "opaque-id"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_ACCEPTED,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
+ Id: &ocm.ShareId{OpaqueId: "1"},
+ RemoteShareId: "1-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "marie"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "einstein"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_ACCEPTED,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_FILE,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1833,16 +1746,16 @@ func TestStoreReceivedShare(t *testing.T) {
},
},
toStore: &ocm.ReceivedShare{
- ResourceId: &providerv1beta1.ResourceId{StorageId: "storage", OpaqueId: "new-resource"},
- Name: "file-name",
- Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "richard"}}},
- Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "marie"},
- Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "marie"},
- Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
- ShareType: ocm.ShareType_SHARE_TYPE_USER,
- State: ocm.ShareState_SHARE_STATE_PENDING,
- ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
+ RemoteShareId: "2-remote",
+ Name: "file-name",
+ Grantee: &providerv1beta1.Grantee{Type: providerv1beta1.GranteeType_GRANTEE_TYPE_USER, Id: &providerv1beta1.Grantee_UserId{UserId: &userpb.UserId{Idp: "cesnet", OpaqueId: "richard"}}},
+ Owner: &userpb.UserId{Idp: "cernbox", OpaqueId: "marie"},
+ Creator: &userpb.UserId{Idp: "cernbox", OpaqueId: "marie"},
+ Ctime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ Mtime: &typesv1beta1.Timestamp{Seconds: 1670859468},
+ ShareType: ocm.ShareType_SHARE_TYPE_USER,
+ State: ocm.ShareState_SHARE_STATE_PENDING,
+ ResourceType: providerv1beta1.ResourceType_RESOURCE_TYPE_CONTAINER,
Protocols: []*ocm.Protocol{
share.NewWebDAVProtocol("webdav+https//cernbox.cern.ch/dav/ocm/1", "secret", &ocm.SharePermissions{
Permissions: conversions.NewEditorRole().CS3ResourcePermissions(),
@@ -1853,8 +1766,8 @@ func TestStoreReceivedShare(t *testing.T) {
},
expected: storeReceivedShareExpected{
shares: []sql.Row{
- {int64(1), "file-name", "storage", "opaque-id", int8(0), "marie", "einstein@cernbox", "einstein@cernbox", uint64(1670859468), uint64(1670859468), uint64(0), int8(ShareTypeUser), int8(ShareStateAccepted)},
- {int64(2), "file-name", "storage", "new-resource", int8(1), "richard", "marie@cernbox", "marie@cernbox", uint64(1670859468), uint64(1670859468), nil, int8(ShareTypeUser), int8(ShareStatePending)},
+ {int64(1), "file-name", "1-remote", int8(0), "marie", "einstein@cernbox", "einstein@cernbox", uint64(1670859468), uint64(1670859468), uint64(0), int8(ShareTypeUser), int8(ShareStateAccepted)},
+ {int64(2), "file-name", "2-remote", int8(1), "richard", "marie@cernbox", "marie@cernbox", uint64(1670859468), uint64(1670859468), nil, int8(ShareTypeUser), int8(ShareStatePending)},
},
protocols: []sql.Row{
{int64(1), int64(1), int8(WebDAVProtocol)},
diff --git a/tests/acceptance/expected-failures-on-EOS-storage.md b/tests/acceptance/expected-failures-on-EOS-storage.md
index 045f484cdc..c60cf6b12a 100644
--- a/tests/acceptance/expected-failures-on-EOS-storage.md
+++ b/tests/acceptance/expected-failures-on-EOS-storage.md
@@ -23,8 +23,8 @@ The expected failures in this file are from features in the owncloud/ocis repo.
- [coreApiMain/checksums.feature:158](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L158)
- [coreApiMain/checksums.feature:174](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L174)
- [coreApiMain/checksums.feature:192](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L192)
-- [coreApiMain/checksums.feature:217](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L217)
-- [coreApiMain/checksums.feature:218](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L218)
+- [coreApiMain/checksums.feature:209](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L209)
+- [coreApiMain/checksums.feature:210](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L210)
- [coreApiMain/checksums.feature:239](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L239)
- [coreApiMain/checksums.feature:240](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L240)
- [coreApiMain/checksums.feature:258](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L258)
@@ -42,7 +42,7 @@ The expected failures in this file are from features in the owncloud/ocis repo.
- [coreApiMain/checksums.feature:347](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L347)
### [no robots.txt available](https://github.com/owncloud/ocis/issues/1314)
-- [coreApiMain/main.feature:5](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/main.feature#L5)
+- [coreApiMain/main.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/main.feature#L8)
### [quota query](https://github.com/owncloud/ocis/issues/1313)
- [coreApiMain/quota.feature:9](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/quota.feature#L9)
@@ -422,7 +422,7 @@ The expected failures in this file are from features in the owncloud/ocis repo.
- [coreApiSharePublicLink1/createPublicLinkShare.feature:553](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L553)
- [coreApiSharePublicLink1/createPublicLinkShare.feature:554](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L554)
- [coreApiSharePublicLink1/createPublicLinkShare.feature:590](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L590)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:403](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L403)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:402](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L402)
- [coreApiSharePublicLink1/createPublicLinkShare.feature:714](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L714)
- [coreApiSharePublicLink1/createPublicLinkShare.feature:715](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L715)
- [coreApiSharePublicLink2/uploadToPublicLinkShare.feature:180](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink2/uploadToPublicLinkShare.feature#L180)
@@ -677,7 +677,7 @@ The expected failures in this file are from features in the owncloud/ocis repo.
- [coreApiWebdavProperties1/copyFile.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L131)
- [coreApiWebdavProperties1/copyFile.feature:166](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L166)
- [coreApiWebdavProperties1/copyFile.feature:167](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L167)
-- [coreApiWebdavProperties1/copyFile.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L203)
+- [coreApiWebdavProperties1/copyFile.feature:202](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L202)
- [coreApiWebdavProperties1/copyFile.feature:204](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L204)
- [coreApiWebdavProperties1/copyFile.feature:351](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L351)
- [coreApiWebdavProperties1/copyFile.feature:352](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L352)
@@ -937,7 +937,7 @@ Not everything needs to be implemented for ocis. While the oc10 testsuite covers
- [coreApiWebdavMove2/moveFileToExcludedDirectory.feature:67](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveFileToExcludedDirectory.feature#L67)
### [blacklisted filenames like .htaccess & file.parts can be uploaded](https://github.com/owncloud/ocis/issues/1345)
-- [coreApiWebdavProperties1/copyFile.feature:103](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L103)
+- [coreApiWebdavProperties1/copyFile.feature:102](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L102)
- [coreApiWebdavProperties1/copyFile.feature:104](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L104)
### [blacklisted filenames like .htaccess & file.parts can be uploaded](https://github.com/owncloud/ocis/issues/1345)
diff --git a/tests/acceptance/expected-failures-on-OCIS-storage.md b/tests/acceptance/expected-failures-on-OCIS-storage.md
index a38d5ffbcb..42a67ce9e2 100644
--- a/tests/acceptance/expected-failures-on-OCIS-storage.md
+++ b/tests/acceptance/expected-failures-on-OCIS-storage.md
@@ -7,29 +7,29 @@ Basic file management like up and download, move, copy, properties, quota, trash
#### [invalid webdav responses for unauthorized requests.](https://github.com/owncloud/product/issues/273)
These tests succeed when running against ocis because there we handle the relevant authentication in the proxy.
-- [coreApiTrashbin/trashbinFilesFolders.feature:282](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L282)
-- [coreApiTrashbin/trashbinFilesFolders.feature:301](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L301)
+- [coreApiTrashbin/trashbinFilesFolders.feature:235](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L235)
+- [coreApiTrashbin/trashbinFilesFolders.feature:268](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L268)
#### [Getting information about a folder overwritten by a file gives 500 error instead of 404](https://github.com/owncloud/ocis/issues/1239)
These tests are about overwriting files or folders in the `Shares` folder of a user.
-- [coreApiWebdavProperties1/copyFile.feature:274](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L274)
- [coreApiWebdavProperties1/copyFile.feature:273](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L273)
-- [coreApiWebdavProperties1/copyFile.feature:292](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L292)
+- [coreApiWebdavProperties1/copyFile.feature:272](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L272)
- [coreApiWebdavProperties1/copyFile.feature:291](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L291)
-- [coreApiWebdavProperties1/copyFile.feature:315](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L315)
+- [coreApiWebdavProperties1/copyFile.feature:290](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L290)
- [coreApiWebdavProperties1/copyFile.feature:314](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L314)
-- [coreApiWebdavProperties1/copyFile.feature:340](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L340)
+- [coreApiWebdavProperties1/copyFile.feature:313](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L313)
- [coreApiWebdavProperties1/copyFile.feature:339](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L339)
-- [coreApiWebdavProperties1/copyFile.feature:364](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L364)
+- [coreApiWebdavProperties1/copyFile.feature:338](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L338)
- [coreApiWebdavProperties1/copyFile.feature:363](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L363)
-- [coreApiWebdavProperties1/copyFile.feature:388](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L388)
+- [coreApiWebdavProperties1/copyFile.feature:362](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L362)
- [coreApiWebdavProperties1/copyFile.feature:387](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L387)
-- [coreApiWebdavProperties1/copyFile.feature:467](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L467)
-- [coreApiWebdavProperties1/copyFile.feature:495](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L495)
+- [coreApiWebdavProperties1/copyFile.feature:386](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L386)
+- [coreApiWebdavProperties1/copyFile.feature:466](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L466)
- [coreApiWebdavProperties1/copyFile.feature:494](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L494)
-- [coreApiWebdavProperties1/copyFile.feature:522](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L522)
+- [coreApiWebdavProperties1/copyFile.feature:493](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L493)
- [coreApiWebdavProperties1/copyFile.feature:521](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L521)
-- [coreApiWebdavProperties1/copyFile.feature:549](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L549)
+- [coreApiWebdavProperties1/copyFile.feature:520](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L520)
+- [coreApiWebdavProperties1/copyFile.feature:548](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L548)
#### [Custom dav properties with namespaces are rendered incorrectly](https://github.com/owncloud/ocis/issues/2140)
_ocdav: double check the webdav property parsing when custom namespaces are used_
@@ -40,15 +40,15 @@ _ocdav: double check the webdav property parsing when custom namespaces are used
#### [Cannot set custom webDav properties](https://github.com/owncloud/product/issues/264)
- [coreApiWebdavProperties2/getFileProperties.feature:341](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L341)
-- [coreApiWebdavProperties2/getFileProperties.feature:346](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L346)
-- [coreApiWebdavProperties2/getFileProperties.feature:381](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L381)
-- [coreApiWebdavProperties2/getFileProperties.feature:386](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L386)
+- [coreApiWebdavProperties2/getFileProperties.feature:342](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L342)
+- [coreApiWebdavProperties2/getFileProperties.feature:377](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L377)
+- [coreApiWebdavProperties2/getFileProperties.feature:378](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L378)
### Sync
Synchronization features like etag propagation, setting mtime and locking files
#### [Uploading an old method chunked file with checksum should fail using new DAV path](https://github.com/owncloud/ocis/issues/2323)
-- [coreApiMain/checksums.feature:266](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L266)
+- [coreApiMain/checksums.feature:261](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L261)
#### [Webdav LOCK operations](https://github.com/owncloud/ocis/issues/1284)
- [coreApiWebdavLocks/exclusiveLocks.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks/exclusiveLocks.feature#L22)
@@ -81,14 +81,14 @@ Synchronization features like etag propagation, setting mtime and locking files
- [coreApiWebdavLocks2/independentLocks.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocks.feature#L56)
- [coreApiWebdavLocks2/independentLocks.feature:57](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocks.feature#L57)
- [coreApiWebdavLocks2/independentLocks.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocks.feature#L58)
+- [coreApiWebdavLocks2/independentLocksShareToShares.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L29)
- [coreApiWebdavLocks2/independentLocksShareToShares.feature:30](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L30)
- [coreApiWebdavLocks2/independentLocksShareToShares.feature:31](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L31)
-- [coreApiWebdavLocks2/independentLocksShareToShares.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L32)
-- [coreApiWebdavLocks2/independentLocksShareToShares.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L29)
+- [coreApiWebdavLocks2/independentLocksShareToShares.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L28)
+- [coreApiWebdavLocks2/independentLocksShareToShares.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L58)
- [coreApiWebdavLocks2/independentLocksShareToShares.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L59)
- [coreApiWebdavLocks2/independentLocksShareToShares.feature:60](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L60)
-- [coreApiWebdavLocks2/independentLocksShareToShares.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L61)
-- [coreApiWebdavLocks2/independentLocksShareToShares.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L58)
+- [coreApiWebdavLocks2/independentLocksShareToShares.feature:57](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L57)
- [coreApiWebdavLocksUnlock/unlock.feature:20](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L20)
- [coreApiWebdavLocksUnlock/unlock.feature:21](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L21)
- [coreApiWebdavLocksUnlock/unlock.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L40)
@@ -97,106 +97,109 @@ Synchronization features like etag propagation, setting mtime and locking files
- [coreApiWebdavLocksUnlock/unlock.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L64)
- [coreApiWebdavLocksUnlock/unlock.feature:65](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L65)
- [coreApiWebdavLocksUnlock/unlock.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L66)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L26)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L27)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L28)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L29)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L26)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:25](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L25)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L50)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:51](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L51)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:52](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L52)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L53)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L50)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:49](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L49)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:74](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L74)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:75](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L75)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:76](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L76)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:77](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L77)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:74](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L74)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:73](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L73)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L98)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L99)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:100](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L100)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:101](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L101)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L98)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:97](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L97)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L122)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L123)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L124)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:125](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L125)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L122)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L121)
### Share
File and sync features in a shared scenario
### [Different response containing exact and non exact match in response of getting sharees](https://github.com/owncloud/ocis/issues/2376)
-- [coreApiSharees/sharees.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L98)
-- [coreApiSharees/sharees.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L99)
-- [coreApiSharees/sharees.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L118)
-- [coreApiSharees/sharees.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L119)
-- [coreApiSharees/sharees.feature:138](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L138)
-- [coreApiSharees/sharees.feature:139](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L139)
-- [coreApiSharees/sharees.feature:158](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L158)
-- [coreApiSharees/sharees.feature:159](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L159)
-- [coreApiSharees/sharees.feature:178](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L178)
-- [coreApiSharees/sharees.feature:179](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L179)
+- [coreApiSharees/sharees.feature:100](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L100)
+- [coreApiSharees/sharees.feature:101](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L101)
+- [coreApiSharees/sharees.feature:120](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L120)
+- [coreApiSharees/sharees.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L121)
+- [coreApiSharees/sharees.feature:140](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L140)
+- [coreApiSharees/sharees.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L141)
+- [coreApiSharees/sharees.feature:160](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L160)
+- [coreApiSharees/sharees.feature:161](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L161)
+- [coreApiSharees/sharees.feature:180](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L180)
+- [coreApiSharees/sharees.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L181)
#### [accepting matching name shared resources from different users/groups sets no serial identifiers on the resource name for the receiver](https://github.com/owncloud/ocis/issues/4289)
-- [coreApiShareManagementToShares/acceptShares.feature:285](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L285)
-- [coreApiShareManagementToShares/acceptShares.feature:315](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L315)
+- [coreApiShareManagementToShares/acceptShares.feature:238](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L238)
+- [coreApiShareManagementToShares/acceptShares.feature:260](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L260)
#### [Getting content of a shared file with same name returns 500](https://github.com/owncloud/ocis/issues/3880)
-- [coreApiShareManagementToShares/acceptShares.feature:494](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L494)
-- [coreApiShareManagementToShares/acceptShares.feature:559](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L559)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:128](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L128)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:129](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L129)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:163](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L163)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:164](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L164)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L37)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:38](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L38)
+- [coreApiShareManagementToShares/acceptShares.feature:459](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L459)
+- [coreApiShareManagementToShares/acceptShares.feature:524](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L524)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L131)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:130](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L130)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:166](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L166)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:165](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L165)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L40)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:39](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L39)
#### [different webdav permissions in ocis](https://github.com/owncloud/ocis/issues/4929)
-- [coreApiShareManagementToShares/mergeShare.feature:112](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L112)
+- [coreApiShareManagementToShares/mergeShare.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L98)
#### [file_target of a auto-renamed file is not correct directly after sharing](https://github.com/owncloud/ocis/issues/32322)
-- [coreApiShareManagementToShares/mergeShare.feature:115](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L115)
+- [coreApiShareManagementToShares/mergeShare.feature:111](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L111)
#### [[OCIS-storage] not possible to move file into a received folder](https://github.com/owncloud/ocis/issues/764)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:532](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L532)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:531](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L531)
#### [File deletion using dav gives unique string in filename in the trashbin](https://github.com/owncloud/product/issues/178)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L62)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:76](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L76)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L64)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:78](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L78)
cannot share a folder with create permission
#### [Listing shares via ocs API does not show path for parent folders](https://github.com/owncloud/ocis/issues/1231)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:129](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L129)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L142)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:177](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L177)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:178](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L178)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L131)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L144)
- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:179](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L179)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L176)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:196](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L196)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:197](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L197)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:180](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L180)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:178](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L178)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L181)
- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:198](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L198)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L195)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:199](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L199)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:197](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L197)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:200](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L200)
+- [coreApiShareOperationsToShares1/gettingShares.feature:189](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L189)
+- [coreApiShareOperationsToShares1/gettingShares.feature:190](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L190)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L37)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:38](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L38)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:327](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L327)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:328](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L328)
#### [OCS error message for attempting to access share via share id as an unauthorized user is not informative](https://github.com/owncloud/ocis/issues/1233)
-- [coreApiShareOperationsToShares1/gettingShares.feature:151](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L151)
-- [coreApiShareOperationsToShares1/gettingShares.feature:150](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L150)
+- [coreApiShareOperationsToShares1/gettingShares.feature:152](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L152)
+- [coreApiShareOperationsToShares1/gettingShares.feature:153](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L153)
-#### [Listing shares via ocs API does not show path for parent folders](https://github.com/owncloud/ocis/issues/1231)
-- [coreApiShareOperationsToShares1/gettingShares.feature:188](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L188)
-- [coreApiShareOperationsToShares1/gettingShares.feature:187](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L187)
#### [Public link enforce permissions](https://github.com/owncloud/ocis/issues/1269)
-- [coreApiSharePublicLink1/accessToPublicLinkShare.feature:10](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature#L10)
-- [coreApiSharePublicLink1/accessToPublicLinkShare.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature#L29)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:167](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L167)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:168](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L168)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:343](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L343)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:353](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L353)
+- [coreApiSharePublicLink1/accessToPublicLinkShare.feature:13](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature#L13)
+- [coreApiSharePublicLink1/accessToPublicLinkShare.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature#L32)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:170](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L170)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:171](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L171)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:345](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L345)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:355](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L355)
#### [Ability to return error messages in Webdav response bodies](https://github.com/owncloud/ocis/issues/1293)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:68](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L68)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:69](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L69)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:71](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L71)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:72](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L72)
#### [copying a folder within a public link folder to folder with same name as an already existing file overwrites the parent file](https://github.com/owncloud/ocis/issues/1232)
@@ -216,14 +219,14 @@ File and sync features in a shared scenario
#### [Adding public upload to a read only shared folder as a receipient is allowed ](https://github.com/owncloud/ocis/issues/2164)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:272](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L272)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:270](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L270)
- [coreApiSharePublicLink3/updatePublicLinkShare.feature:271](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L271)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:319](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L319)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:320](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L320)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:316](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L316)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:317](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L317)
#### [Upload-only shares must not overwrite but create a separate file](https://github.com/owncloud/ocis/issues/1267)
- [coreApiSharePublicLink3/uploadToPublicLinkShare.feature:10](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/uploadToPublicLinkShare.feature#L10)
-- [coreApiSharePublicLink3/uploadToPublicLinkShare.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/uploadToPublicLinkShare.feature#L131)
+- [coreApiSharePublicLink3/uploadToPublicLinkShare.feature:111](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/uploadToPublicLinkShare.feature#L111)
#### [Set quota over settings](https://github.com/owncloud/ocis/issues/1290)
_requires a [CS3 user provisioning api that can update the quota for a user](https://github.com/cs3org/cs3apis/pull/95#issuecomment-772780683)_
@@ -232,40 +235,32 @@ _requires a [CS3 user provisioning api that can update the quota for a user](htt
- [coreApiSharePublicLink3/uploadToPublicLinkShare.feature:93](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/uploadToPublicLinkShare.feature#L93)
#### [share permissions are not enforced](https://github.com/owncloud/product/issues/270) //todo
-- [coreApiShareReshareToShares3/reShareUpdate.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L64)
- [coreApiShareReshareToShares3/reShareUpdate.feature:63](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L63)
+- [coreApiShareReshareToShares3/reShareUpdate.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L62)
#### [path property in pending shares gives only filename](https://github.com/owncloud/ocis/issues/2156)
-- [coreApiShareReshareToShares2/reShareSubfolder.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares2/reShareSubfolder.feature#L154)
- [coreApiShareReshareToShares2/reShareSubfolder.feature:153](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares2/reShareSubfolder.feature#L153)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L59)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:742](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L742)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:741](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L741)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:761](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L761)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:760](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L760)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:777](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L777)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:776](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L776)
-
-#### [Listing shares via ocs API does not show path for parent folders](https://github.com/owncloud/ocis/issues/1231)
-
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:35](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L35)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:36](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L36)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:325](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L325)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:326](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L326)
-
+- [coreApiShareReshareToShares2/reShareSubfolder.feature:152](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares2/reShareSubfolder.feature#L152)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L61)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:743](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L743)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:744](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L744)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:762](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L762)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:763](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L763)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:778](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L778)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:779](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L779)
#### [deleting a file inside a received shared folder is moved to the trash-bin of the sharer not the receiver](https://github.com/owncloud/ocis/issues/1124)
-- [coreApiTrashbin/trashbinSharingToShares.feature:45](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L45)
-- [coreApiTrashbin/trashbinSharingToShares.feature:72](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L72)
-- [coreApiTrashbin/trashbinSharingToShares.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L99)
-- [coreApiTrashbin/trashbinSharingToShares.feature:127](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L127)
-- [coreApiTrashbin/trashbinSharingToShares.feature:155](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L155)
-- [coreApiTrashbin/trashbinSharingToShares.feature:183](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L183)
+- [coreApiTrashbin/trashbinSharingToShares.feature:44](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L44)
+- [coreApiTrashbin/trashbinSharingToShares.feature:71](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L71)
+- [coreApiTrashbin/trashbinSharingToShares.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L98)
+- [coreApiTrashbin/trashbinSharingToShares.feature:126](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L126)
+- [coreApiTrashbin/trashbinSharingToShares.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L154)
+- [coreApiTrashbin/trashbinSharingToShares.feature:182](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L182)
#### [Folder overwrite on shared files doesn't works correctly on copying file](https://github.com/owncloud/ocis/issues/2183)
-- [coreApiWebdavProperties1/copyFile.feature:466](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L466)
-- [coreApiWebdavProperties1/copyFile.feature:548](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L548)
+- [coreApiWebdavProperties1/copyFile.feature:465](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L465)
+- [coreApiWebdavProperties1/copyFile.feature:547](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L547)
#### [cannot get share-types webdav property](https://github.com/owncloud/ocis/issues/567)
- [coreApiWebdavProperties2/getFileProperties.feature:238](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L238)
@@ -277,18 +272,18 @@ _requires a [CS3 user provisioning api that can update the quota for a user](htt
#### [changing user quota gives ocs status 103 / Cannot set quota](https://github.com/owncloud/product/issues/247)
_requires a [CS3 user provisioning api that can update the quota for a user](https://github.com/cs3org/cs3apis/pull/95#issuecomment-772780683)_
-- [coreApiShareOperationsToShares2/uploadToShare.feature:210](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L210)
-- [coreApiShareOperationsToShares2/uploadToShare.feature:209](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L209)
+- [coreApiShareOperationsToShares2/uploadToShare.feature:211](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L211)
+- [coreApiShareOperationsToShares2/uploadToShare.feature:212](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L212)
#### [not possible to move file into a received folder](https://github.com/owncloud/ocis/issues/764)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:25](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L25)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L24)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:68](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L68)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:69](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L69)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:91](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L91)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:90](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L90)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:107](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L107)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:106](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L106)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L26)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L27)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:70](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L70)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:71](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L71)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L92)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:93](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L93)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:108](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L108)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:109](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L109)
- [coreApiWebdavMove2/moveShareOnOcis.feature:30](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L30)
- [coreApiWebdavMove2/moveShareOnOcis.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L32)
- [coreApiWebdavMove2/moveShareOnOcis.feature:75](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L75)
@@ -306,109 +301,58 @@ _requires a [CS3 user provisioning api that can update the quota for a user](htt
- [coreApiVersions/fileVersions.feature:276](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L276)
#### [restoring an older version of a shared file deletes the share](https://github.com/owncloud/ocis/issues/765)
-- [coreApiShareManagementToShares/acceptShares.feature:483](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L483)
+- [coreApiShareManagementToShares/acceptShares.feature:448](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L448)
- [coreApiVersions/fileVersions.feature:288](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L288)
#### [Expiration date for shares is not implemented](https://github.com/owncloud/ocis/issues/1250)
#### Expiration date of user shares
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:34](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L34)
- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:33](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L33)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:86](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L86)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:87](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L87)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:88](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L88)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:85](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L85)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:143](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L143)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L144)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:145](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L145)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L142)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:201](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L201)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:202](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L202)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L203)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:200](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L200)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:257](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L257)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:258](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L258)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:259](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L259)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:256](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L256)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:287](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L287)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:288](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L288)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:289](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L289)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:286](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L286)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:318](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L318)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:319](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L319)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:320](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L320)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:317](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L317)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:346](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L346)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:347](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L347)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:348](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L348)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:345](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L345)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:379](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L379)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:380](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L380)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:381](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L381)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:382](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L382)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:383](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L383)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:378](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L378)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:413](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L413)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:414](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L414)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:415](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L415)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:412](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L412)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:444](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L444)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:443](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L443)
+- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L32)
#### Expiration date of group shares
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:60](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L60)
- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L59)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:116](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L116)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:117](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L117)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L118)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:115](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L115)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:172](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L172)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:173](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L173)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:174](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L174)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:171](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L171)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:232](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L232)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:233](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L233)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:234](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L234)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:231](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L231)
-
+- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L58)
+- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L81)
+- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:82](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L82)
#### [Getting content of a shared file with same name returns 500](https://github.com/owncloud/ocis/issues/3880)
-- [coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature:14](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature#L14)
+- [coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature:16](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature#L16)
#### [Empty OCS response for a share create request using a disabled user](https://github.com/owncloud/ocis/issues/2212)
-- [coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature:19](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature#L19)
-- [coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature#L22)
+- [coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature#L24)
+- [coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature:21](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature#L21)
//todo
+- [coreApiShareUpdateToShares/updateShare.feature:95](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L95)
- [coreApiShareUpdateToShares/updateShare.feature:96](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L96)
- [coreApiShareUpdateToShares/updateShare.feature:97](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L97)
- [coreApiShareUpdateToShares/updateShare.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L98)
- [coreApiShareUpdateToShares/updateShare.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L99)
-- [coreApiShareUpdateToShares/updateShare.feature:100](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L100)
-- [coreApiShareUpdateToShares/updateShare.feature:95](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L95)
+- [coreApiShareUpdateToShares/updateShare.feature:94](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L94)
+- [coreApiShareUpdateToShares/updateShare.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L119)
- [coreApiShareUpdateToShares/updateShare.feature:120](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L120)
- [coreApiShareUpdateToShares/updateShare.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L121)
- [coreApiShareUpdateToShares/updateShare.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L122)
- [coreApiShareUpdateToShares/updateShare.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L123)
-- [coreApiShareUpdateToShares/updateShare.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L124)
-- [coreApiShareUpdateToShares/updateShare.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L119)
+- [coreApiShareUpdateToShares/updateShare.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L118)
#### [Edit user share response has an "name" field](https://github.com/owncloud/ocis/issues/1225)
-- [coreApiShareUpdateToShares/updateShare.feature:242](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L242)
- [coreApiShareUpdateToShares/updateShare.feature:241](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L241)
+- [coreApiShareUpdateToShares/updateShare.feature:240](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L240)
#### [user can access version metadata of a received share before accepting it](https://github.com/owncloud/ocis/issues/760)
- [coreApiVersions/fileVersions.feature:313](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L313)
#### [Share lists deleted user as 'user'](https://github.com/owncloud/ocis/issues/903)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:676](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L676)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:677](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L677)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:678](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L678)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:679](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L679)
#### [OCIS-storage overwriting a file as share receiver, does not create a new file version for the sharer](https://github.com/owncloud/ocis/issues/766)
- [coreApiVersions/fileVersions.feature:433](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L433) //todo
#### [deleting a share with wrong authentication returns OCS status 996 / HTTP 500](https://github.com/owncloud/ocis/issues/1229)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:226](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L226)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:225](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L225)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:227](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L227)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:228](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L228)
### User Management
User and group management features
@@ -417,46 +361,46 @@ User and group management features
API, search, favorites, config, capabilities, not existing endpoints, CORS and others
#### [no robots.txt available](https://github.com/owncloud/ocis/issues/1314)
-- [coreApiMain/main.feature:5](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/main.feature#L5)
+- [coreApiMain/main.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/main.feature#L8)
#### [Ability to return error messages in Webdav response bodies](https://github.com/owncloud/ocis/issues/1293)
-- [coreApiAuthOcs/ocsDELETEAuth.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsDELETEAuth.feature#L8)
-- [coreApiAuthOcs/ocsGETAuth.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L8)
-- [coreApiAuthOcs/ocsGETAuth.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L29)
-- [coreApiAuthOcs/ocsGETAuth.feature:42](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L42)
-- [coreApiAuthOcs/ocsGETAuth.feature:73](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L73)
-- [coreApiAuthOcs/ocsGETAuth.feature:104](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L104)
-- [coreApiAuthOcs/ocsGETAuth.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L121)
-- [coreApiAuthOcs/ocsPOSTAuth.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPOSTAuth.feature#L8)
-- [coreApiAuthOcs/ocsPUTAuth.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L8)
+- [coreApiAuthOcs/ocsDELETEAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsDELETEAuth.feature#L11)
+- [coreApiAuthOcs/ocsGETAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L11)
+- [coreApiAuthOcs/ocsGETAuth.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L32)
+- [coreApiAuthOcs/ocsGETAuth.feature:45](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L45)
+- [coreApiAuthOcs/ocsGETAuth.feature:76](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L76)
+- [coreApiAuthOcs/ocsGETAuth.feature:107](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L107)
+- [coreApiAuthOcs/ocsGETAuth.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L124)
+- [coreApiAuthOcs/ocsPOSTAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPOSTAuth.feature#L11)
+- [coreApiAuthOcs/ocsPUTAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L11)
#### [sending MKCOL requests to another or non-existing user's webDav endpoints as normal user should return 404](https://github.com/owncloud/ocis/issues/5049)
_ocdav: api compatibility, return correct status code_
-- [coreApiAuthWebDav/webDavDELETEAuth.feature:57](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavDELETEAuth.feature#L57)
-- [coreApiAuthWebDav/webDavPROPFINDAuth.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPROPFINDAuth.feature#L55)
-- [coreApiAuthWebDav/webDavPROPPATCHAuth.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPROPPATCHAuth.feature#L56)
-- [coreApiAuthWebDav/webDavMKCOLAuth.feature:52](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMKCOLAuth.feature#L52)
-- [coreApiAuthWebDav/webDavMKCOLAuth.feature:63](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMKCOLAuth.feature#L63) Scenario: send MKCOL requests to another user's webDav endpoints as normal user using the spaces WebDAV API
+- [coreApiAuthWebDav/webDavDELETEAuth.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavDELETEAuth.feature#L61)
+- [coreApiAuthWebDav/webDavPROPFINDAuth.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPROPFINDAuth.feature#L58)
+- [coreApiAuthWebDav/webDavPROPPATCHAuth.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPROPPATCHAuth.feature#L59)
+- [coreApiAuthWebDav/webDavMKCOLAuth.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMKCOLAuth.feature#L55)
+- [coreApiAuthWebDav/webDavMKCOLAuth.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMKCOLAuth.feature#L66)
#### [trying to lock file of another user gives http 200](https://github.com/owncloud/ocis/issues/2176)
-- [coreApiAuthWebDav/webDavLOCKAuth.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavLOCKAuth.feature#L56)
+- [coreApiAuthWebDav/webDavLOCKAuth.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavLOCKAuth.feature#L59)
#### [send (MOVE, COPY) requests to another user's webDav endpoints as normal user gives 400 instead of 403](https://github.com/owncloud/ocis/issues/3882)
_ocdav: api compatibility, return correct status code_
-- [coreApiAuthWebDav/webDavMOVEAuth.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMOVEAuth.feature#L55)
-- [coreApiAuthWebDav/webDavCOPYAuth.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavCOPYAuth.feature#L59)
+- [coreApiAuthWebDav/webDavMOVEAuth.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMOVEAuth.feature#L58) Scenario: send MOVE requests to another user's webDav endpoints as normal user
+- [coreApiAuthWebDav/webDavCOPYAuth.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavCOPYAuth.feature#L58)
#### [send POST requests to another user's webDav endpoints as normal user](https://github.com/owncloud/ocis/issues/1287)
_ocdav: api compatibility, return correct status code_
-- [coreApiAuthWebDav/webDavPOSTAuth.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPOSTAuth.feature#L56)
+- [coreApiAuthWebDav/webDavPOSTAuth.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPOSTAuth.feature#L59)
#### [Using double slash in URL to access a folder gives 501 and other status codes](https://github.com/owncloud/ocis/issues/1667)
-- [coreApiAuthWebDav/webDavSpecialURLs.feature:34](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L34)
-- [coreApiAuthWebDav/webDavSpecialURLs.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L121)
-- [coreApiAuthWebDav/webDavSpecialURLs.feature:163](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L163)
+- [coreApiAuthWebDav/webDavSpecialURLs.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L37)
+- [coreApiAuthWebDav/webDavSpecialURLs.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L124)
+- [coreApiAuthWebDav/webDavSpecialURLs.feature:166](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L166)
#### [Difference in response content of status.php and default capabilities](https://github.com/owncloud/ocis/issues/1286)
-- [coreApiCapabilities/capabilitiesWithNormalUser.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilitiesWithNormalUser.feature#L11)
+- [coreApiCapabilities/capabilitiesWithNormalUser.feature:14](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilitiesWithNormalUser.feature#L14)
#### [spaces endpoint does not allow REPORT requests](https://github.com/owncloud/ocis/issues/4034)
- [coreApiWebdavOperations/search.feature:42](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/search.feature#L42)
@@ -481,27 +425,27 @@ _ocdav: api compatibility, return correct status code_
- [coreApiWebdavOperations/search.feature:266](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/search.feature#L266)
#### [Support for favorites](https://github.com/owncloud/ocis/issues/1228)
-- [coreApiFavorites/favorites.feature:115](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L115)
-- [coreApiFavorites/favorites.feature:116](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L116)
-- [coreApiFavorites/favorites.feature:167](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L167)
-- [coreApiFavorites/favorites.feature:168](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L168)
-- [coreApiFavorites/favorites.feature:200](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L200)
-- [coreApiFavorites/favorites.feature:201](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L201)
-- [coreApiFavorites/favorites.feature:219](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L219)
-- [coreApiFavorites/favorites.feature:220](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L220)
-- [coreApiFavorites/favoritesSharingToShares.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L81)
-- [coreApiFavorites/favoritesSharingToShares.feature:82](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L82)
+- [coreApiFavorites/favorites.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L118)
+- [coreApiFavorites/favorites.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L119)
+- [coreApiFavorites/favorites.feature:170](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L170)
+- [coreApiFavorites/favorites.feature:171](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L171)
+- [coreApiFavorites/favorites.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L203)
+- [coreApiFavorites/favorites.feature:204](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L204)
+- [coreApiFavorites/favorites.feature:222](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L222)
+- [coreApiFavorites/favorites.feature:223](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L223)
+- [coreApiFavorites/favoritesSharingToShares.feature:68](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L68)
+- [coreApiFavorites/favoritesSharingToShares.feature:69](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L69)
#### [resource inside Shares dir is not found using the spaces WebDAV API](https://github.com/owncloud/ocis/issues/2968)
-- [coreApiFavorites/favoritesSharingToShares.feature:21](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L21)
-- [coreApiFavorites/favoritesSharingToShares.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L22)
-- [coreApiFavorites/favoritesSharingToShares.feature:36](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L36)
-- [coreApiFavorites/favoritesSharingToShares.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L37)
-- [coreApiFavorites/favoritesSharingToShares.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L50)
-- [coreApiFavorites/favoritesSharingToShares.feature:51](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L51)
-- [coreApiFavorites/favoritesSharingToShares.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L66)
-- [coreApiFavorites/favoritesSharingToShares.feature:67](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L67)
-- [coreApiMain/checksums.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L203)
+- [coreApiFavorites/favoritesSharingToShares.feature:23](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L23)
+- [coreApiFavorites/favoritesSharingToShares.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L24)
+- [coreApiFavorites/favoritesSharingToShares.feature:38](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L38)
+- [coreApiFavorites/favoritesSharingToShares.feature:39](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L39)
+- [coreApiFavorites/favoritesSharingToShares.feature:52](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L52)
+- [coreApiFavorites/favoritesSharingToShares.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L53)
+- [coreApiFavorites/favoritesSharingToShares.feature:83](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L83)
+- [coreApiFavorites/favoritesSharingToShares.feature:84](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L84)
+- [coreApiMain/checksums.feature:190](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L190)
#### [WWW-Authenticate header for unauthenticated requests is not clear](https://github.com/owncloud/ocis/issues/2285)
- [coreApiWebdavOperations/refuseAccess.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/refuseAccess.feature#L22)
@@ -510,14 +454,14 @@ _ocdav: api compatibility, return correct status code_
- [coreApiWebdavOperations/refuseAccess.feature:36](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/refuseAccess.feature#L36)
#### [App Passwords/Tokens for legacy WebDAV clients](https://github.com/owncloud/ocis/issues/197)
-- [coreApiAuthWebDav/webDavDELETEAuth.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavDELETEAuth.feature#L135)
+- [coreApiAuthWebDav/webDavDELETEAuth.feature:139](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavDELETEAuth.feature#L139)
#### [Sharing a same file twice to the same group](https://github.com/owncloud/ocis/issues/1710)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:724](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L724)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:725](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L725)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:726](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L726)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:727](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L727)
#### [Request to edit non-existing user by authorized admin gets unauthorized in http response](https://github.com/owncloud/ocis/issues/38423)
-- [coreApiAuthOcs/ocsPUTAuth.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L24)
+- [coreApiAuthOcs/ocsPUTAuth.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L27)
### Won't fix
@@ -527,8 +471,8 @@ Not everything needs to be implemented for ocis. While the oc10 testsuite covers
* _Blacklisted ignored files are no longer required because ocis can handle `.htaccess` files without security implications introduced by serving user provided files with apache._
#### [Blacklist files extensions](https://github.com/owncloud/ocis/issues/2177)
-- [coreApiWebdavProperties1/copyFile.feature:120](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L120)
- [coreApiWebdavProperties1/copyFile.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L119)
+- [coreApiWebdavProperties1/copyFile.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L118)
- [coreApiWebdavProperties1/createFileFolder.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolder.feature#L98)
- [coreApiWebdavProperties1/createFileFolder.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolder.feature#L99)
- [coreApiWebdavUpload1/uploadFile.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUpload1/uploadFile.feature#L181)
@@ -561,35 +505,36 @@ Not everything needs to be implemented for ocis. While the oc10 testsuite covers
- [coreApiWebdavUploadTUS/optionsRequest.feature:35](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/optionsRequest.feature#L35)
- [coreApiWebdavUploadTUS/optionsRequest.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/optionsRequest.feature#L62)
- [coreApiWebdavUploadTUS/optionsRequest.feature:89](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/optionsRequest.feature#L89)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L176)
- [coreApiWebdavUploadTUS/uploadToShare.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L175)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L195)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:174](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L174)
- [coreApiWebdavUploadTUS/uploadToShare.feature:194](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L194)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:214](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L214)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:193](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L193)
- [coreApiWebdavUploadTUS/uploadToShare.feature:213](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L213)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:253](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L253)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:212](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L212)
- [coreApiWebdavUploadTUS/uploadToShare.feature:252](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L252)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:295](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L295)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:251](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L251)
- [coreApiWebdavUploadTUS/uploadToShare.feature:294](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L294)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:293](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L293)
#### [Share inaccessible if folder with same name was deleted and recreated](https://github.com/owncloud/ocis/issues/1787)
+- [coreApiShareReshareToShares1/reShare.feature:264](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L264)
- [coreApiShareReshareToShares1/reShare.feature:265](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L265)
-- [coreApiShareReshareToShares1/reShare.feature:266](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L266)
+- [coreApiShareReshareToShares1/reShare.feature:282](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L282)
- [coreApiShareReshareToShares1/reShare.feature:283](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L283)
-- [coreApiShareReshareToShares1/reShare.feature:284](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L284)
+- [coreApiShareReshareToShares1/reShare.feature:300](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L300)
- [coreApiShareReshareToShares1/reShare.feature:301](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L301)
-- [coreApiShareReshareToShares1/reShare.feature:302](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L302)
#### [incorrect ocs(v2) status value when getting info of share that does not exist should be 404, gives 998](https://github.com/owncloud/product/issues/250)
_ocs: api compatibility, return correct status code_
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:48](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L48)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:49](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L49)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L50)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:51](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L51)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:52](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L52)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L53)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:54](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L54)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:47](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L47)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L55)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L56)
+
#### [Trying to accept a share with invalid ID gives incorrect OCS and HTTP status](https://github.com/owncloud/ocis/issues/2111)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:85](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L85)
@@ -599,19 +544,19 @@ _ocs: api compatibility, return correct status code_
- [coreApiShareOperationsToShares2/shareAccessByID.feature:89](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L89)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:90](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L90)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:91](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L91)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:84](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L84)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:104](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L104)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L92)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:103](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L103)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:104](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L104)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:134](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L134)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L135)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L136)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:137](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L137)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:138](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L138)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:139](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L139)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:140](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L140)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L141)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L142)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L135)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:155](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L155)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L154)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:152](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L152)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:153](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L153)
#### [[OC-storage] share-types field empty for shared file folder in webdav response](https://github.com/owncloud/ocis/issues/2144)
- [coreApiWebdavProperties2/getFileProperties.feature:215](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L215)
@@ -622,21 +567,20 @@ _ocs: api compatibility, return correct status code_
- [coreApiWebdavProperties2/getFileProperties.feature:276](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L276)
#### [Cannot move folder/file from one received share to another](https://github.com/owncloud/ocis/issues/2442)
-- [coreApiShareUpdateToShares/updateShare.feature:159](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L159)
-- [coreApiShareUpdateToShares/updateShare.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L195)
-- [coreApiShareManagementToShares/mergeShare.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L135)
+- [coreApiShareUpdateToShares/updateShare.feature:158](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L158)
+- [coreApiShareUpdateToShares/updateShare.feature:194](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L194)
+- [coreApiShareManagementToShares/mergeShare.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L131)
-#### [Sharing folder and sub-folder with same user but different permission,the permission of sub-folder is not obeyed ](https://github.com/owncloud/ocis/issues/2440)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:260](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L260)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:295](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L295)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:404](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L404)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:439](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L439)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:262](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L262)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:297](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L297)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:406](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L406)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:441](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L441)
#### [copying the file inside Shares folder returns 404](https://github.com/owncloud/ocis/issues/3874)
-- [coreApiWebdavProperties1/copyFile.feature:410](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L410)
- [coreApiWebdavProperties1/copyFile.feature:409](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L409)
-- [coreApiWebdavProperties1/copyFile.feature:436](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L436)
+- [coreApiWebdavProperties1/copyFile.feature:408](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L408)
- [coreApiWebdavProperties1/copyFile.feature:435](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L435)
+- [coreApiWebdavProperties1/copyFile.feature:434](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L434)
#### [Downloading the older version of shared file gives 404](https://github.com/owncloud/ocis/issues/3868)
- [coreApiVersions/fileVersions.feature:160](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L160)
@@ -657,44 +601,44 @@ _ocs: api compatibility, return correct status code_
- [coreApiVersions/fileVersionAuthor.feature:344](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L344)
#### [Shares to deleted group listed in the response](https://github.com/owncloud/ocis/issues/2441)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:528](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L528)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:529](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L529)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:530](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L530)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:534](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L534)
### [Share path in the response is different between share states](https://github.com/owncloud/ocis/issues/2540)
-- [coreApiShareManagementToShares/acceptShares.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L64)
-- [coreApiShareManagementToShares/acceptShares.feature:87](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L87)
-- [coreApiShareManagementToShares/acceptShares.feature:165](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L165)
-- [coreApiShareManagementToShares/acceptShares.feature:188](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L188)
-- [coreApiShareManagementToShares/acceptShares.feature:226](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L226)
-- [coreApiShareManagementToShares/acceptShares.feature:260](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L260)
-- [coreApiShareManagementToShares/acceptShares.feature:480](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L480)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L123)
+- [coreApiShareManagementToShares/acceptShares.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L28)
+- [coreApiShareManagementToShares/acceptShares.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L62)
+- [coreApiShareManagementToShares/acceptShares.feature:134](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L134)
+- [coreApiShareManagementToShares/acceptShares.feature:155](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L155)
+- [coreApiShareManagementToShares/acceptShares.feature:183](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L183)
+- [coreApiShareManagementToShares/acceptShares.feature:228](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L228)
+- [coreApiShareManagementToShares/acceptShares.feature:438](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L438)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L122)
-- [coreApiShareManagementToShares/acceptShares.feature:229](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L229)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L123)
+- [coreApiShareManagementToShares/acceptShares.feature:208](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L208)
### [Content-type is not multipart/byteranges when downloading file with Range Header](https://github.com/owncloud/ocis/issues/2677)
- [coreApiWebdavOperations/downloadFile.feature:184](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/downloadFile.feature#L184)
- [coreApiWebdavOperations/downloadFile.feature:185](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/downloadFile.feature#L185)
#### [Creating a new folder which is a substring of Shares leads to Unknown Error](https://github.com/owncloud/ocis/issues/3033)
-- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L28)
-- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:31](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L31)
-- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:44](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L44)
-- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:47](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L47)
+- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L27)
+- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:30](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L30)
+- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:43](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L43)
+- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:46](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L46)
#### [moveShareInsideAnotherShare behaves differently on oCIS than oC10](https://github.com/owncloud/ocis/issues/3047)
-- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L24)
-- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:44](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L44)
-- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L58)
+- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:23](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L23)
+- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:43](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L43)
+- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:57](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L57)
#### [resource path is included in the returned error message](https://github.com/owncloud/ocis/issues/3344)
- [coreApiWebdavProperties2/getFileProperties.feature:311](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L311)
#### [OCS status code zero](https://github.com/owncloud/ocis/issues/3621)
-- [coreApiShareManagementToShares/moveReceivedShare.feature:14](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature#L14)
+- [coreApiShareManagementToShares/moveReceivedShare.feature:13](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature#L13)
#### [HTTP status code differ while listing the contents of another user's trash bin](https://github.com/owncloud/ocis/issues/3561)
-- [coreApiTrashbin/trashbinFilesFolders.feature:263](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L263)
+- [coreApiTrashbin/trashbinFilesFolders.feature:249](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L249)
#### [Cannot disable the dav propfind depth infinity for resources](https://github.com/owncloud/ocis/issues/3720)
- [coreApiWebdavOperations/listFiles.feature:364](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/listFiles.feature#L364)
@@ -722,19 +666,20 @@ _ocs: api compatibility, return correct status code_
- [coreApiTrashbin/trashbinFilesFolders.feature:95](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L95)
- [coreApiTrashbin/trashbinFilesFolders.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L131)
- [coreApiTrashbin/trashbinFilesFolders.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L154)
-- [coreApiTrashbin/trashbinFilesFolders.feature:320](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L320)
-- [coreApiTrashbin/trashbinFilesFolders.feature:321](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L321)
-- [coreApiTrashbin/trashbinFilesFolders.feature:322](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L322)
-- [coreApiTrashbin/trashbinFilesFolders.feature:323](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L323)
-- [coreApiTrashbin/trashbinFilesFolders.feature:324](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L324)
-- [coreApiTrashbin/trashbinFilesFolders.feature:319](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L319)
-- [coreApiTrashbin/trashbinFilesFolders.feature:346](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L346)
-- [coreApiTrashbin/trashbinFilesFolders.feature:366](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L366)
-- [coreApiTrashbin/trashbinFilesFolders.feature:420](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L420)
-- [coreApiTrashbin/trashbinFilesFolders.feature:457](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L457)
-- [coreApiTrashbin/trashbinSharingToShares.feature:23](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L23)
-- [coreApiTrashbin/trashbinSharingToShares.feature:206](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L206)
-- [coreApiTrashbin/trashbinSharingToShares.feature:230](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L230)
+- [coreApiTrashbin/trashbinFilesFolders.feature:287](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L287)
+- [coreApiTrashbin/trashbinFilesFolders.feature:308](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L308)
+- [coreApiTrashbin/trashbinFilesFolders.feature:305](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L305)
+- [coreApiTrashbin/trashbinFilesFolders.feature:306](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L306)
+- [coreApiTrashbin/trashbinFilesFolders.feature:307](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L307)
+- [coreApiTrashbin/trashbinFilesFolders.feature:309](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L309)
+- [coreApiTrashbin/trashbinFilesFolders.feature:310](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L310)
+- [coreApiTrashbin/trashbinFilesFolders.feature:332](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L332)
+- [coreApiTrashbin/trashbinFilesFolders.feature:352](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L352)
+- [coreApiTrashbin/trashbinFilesFolders.feature:443](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L443)
+- [coreApiTrashbin/trashbinFilesFolders.feature:406](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L406)
+- [coreApiTrashbin/trashbinSharingToShares.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L22)
+- [coreApiTrashbin/trashbinSharingToShares.feature:205](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L205)
+- [coreApiTrashbin/trashbinSharingToShares.feature:229](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L229)
- [coreApiTrashbinRestore/trashbinRestore.feature:34](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L34)
- [coreApiTrashbinRestore/trashbinRestore.feature:35](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L35)
- [coreApiTrashbinRestore/trashbinRestore.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L50)
@@ -753,44 +698,44 @@ _ocs: api compatibility, return correct status code_
- [coreApiTrashbinRestore/trashbinRestore.feature:111](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L111)
- [coreApiTrashbinRestore/trashbinRestore.feature:130](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L130)
- [coreApiTrashbinRestore/trashbinRestore.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L131)
-- [coreApiTrashbinRestore/trashbinRestore.feature:180](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L180)
-- [coreApiTrashbinRestore/trashbinRestore.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L181)
+- [coreApiTrashbinRestore/trashbinRestore.feature:145](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L145)
+- [coreApiTrashbinRestore/trashbinRestore.feature:146](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L146)
+- [coreApiTrashbinRestore/trashbinRestore.feature:160](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L160)
+- [coreApiTrashbinRestore/trashbinRestore.feature:161](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L161)
+- [coreApiTrashbinRestore/trashbinRestore.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L175)
+- [coreApiTrashbinRestore/trashbinRestore.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L176)
+- [coreApiTrashbinRestore/trashbinRestore.feature:192](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L192)
+- [coreApiTrashbinRestore/trashbinRestore.feature:193](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L193)
+- [coreApiTrashbinRestore/trashbinRestore.feature:194](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L194)
- [coreApiTrashbinRestore/trashbinRestore.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L195)
-- [coreApiTrashbinRestore/trashbinRestore.feature:196](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L196)
-- [coreApiTrashbinRestore/trashbinRestore.feature:210](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L210)
-- [coreApiTrashbinRestore/trashbinRestore.feature:211](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L211)
-- [coreApiTrashbinRestore/trashbinRestore.feature:227](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L227)
-- [coreApiTrashbinRestore/trashbinRestore.feature:228](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L228)
-- [coreApiTrashbinRestore/trashbinRestore.feature:229](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L229)
+- [coreApiTrashbinRestore/trashbinRestore.feature:190](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L190)
+- [coreApiTrashbinRestore/trashbinRestore.feature:191](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L191)
+- [coreApiTrashbinRestore/trashbinRestore.feature:212](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L212)
+- [coreApiTrashbinRestore/trashbinRestore.feature:213](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L213)
- [coreApiTrashbinRestore/trashbinRestore.feature:230](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L230)
-- [coreApiTrashbinRestore/trashbinRestore.feature:225](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L225)
-- [coreApiTrashbinRestore/trashbinRestore.feature:226](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L226)
-- [coreApiTrashbinRestore/trashbinRestore.feature:247](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L247)
-- [coreApiTrashbinRestore/trashbinRestore.feature:248](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L248)
-- [coreApiTrashbinRestore/trashbinRestore.feature:265](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L265)
-- [coreApiTrashbinRestore/trashbinRestore.feature:266](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L266)
-- [coreApiTrashbinRestore/trashbinRestore.feature:285](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L285)
-- [coreApiTrashbinRestore/trashbinRestore.feature:286](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L286)
+- [coreApiTrashbinRestore/trashbinRestore.feature:231](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L231)
+- [coreApiTrashbinRestore/trashbinRestore.feature:250](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L250)
+- [coreApiTrashbinRestore/trashbinRestore.feature:251](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L251)
+- [coreApiTrashbinRestore/trashbinRestore.feature:270](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L270)
+- [coreApiTrashbinRestore/trashbinRestore.feature:271](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L271)
+- [coreApiTrashbinRestore/trashbinRestore.feature:304](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L304)
- [coreApiTrashbinRestore/trashbinRestore.feature:305](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L305)
-- [coreApiTrashbinRestore/trashbinRestore.feature:306](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L306)
-- [coreApiTrashbinRestore/trashbinRestore.feature:339](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L339)
-- [coreApiTrashbinRestore/trashbinRestore.feature:340](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L340)
-- [coreApiTrashbinRestore/trashbinRestore.feature:378](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L378)
-- [coreApiTrashbinRestore/trashbinRestore.feature:379](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L379)
-- [coreApiTrashbinRestore/trashbinRestore.feature:417](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L417)
-- [coreApiTrashbinRestore/trashbinRestore.feature:418](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L418)
-- [coreApiTrashbinRestore/trashbinRestore.feature:435](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L435)
-- [coreApiTrashbinRestore/trashbinRestore.feature:436](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L436)
-- [coreApiTrashbinRestore/trashbinRestore.feature:454](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L454)
-- [coreApiTrashbinRestore/trashbinRestore.feature:455](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L455)
+- [coreApiTrashbinRestore/trashbinRestore.feature:343](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L343)
+- [coreApiTrashbinRestore/trashbinRestore.feature:344](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L344)
+- [coreApiTrashbinRestore/trashbinRestore.feature:382](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L382)
+- [coreApiTrashbinRestore/trashbinRestore.feature:383](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L383)
+- [coreApiTrashbinRestore/trashbinRestore.feature:400](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L400)
+- [coreApiTrashbinRestore/trashbinRestore.feature:401](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L401)
+- [coreApiTrashbinRestore/trashbinRestore.feature:419](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L419)
+- [coreApiTrashbinRestore/trashbinRestore.feature:420](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L420)
+- [coreApiTrashbinRestore/trashbinRestore.feature:443](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L443)
+- [coreApiTrashbinRestore/trashbinRestore.feature:444](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L444)
+- [coreApiTrashbinRestore/trashbinRestore.feature:462](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L462)
+- [coreApiTrashbinRestore/trashbinRestore.feature:463](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L463)
+- [coreApiTrashbinRestore/trashbinRestore.feature:477](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L477)
- [coreApiTrashbinRestore/trashbinRestore.feature:478](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L478)
-- [coreApiTrashbinRestore/trashbinRestore.feature:479](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L479)
-- [coreApiTrashbinRestore/trashbinRestore.feature:497](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L497)
-- [coreApiTrashbinRestore/trashbinRestore.feature:498](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L498)
-- [coreApiTrashbinRestore/trashbinRestore.feature:512](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L512)
-- [coreApiTrashbinRestore/trashbinRestore.feature:513](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L513)
-- [coreApiTrashbinRestore/trashbinRestore.feature:566](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L566)
-- [coreApiTrashbinRestore/trashbinRestore.feature:567](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L567)
+- [coreApiTrashbinRestore/trashbinRestore.feature:531](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L531)
+- [coreApiTrashbinRestore/trashbinRestore.feature:532](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L532)
- [coreApiWebdavEtagPropagation2/restoreFromTrash.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreFromTrash.feature#L26)
- [coreApiWebdavEtagPropagation2/restoreFromTrash.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreFromTrash.feature#L27)
- [coreApiWebdavEtagPropagation2/restoreFromTrash.feature:49](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreFromTrash.feature#L49)
@@ -813,24 +758,24 @@ _ocs: api compatibility, return correct status code_
#### [WebDAV MOVE with body returns 400 rather than 415](https://github.com/cs3org/reva/issues/3119)
-- [coreApiAuthWebDav/webDavMOVEAuth.feature:133](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMOVEAuth.feature#L133)
+- [coreApiAuthWebDav/webDavMOVEAuth.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMOVEAuth.feature#L136)
#### [reShareUpdate API tests failing in reva](https://github.com/cs3org/reva/issues/2916)
-- [coreApiShareReshareToShares3/reShareUpdate.feature:159](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L159)
- [coreApiShareReshareToShares3/reShareUpdate.feature:158](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L158)
+- [coreApiShareReshareToShares3/reShareUpdate.feature:157](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L157)
#### [coreApiShareOperationsToShares1/gettingShares.feature:28 fails in CI](https://github.com/cs3org/reva/issues/2926)
-- [coreApiShareOperationsToShares1/gettingShares.feature:38](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L38)
-- [coreApiShareOperationsToShares1/gettingShares.feature:39](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L39)
+- [coreApiShareOperationsToShares1/gettingShares.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L40)
+- [coreApiShareOperationsToShares1/gettingShares.feature:41](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L41)
#### [These tests pass in ocis and reva egde but fail in master with `file_target has unexpected value '/home'`](https://github.com/owncloud/ocis/issues/2113)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:306](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L306)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:307](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L307)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:308](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L308)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:309](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L309)
#### [valid WebDAV (DELETE, COPY or MOVE) requests with body must exit with 415](https://github.com/owncloud/ocis/issues/4332)
-- [coreApiAuthWebDav/webDavCOPYAuth.feature:137](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavCOPYAuth.feature#L137)
+- [coreApiAuthWebDav/webDavCOPYAuth.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavCOPYAuth.feature#L136)
#### [PROPFIND on (password protected) public link returns invalid XML](https://github.com/owncloud/ocis/issues/39707)
The problem has been fixed in reva edge branch but not in reva master
@@ -838,16 +783,16 @@ The problem has been fixed in reva edge branch but not in reva master
- [coreApiWebdavOperations/propfind.feature:73](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/propfind.feature#L73)
#### [Updating the role of a public link to internal gives returns 400]
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:496](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L496)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:497](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L497)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:498](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L498)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:499](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L499)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:492](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L492)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:493](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L493)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:494](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L494)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:495](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L495)
#### [Default capabilities for normal user and admin user not same as in oC-core](https://github.com/owncloud/ocis/issues/1285)
-- [coreApiCapabilities/capabilities.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L8)
-- [coreApiCapabilities/capabilities.feature:133](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L133)
-- [coreApiCapabilities/capabilities.feature:172](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L172)
-- [coreApiCapabilities/capabilities.feature:213](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L213)
+- [coreApiCapabilities/capabilities.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L11)
+- [coreApiCapabilities/capabilities.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L136)
+- [coreApiCapabilities/capabilities.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L175)
+- [coreApiCapabilities/capabilities.feature:216](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L216)
Note: always have an empty line at the end of this file.
The bash script that processes this file may not process a scenario reference on the last line.
diff --git a/tests/acceptance/expected-failures-on-S3NG-storage.md b/tests/acceptance/expected-failures-on-S3NG-storage.md
index 57a3444281..a6f587c185 100644
--- a/tests/acceptance/expected-failures-on-S3NG-storage.md
+++ b/tests/acceptance/expected-failures-on-S3NG-storage.md
@@ -6,8 +6,8 @@ The expected failures in this file are from features in the owncloud/ocis repo.
Basic file management like up and download, move, copy, properties, quota, trash, versions and chunking.
#### [invalid webdav responses for unauthorized requests.](https://github.com/owncloud/product/issues/273)
-- [coreApiTrashbin/trashbinFilesFolders.feature:282](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L282)
-- [coreApiTrashbin/trashbinFilesFolders.feature:301](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L301)
+- [coreApiTrashbin/trashbinFilesFolders.feature:235](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L235)
+- [coreApiTrashbin/trashbinFilesFolders.feature:268](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L268)
### [Downloading the older version of shared file gives 404](https://github.com/owncloud/ocis/issues/3868)
- [coreApiVersions/fileVersions.feature:160](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L160)
@@ -28,24 +28,24 @@ Basic file management like up and download, move, copy, properties, quota, trash
- [coreApiVersions/fileVersionAuthor.feature:344](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersionAuthor.feature#L344)
#### [Getting information about a folder overwritten by a file gives 500 error instead of 404](https://github.com/owncloud/ocis/issues/1239)
-- [coreApiWebdavProperties1/copyFile.feature:274](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L274)
- [coreApiWebdavProperties1/copyFile.feature:273](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L273)
-- [coreApiWebdavProperties1/copyFile.feature:292](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L292)
+- [coreApiWebdavProperties1/copyFile.feature:272](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L272)
- [coreApiWebdavProperties1/copyFile.feature:291](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L291)
-- [coreApiWebdavProperties1/copyFile.feature:315](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L315)
+- [coreApiWebdavProperties1/copyFile.feature:290](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L290)
- [coreApiWebdavProperties1/copyFile.feature:314](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L314)
-- [coreApiWebdavProperties1/copyFile.feature:340](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L340)
+- [coreApiWebdavProperties1/copyFile.feature:313](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L313)
- [coreApiWebdavProperties1/copyFile.feature:339](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L339)
-- [coreApiWebdavProperties1/copyFile.feature:364](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L364)
+- [coreApiWebdavProperties1/copyFile.feature:338](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L338)
- [coreApiWebdavProperties1/copyFile.feature:363](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L363)
-- [coreApiWebdavProperties1/copyFile.feature:388](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L388)
+- [coreApiWebdavProperties1/copyFile.feature:362](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L362)
- [coreApiWebdavProperties1/copyFile.feature:387](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L387)
-- [coreApiWebdavProperties1/copyFile.feature:467](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L467)
-- [coreApiWebdavProperties1/copyFile.feature:495](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L495)
+- [coreApiWebdavProperties1/copyFile.feature:386](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L386)
+- [coreApiWebdavProperties1/copyFile.feature:466](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L466)
- [coreApiWebdavProperties1/copyFile.feature:494](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L494)
-- [coreApiWebdavProperties1/copyFile.feature:522](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L522)
+- [coreApiWebdavProperties1/copyFile.feature:493](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L493)
- [coreApiWebdavProperties1/copyFile.feature:521](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L521)
-- [coreApiWebdavProperties1/copyFile.feature:549](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L549)
+- [coreApiWebdavProperties1/copyFile.feature:520](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L520)
+- [coreApiWebdavProperties1/copyFile.feature:548](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L548)
#### [Custom dav properties with namespaces are rendered incorrectly](https://github.com/owncloud/ocis/issues/2140)
_ocdav: double check the webdav property parsing when custom namespaces are used_
@@ -56,15 +56,15 @@ _ocdav: double check the webdav property parsing when custom namespaces are used
#### [Cannot set custom webDav properties](https://github.com/owncloud/product/issues/264)
- [coreApiWebdavProperties2/getFileProperties.feature:341](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L341)
-- [coreApiWebdavProperties2/getFileProperties.feature:346](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L346)
-- [coreApiWebdavProperties2/getFileProperties.feature:381](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L381)
-- [coreApiWebdavProperties2/getFileProperties.feature:386](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L386)
+- [coreApiWebdavProperties2/getFileProperties.feature:342](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L342)
+- [coreApiWebdavProperties2/getFileProperties.feature:377](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L377)
+- [coreApiWebdavProperties2/getFileProperties.feature:378](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L378)
### Sync
Synchronization features like etag propagation, setting mtime and locking files
#### [Uploading an old method chunked file with checksum should fail using new DAV path](https://github.com/owncloud/ocis/issues/2323)
-- [coreApiMain/checksums.feature:266](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L266)
+- [coreApiMain/checksums.feature:261](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L261)
#### [Webdav LOCK operations](https://github.com/owncloud/ocis/issues/1284)
- [coreApiWebdavLocks/exclusiveLocks.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks/exclusiveLocks.feature#L22)
@@ -97,14 +97,14 @@ Synchronization features like etag propagation, setting mtime and locking files
- [coreApiWebdavLocks2/independentLocks.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocks.feature#L56)
- [coreApiWebdavLocks2/independentLocks.feature:57](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocks.feature#L57)
- [coreApiWebdavLocks2/independentLocks.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocks.feature#L58)
+- [coreApiWebdavLocks2/independentLocksShareToShares.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L29)
- [coreApiWebdavLocks2/independentLocksShareToShares.feature:30](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L30)
- [coreApiWebdavLocks2/independentLocksShareToShares.feature:31](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L31)
-- [coreApiWebdavLocks2/independentLocksShareToShares.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L32)
-- [coreApiWebdavLocks2/independentLocksShareToShares.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L29)
+- [coreApiWebdavLocks2/independentLocksShareToShares.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L28)
+- [coreApiWebdavLocks2/independentLocksShareToShares.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L58)
- [coreApiWebdavLocks2/independentLocksShareToShares.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L59)
- [coreApiWebdavLocks2/independentLocksShareToShares.feature:60](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L60)
-- [coreApiWebdavLocks2/independentLocksShareToShares.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L61)
-- [coreApiWebdavLocks2/independentLocksShareToShares.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L58)
+- [coreApiWebdavLocks2/independentLocksShareToShares.feature:57](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocks2/independentLocksShareToShares.feature#L57)
- [coreApiWebdavLocksUnlock/unlock.feature:20](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L20)
- [coreApiWebdavLocksUnlock/unlock.feature:21](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L21)
- [coreApiWebdavLocksUnlock/unlock.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L40)
@@ -113,119 +113,119 @@ Synchronization features like etag propagation, setting mtime and locking files
- [coreApiWebdavLocksUnlock/unlock.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L64)
- [coreApiWebdavLocksUnlock/unlock.feature:65](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L65)
- [coreApiWebdavLocksUnlock/unlock.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlock.feature#L66)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L26)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L27)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L28)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L29)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L26)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:25](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L25)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L50)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:51](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L51)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:52](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L52)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L53)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L50)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:49](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L49)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:74](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L74)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:75](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L75)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:76](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L76)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:77](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L77)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:74](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L74)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:73](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L73)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L98)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L99)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:100](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L100)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:101](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L101)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L98)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:97](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L97)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L122)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L123)
- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L124)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:125](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L125)
-- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L122)
+- [coreApiWebdavLocksUnlock/unlockSharingToShares.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavLocksUnlock/unlockSharingToShares.feature#L121)
### Share
File and sync features in a shared scenario
### [Different response containing exact and non exact match in response of getting sharees](https://github.com/owncloud/ocis/issues/2376)
-- [coreApiSharees/sharees.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L98)
-- [coreApiSharees/sharees.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L99)
-- [coreApiSharees/sharees.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L118)
-- [coreApiSharees/sharees.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L119)
-- [coreApiSharees/sharees.feature:138](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L138)
-- [coreApiSharees/sharees.feature:139](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L139)
-- [coreApiSharees/sharees.feature:158](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L158)
-- [coreApiSharees/sharees.feature:159](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L159)
-- [coreApiSharees/sharees.feature:178](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L178)
-- [coreApiSharees/sharees.feature:179](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L179)
+- [coreApiSharees/sharees.feature:100](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L100)
+- [coreApiSharees/sharees.feature:101](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L101)
+- [coreApiSharees/sharees.feature:120](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L120)
+- [coreApiSharees/sharees.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L121)
+- [coreApiSharees/sharees.feature:140](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L140)
+- [coreApiSharees/sharees.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L141)
+- [coreApiSharees/sharees.feature:160](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L160)
+- [coreApiSharees/sharees.feature:161](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L161)
+- [coreApiSharees/sharees.feature:180](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L180)
+- [coreApiSharees/sharees.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharees/sharees.feature#L181)
#### [accepting matching name shared resources from different users/groups sets no serial identifiers on the resource name for the receiver](https://github.com/owncloud/ocis/issues/4289)
-- [coreApiShareManagementToShares/acceptShares.feature:285](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L285)
-- [coreApiShareManagementToShares/acceptShares.feature:315](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L315)
+- [coreApiShareManagementToShares/acceptShares.feature:238](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L238)
+- [coreApiShareManagementToShares/acceptShares.feature:260](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L260)
#### [Getting content of a shared file with same name returns 500](https://github.com/owncloud/ocis/issues/3880)
-- [coreApiShareManagementToShares/acceptShares.feature:494](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L494)
-- [coreApiShareManagementToShares/acceptShares.feature:559](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L559)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:129](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L129)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:128](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L128)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:164](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L164)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:163](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L163)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:38](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L38)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L37)
+- [coreApiShareManagementToShares/acceptShares.feature:459](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L459)
+- [coreApiShareManagementToShares/acceptShares.feature:524](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L524)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L131)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:130](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L130)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:166](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L166)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:165](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L165)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L40)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:39](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L39)
#### [file_target in share response](https://github.com/owncloud/product/issues/203) //todo
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:35](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L35)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:36](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L36)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L59)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L37)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:38](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L38)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L61)
#### [different webdav permissions in ocis](https://github.com/owncloud/ocis/issues/4929)
-- [coreApiShareManagementToShares/mergeShare.feature:112](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L112)
+- [coreApiShareManagementToShares/mergeShare.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L98)
#### [file_target of a auto-renamed file is not correct directly after sharing](https://github.com/owncloud/ocis/issues/32322)
-- [coreApiShareManagementToShares/mergeShare.feature:115](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L115)
+- [coreApiShareManagementToShares/mergeShare.feature:111](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L111)
#### [not possible to move file into a received folder](https://github.com/owncloud/ocis/issues/764)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:532](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L532)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:531](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L531)
#### [path property in pending shares gives only filename](https://github.com/owncloud/ocis/issues/2156)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:742](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L742)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:741](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L741)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:761](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L761)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:760](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L760)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:777](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L777)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:776](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L776)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:726](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L726)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:727](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L727)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:743](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L743)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:744](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L744)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:762](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L762)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:763](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L763)
#### [File deletion using dav gives unique string in filename in the trashbin](https://github.com/owncloud/product/issues/178)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L62)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:76](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L76)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L64)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:78](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L78)
cannot share a folder with create permission
#### [Listing shares via ocs API does not show path for parent folders](https://github.com/owncloud/ocis/issues/1231)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:129](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L129)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L142)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:177](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L177)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:178](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L178)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L131)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L144)
- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:179](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L179)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L176)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:196](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L196)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:197](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L197)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:180](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L180)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:178](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L178)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L181)
- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:198](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L198)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L195)
-- [coreApiShareOperationsToShares1/gettingShares.feature:188](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L188)
-- [coreApiShareOperationsToShares1/gettingShares.feature:187](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L187)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:325](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L325)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:326](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L326)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:199](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L199)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:197](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L197)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:200](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L200)
+- [coreApiShareOperationsToShares1/gettingShares.feature:189](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L189)
+- [coreApiShareOperationsToShares1/gettingShares.feature:190](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L190)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:327](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L327)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:328](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L328)
#### [OCS error message for attempting to access share via share id as an unauthorized user is not informative](https://github.com/owncloud/ocis/issues/1233)
-- [coreApiShareOperationsToShares1/gettingShares.feature:151](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L151)
-- [coreApiShareOperationsToShares1/gettingShares.feature:150](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L150)
+- [coreApiShareOperationsToShares1/gettingShares.feature:152](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L152)
+- [coreApiShareOperationsToShares1/gettingShares.feature:153](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L153)
#### [Public link enforce permissions](https://github.com/owncloud/ocis/issues/1269)
-- [coreApiSharePublicLink1/accessToPublicLinkShare.feature:10](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature#L10)
-- [coreApiSharePublicLink1/accessToPublicLinkShare.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature#L29)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:167](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L167)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:168](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L168)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:343](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L343)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:353](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L353)
+- [coreApiSharePublicLink1/accessToPublicLinkShare.feature:13](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature#L13)
+- [coreApiSharePublicLink1/accessToPublicLinkShare.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/accessToPublicLinkShare.feature#L32)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:170](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L170)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:171](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L171)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:345](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L345)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:355](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L355)
#### [Ability to return error messages in Webdav response bodies](https://github.com/owncloud/ocis/issues/1293)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:68](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L68)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:69](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L69)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:71](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L71)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:72](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L72)
#### [copying a folder within a public link folder to folder with same name as an already existing file overwrites the parent file](https://github.com/owncloud/ocis/issues/1232)
@@ -245,15 +245,15 @@ File and sync features in a shared scenario
#### [Adding public upload to a read only shared folder as a receipient is allowed ](https://github.com/owncloud/ocis/issues/2164)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:272](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L272)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:270](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L270)
- [coreApiSharePublicLink3/updatePublicLinkShare.feature:271](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L271)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:319](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L319)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:320](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L320)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:316](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L316)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:317](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L317)
#### [Upload-only shares must not overwrite but create a separate file](https://github.com/owncloud/ocis/issues/1267)
- [coreApiSharePublicLink3/uploadToPublicLinkShare.feature:10](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/uploadToPublicLinkShare.feature#L10)
-- [coreApiSharePublicLink3/uploadToPublicLinkShare.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/uploadToPublicLinkShare.feature#L131)
+- [coreApiSharePublicLink3/uploadToPublicLinkShare.feature:111](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/uploadToPublicLinkShare.feature#L111)
#### [Set quota over settings](https://github.com/owncloud/ocis/issues/1290)
_requires a [CS3 user provisioning api that can update the quota for a user](https://github.com/cs3org/cs3apis/pull/95#issuecomment-772780683)_
@@ -263,25 +263,25 @@ _requires a [CS3 user provisioning api that can update the quota for a user](htt
#### [share permissions are not enforced](https://github.com/owncloud/product/issues/270) //todo
-- [coreApiShareReshareToShares3/reShareUpdate.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L64)
- [coreApiShareReshareToShares3/reShareUpdate.feature:63](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L63)
+- [coreApiShareReshareToShares3/reShareUpdate.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L62)
#### [file_target in share response](https://github.com/owncloud/product/issues/203) //todo
-- [coreApiShareReshareToShares2/reShareSubfolder.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares2/reShareSubfolder.feature#L154)
- [coreApiShareReshareToShares2/reShareSubfolder.feature:153](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares2/reShareSubfolder.feature#L153)
+- [coreApiShareReshareToShares2/reShareSubfolder.feature:152](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares2/reShareSubfolder.feature#L152)
#### [deleting a file inside a received shared folder is moved to the trash-bin of the sharer not the receiver](https://github.com/owncloud/ocis/issues/1124)
-- [coreApiTrashbin/trashbinSharingToShares.feature:45](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L45)
-- [coreApiTrashbin/trashbinSharingToShares.feature:72](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L72)
-- [coreApiTrashbin/trashbinSharingToShares.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L99)
-- [coreApiTrashbin/trashbinSharingToShares.feature:127](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L127)
-- [coreApiTrashbin/trashbinSharingToShares.feature:155](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L155)
-- [coreApiTrashbin/trashbinSharingToShares.feature:183](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L183)
+- [coreApiTrashbin/trashbinSharingToShares.feature:44](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L44)
+- [coreApiTrashbin/trashbinSharingToShares.feature:71](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L71)
+- [coreApiTrashbin/trashbinSharingToShares.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L98)
+- [coreApiTrashbin/trashbinSharingToShares.feature:126](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L126)
+- [coreApiTrashbin/trashbinSharingToShares.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L154)
+- [coreApiTrashbin/trashbinSharingToShares.feature:182](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L182)
#### [Folder overwrite on shared files doesn't works correctly on copying file](https://github.com/owncloud/ocis/issues/2183)
-- [coreApiWebdavProperties1/copyFile.feature:466](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L466)
-- [coreApiWebdavProperties1/copyFile.feature:548](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L548)
+- [coreApiWebdavProperties1/copyFile.feature:465](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L465)
+- [coreApiWebdavProperties1/copyFile.feature:547](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L547)
#### [cannot get share-types webdav property](https://github.com/owncloud/ocis/issues/567)
- [coreApiWebdavProperties2/getFileProperties.feature:238](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L238)
@@ -294,19 +294,19 @@ _requires a [CS3 user provisioning api that can update the quota for a user](htt
#### [changing user quota gives ocs status 103 / Cannot set quota](https://github.com/owncloud/product/issues/247)
_requires a [CS3 user provisioning api that can update the quota for a user](https://github.com/cs3org/cs3apis/pull/95#issuecomment-772780683)_
-- [coreApiShareOperationsToShares2/uploadToShare.feature:210](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L210)
-- [coreApiShareOperationsToShares2/uploadToShare.feature:209](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L209)
+- [coreApiShareOperationsToShares2/uploadToShare.feature:211](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L211)
+- [coreApiShareOperationsToShares2/uploadToShare.feature:212](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/uploadToShare.feature#L212)
#### [not possible to move file into a received folder](https://github.com/owncloud/ocis/issues/764)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:25](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L25)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L24)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:68](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L68)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:69](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L69)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:91](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L91)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:90](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L90)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:107](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L107)
-- [coreApiShareOperationsToShares1/changingFilesShare.feature:106](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L106)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L26)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L27)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:70](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L70)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:71](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L71)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L92)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:93](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L93)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:108](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L108)
+- [coreApiShareOperationsToShares1/changingFilesShare.feature:109](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/changingFilesShare.feature#L109)
- [coreApiWebdavMove2/moveShareOnOcis.feature:30](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L30)
- [coreApiWebdavMove2/moveShareOnOcis.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L32)
- [coreApiWebdavMove2/moveShareOnOcis.feature:75](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavMove2/moveShareOnOcis.feature#L75)
@@ -324,109 +324,59 @@ _requires a [CS3 user provisioning api that can update the quota for a user](htt
- [coreApiVersions/fileVersions.feature:276](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L276)
#### [restoring an older version of a shared file deletes the share](https://github.com/owncloud/ocis/issues/765)
-- [coreApiShareManagementToShares/acceptShares.feature:483](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L483)
+- [coreApiShareManagementToShares/acceptShares.feature:448](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L448)
- [coreApiVersions/fileVersions.feature:288](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L288)
#### [Expiration date for shares is not implemented](https://github.com/owncloud/ocis/issues/1250)
#### Expiration date of user shares
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:34](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L34)
- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:33](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L33)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:86](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L86)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:87](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L87)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:88](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L88)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:85](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L85)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:143](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L143)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:144](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L144)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:145](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L145)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L142)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:201](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L201)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:202](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L202)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L203)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:200](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L200)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:257](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L257)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:258](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L258)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:259](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L259)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:256](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L256)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:287](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L287)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:288](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L288)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:289](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L289)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:286](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L286)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:318](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L318)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:319](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L319)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:320](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L320)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:317](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L317)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:346](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L346)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:347](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L347)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:348](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L348)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:345](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L345)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:379](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L379)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:380](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L380)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:381](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L381)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:382](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L382)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:383](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L383)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:378](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L378)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:413](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L413)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:414](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L414)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:415](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L415)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:412](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L412)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:444](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L444)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:443](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L443)
+- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L32)
#### Expiration date of group shares
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:60](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L60)
- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L59)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:116](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L116)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:117](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L117)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L118)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:115](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L115)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:172](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L172)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:173](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L173)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:174](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L174)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:171](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L171)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:232](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L232)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:233](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L233)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:234](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L234)
-- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:231](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L231)
+- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L58)
+- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L81)
+- [coreApiShareReshareToShares3/reShareWithExpiryDate.feature:82](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareWithExpiryDate.feature#L82)
#### [Getting content of a shared file with same name returns 500](https://github.com/owncloud/ocis/issues/3880)
-- [coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature:14](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature#L14)
+- [coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature:16](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares1/createShareUniqueReceivedNames.feature#L16)
#### [Empty OCS response for a share create request using a disabled user](https://github.com/owncloud/ocis/issues/2212)
-- [coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature:19](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature#L19)
-- [coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature#L22)
+- [coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature#L24)
+- [coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature:21](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareWithDisabledUser.feature#L21)
//todo
+- [coreApiShareUpdateToShares/updateShare.feature:96](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L96)
- [coreApiShareUpdateToShares/updateShare.feature:97](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L97)
- [coreApiShareUpdateToShares/updateShare.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L98)
- [coreApiShareUpdateToShares/updateShare.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L99)
-- [coreApiShareUpdateToShares/updateShare.feature:100](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L100)
+- [coreApiShareUpdateToShares/updateShare.feature:94](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L94)
- [coreApiShareUpdateToShares/updateShare.feature:95](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L95)
-- [coreApiShareUpdateToShares/updateShare.feature:96](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L96)
+- [coreApiShareUpdateToShares/updateShare.feature:120](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L120)
- [coreApiShareUpdateToShares/updateShare.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L121)
- [coreApiShareUpdateToShares/updateShare.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L122)
- [coreApiShareUpdateToShares/updateShare.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L123)
-- [coreApiShareUpdateToShares/updateShare.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L124)
+- [coreApiShareUpdateToShares/updateShare.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L118)
- [coreApiShareUpdateToShares/updateShare.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L119)
-- [coreApiShareUpdateToShares/updateShare.feature:120](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L120)
#### [Edit user share response has an "name" field](https://github.com/owncloud/ocis/issues/1225)
-- [coreApiShareUpdateToShares/updateShare.feature:242](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L242)
- [coreApiShareUpdateToShares/updateShare.feature:241](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L241)
+- [coreApiShareUpdateToShares/updateShare.feature:240](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L240)
#### [user can access version metadata of a received share before accepting it](https://github.com/owncloud/ocis/issues/760)
- [coreApiVersions/fileVersions.feature:313](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L313)
#### [Share lists deleted user as 'user'](https://github.com/owncloud/ocis/issues/903)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:677](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L677)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:676](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L676)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:678](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L678)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:679](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L679)
#### [OCIS-storage overwriting a file as share receiver, does not create a new file version for the sharer](https://github.com/owncloud/ocis/issues/766) //todo
- [coreApiVersions/fileVersions.feature:433](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiVersions/fileVersions.feature#L433)
#### [deleting a share with wrong authentication returns OCS status 996 / HTTP 500](https://github.com/owncloud/ocis/issues/1229)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:226](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L226)
-- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:225](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L225)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:227](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L227)
+- [coreApiShareManagementBasicToShares/deleteShareFromShares.feature:228](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/deleteShareFromShares.feature#L228)
### User Management
User and group management features
@@ -435,46 +385,46 @@ User and group management features
API, search, favorites, config, capabilities, not existing endpoints, CORS and others
#### [no robots.txt available](https://github.com/owncloud/ocis/issues/1314)
-- [coreApiMain/main.feature:5](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/main.feature#L5) Scenario: robots.txt file should be accessible
+- [coreApiMain/main.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/main.feature#L8) Scenario: robots.txt file should be accessible
#### [Ability to return error messages in Webdav response bodies](https://github.com/owncloud/ocis/issues/1293)
-- [coreApiAuthOcs/ocsDELETEAuth.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsDELETEAuth.feature#L8) Scenario: send DELETE requests to OCS endpoints as admin with wrong password
-- [coreApiAuthOcs/ocsGETAuth.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L8) Scenario: using OCS anonymously
-- [coreApiAuthOcs/ocsGETAuth.feature:29](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L29) Scenario: ocs config end point accessible by unauthorized users
-- [coreApiAuthOcs/ocsGETAuth.feature:42](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L42) Scenario: using OCS with non-admin basic auth
-- [coreApiAuthOcs/ocsGETAuth.feature:73](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L73) Scenario: using OCS as normal user with wrong password
-- [coreApiAuthOcs/ocsGETAuth.feature:104](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L104) Scenario:using OCS with admin basic auth
-- [coreApiAuthOcs/ocsGETAuth.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L121) Scenario: using OCS as admin user with wrong password
-- [coreApiAuthOcs/ocsPOSTAuth.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPOSTAuth.feature#L8) Scenario: send POST requests to OCS endpoints as normal user with wrong password
-- [coreApiAuthOcs/ocsPUTAuth.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L8) Scenario: send PUT request to OCS endpoints as admin with wrong password
+- [coreApiAuthOcs/ocsDELETEAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsDELETEAuth.feature#L11) Scenario: send DELETE requests to OCS endpoints as admin with wrong password
+- [coreApiAuthOcs/ocsGETAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L11) Scenario: using OCS anonymously
+- [coreApiAuthOcs/ocsGETAuth.feature:32](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L32) Scenario: ocs config end point accessible by unauthorized users
+- [coreApiAuthOcs/ocsGETAuth.feature:45](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L45) Scenario: using OCS with non-admin basic auth
+- [coreApiAuthOcs/ocsGETAuth.feature:76](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L76) Scenario: using OCS as normal user with wrong password
+- [coreApiAuthOcs/ocsGETAuth.feature:107](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L107) Scenario:using OCS with admin basic auth
+- [coreApiAuthOcs/ocsGETAuth.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsGETAuth.feature#L124) Scenario: using OCS as admin user with wrong password
+- [coreApiAuthOcs/ocsPOSTAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPOSTAuth.feature#L11) Scenario: send POST requests to OCS endpoints as normal user with wrong password
+- [coreApiAuthOcs/ocsPUTAuth.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L11) Scenario: send PUT request to OCS endpoints as admin with wrong password
#### [sending MKCOL requests to another or non-existing user's webDav endpoints as normal user should return 404](https://github.com/owncloud/ocis/issues/5049)
_ocdav: api compatibility, return correct status code_
-- [coreApiAuthWebDav/webDavDELETEAuth.feature:57](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavDELETEAuth.feature#L57) Scenario: send DELETE requests to another user's webDav endpoints as normal user
-- [coreApiAuthWebDav/webDavPROPFINDAuth.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPROPFINDAuth.feature#L55) Scenario: send PROPFIND requests to another user's webDav endpoints as normal user
-- [coreApiAuthWebDav/webDavPROPPATCHAuth.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPROPPATCHAuth.feature#L56) Scenario: send PROPPATCH requests to another user's webDav endpoints as normal user
-- [coreApiAuthWebDav/webDavMKCOLAuth.feature:52](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMKCOLAuth.feature#L52) Scenario: send MKCOL requests to another user's webDav endpoints as normal user
-- [coreApiAuthWebDav/webDavMKCOLAuth.feature:63](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMKCOLAuth.feature#L63) Scenario: send MKCOL requests to another user's webDav endpoints as normal user using the spaces WebDAV API
+- [coreApiAuthWebDav/webDavDELETEAuth.feature:61](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavDELETEAuth.feature#L61) Scenario: send DELETE requests to another user's webDav endpoints as normal user
+- [coreApiAuthWebDav/webDavPROPFINDAuth.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPROPFINDAuth.feature#L58) Scenario: send PROPFIND requests to another user's webDav endpoints as normal user
+- [coreApiAuthWebDav/webDavPROPPATCHAuth.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPROPPATCHAuth.feature#L59) Scenario: send PROPPATCH requests to another user's webDav endpoints as normal user
+- [coreApiAuthWebDav/webDavMKCOLAuth.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMKCOLAuth.feature#L55) Scenario: send MKCOL requests to another user's webDav endpoints as normal user
+- [coreApiAuthWebDav/webDavMKCOLAuth.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMKCOLAuth.feature#L66) Scenario: send MKCOL requests to another user's webDav endpoints as normal user using the spaces WebDAV API
#### [trying to lock file of another user gives http 200](https://github.com/owncloud/ocis/issues/2176)
-- [coreApiAuthWebDav/webDavLOCKAuth.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavLOCKAuth.feature#L56) Scenario: send LOCK requests to another user's webDav endpoints as normal user
+- [coreApiAuthWebDav/webDavLOCKAuth.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavLOCKAuth.feature#L59) Scenario: send LOCK requests to another user's webDav endpoints as normal user
#### [send (MOVE, COPY) requests to another user's webDav endpoints as normal user gives 400 instead of 403](https://github.com/owncloud/ocis/issues/3882)
_ocdav: api compatibility, return correct status code_
-- [coreApiAuthWebDav/webDavMOVEAuth.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMOVEAuth.feature#L55) Scenario: send MOVE requests to another user's webDav endpoints as normal user
-- [coreApiAuthWebDav/webDavCOPYAuth.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavCOPYAuth.feature#L59)
+- [coreApiAuthWebDav/webDavMOVEAuth.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMOVEAuth.feature#L58) Scenario: send MOVE requests to another user's webDav endpoints as normal user
+- [coreApiAuthWebDav/webDavCOPYAuth.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavCOPYAuth.feature#L58)
#### [send POST requests to another user's webDav endpoints as normal user](https://github.com/owncloud/ocis/issues/1287)
_ocdav: api compatibility, return correct status code_
-- [coreApiAuthWebDav/webDavPOSTAuth.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPOSTAuth.feature#L56) Scenario: send POST requests to another user's webDav endpoints as normal user
+- [coreApiAuthWebDav/webDavPOSTAuth.feature:59](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavPOSTAuth.feature#L59) Scenario: send POST requests to another user's webDav endpoints as normal user
#### [Using double slash in URL to access a folder gives 501 and other status codes](https://github.com/owncloud/ocis/issues/1667)
-- [coreApiAuthWebDav/webDavSpecialURLs.feature:34](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L34)
-- [coreApiAuthWebDav/webDavSpecialURLs.feature:121](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L121)
-- [coreApiAuthWebDav/webDavSpecialURLs.feature:163](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L163)
+- [coreApiAuthWebDav/webDavSpecialURLs.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L37)
+- [coreApiAuthWebDav/webDavSpecialURLs.feature:124](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L124)
+- [coreApiAuthWebDav/webDavSpecialURLs.feature:166](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavSpecialURLs.feature#L166)
#### [Difference in response content of status.php and default capabilities](https://github.com/owncloud/ocis/issues/1286)
-- [coreApiCapabilities/capabilitiesWithNormalUser.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilitiesWithNormalUser.feature#L11) Scenario: getting default capabilities with normal user
+- [coreApiCapabilities/capabilitiesWithNormalUser.feature:14](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilitiesWithNormalUser.feature#L14)
#### [spaces endpoint does not allow REPORT requests](https://github.com/owncloud/ocis/issues/4034)
- [coreApiWebdavOperations/search.feature:42](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/search.feature#L42)
@@ -499,27 +449,27 @@ _ocdav: api compatibility, return correct status code_
- [coreApiWebdavOperations/search.feature:266](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/search.feature#L266)
#### [Support for favorites](https://github.com/owncloud/ocis/issues/1228)
-- [coreApiFavorites/favorites.feature:115](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L115)
-- [coreApiFavorites/favorites.feature:116](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L116)
-- [coreApiFavorites/favorites.feature:167](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L167)
-- [coreApiFavorites/favorites.feature:168](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L168)
-- [coreApiFavorites/favorites.feature:200](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L200)
-- [coreApiFavorites/favorites.feature:201](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L201)
-- [coreApiFavorites/favorites.feature:219](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L219)
-- [coreApiFavorites/favorites.feature:220](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L220)
-- [coreApiFavorites/favoritesSharingToShares.feature:82](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L82)
-- [coreApiFavorites/favoritesSharingToShares.feature:81](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L81)
+- [coreApiFavorites/favorites.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L118)
+- [coreApiFavorites/favorites.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L119)
+- [coreApiFavorites/favorites.feature:170](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L170)
+- [coreApiFavorites/favorites.feature:171](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L171)
+- [coreApiFavorites/favorites.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L203)
+- [coreApiFavorites/favorites.feature:204](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L204)
+- [coreApiFavorites/favorites.feature:222](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L222)
+- [coreApiFavorites/favorites.feature:223](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favorites.feature#L223)
+- [coreApiFavorites/favoritesSharingToShares.feature:68](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L68)
+- [coreApiFavorites/favoritesSharingToShares.feature:69](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L69)
#### [resource inside Shares dir is not found using the spaces WebDAV API](https://github.com/owncloud/ocis/issues/2968)
-- [coreApiFavorites/favoritesSharingToShares.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L22)
-- [coreApiFavorites/favoritesSharingToShares.feature:21](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L21)
-- [coreApiFavorites/favoritesSharingToShares.feature:37](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L37)
-- [coreApiFavorites/favoritesSharingToShares.feature:36](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L36)
-- [coreApiFavorites/favoritesSharingToShares.feature:51](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L51)
-- [coreApiFavorites/favoritesSharingToShares.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L50)
-- [coreApiFavorites/favoritesSharingToShares.feature:67](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L67)
-- [coreApiFavorites/favoritesSharingToShares.feature:66](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L66)
-- [coreApiMain/checksums.feature:203](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L203)
+- [coreApiFavorites/favoritesSharingToShares.feature:23](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L23)
+- [coreApiFavorites/favoritesSharingToShares.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L24)
+- [coreApiFavorites/favoritesSharingToShares.feature:38](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L38)
+- [coreApiFavorites/favoritesSharingToShares.feature:39](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L39)
+- [coreApiFavorites/favoritesSharingToShares.feature:52](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L52)
+- [coreApiFavorites/favoritesSharingToShares.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L53)
+- [coreApiFavorites/favoritesSharingToShares.feature:83](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L83)
+- [coreApiFavorites/favoritesSharingToShares.feature:84](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiFavorites/favoritesSharingToShares.feature#L84)
+- [coreApiMain/checksums.feature:190](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiMain/checksums.feature#L190)
#### [WWW-Authenticate header for unauthenticated requests is not clear](https://github.com/owncloud/ocis/issues/2285)
- [coreApiWebdavOperations/refuseAccess.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/refuseAccess.feature#L22)
@@ -528,14 +478,14 @@ _ocdav: api compatibility, return correct status code_
- [coreApiWebdavOperations/refuseAccess.feature:36](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/refuseAccess.feature#L36)
#### [App Passwords/Tokens for legacy WebDAV clients](https://github.com/owncloud/ocis/issues/197)
-- [coreApiAuthWebDav/webDavDELETEAuth.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavDELETEAuth.feature#L135)
+- [coreApiAuthWebDav/webDavDELETEAuth.feature:139](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavDELETEAuth.feature#L139)
#### [Sharing a same file twice to the same group](https://github.com/owncloud/ocis/issues/1710)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:725](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L725)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:724](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L724)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:778](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L778)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:779](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L779)
#### [Request to edit non-existing user by authorized admin gets unauthorized in http response](https://github.com/owncloud/ocis/issues/38423)
-- [coreApiAuthOcs/ocsPUTAuth.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L24)
+- [coreApiAuthOcs/ocsPUTAuth.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthOcs/ocsPUTAuth.feature#L27)
### Won't fix
@@ -545,8 +495,8 @@ Not everything needs to be implemented for ocis. While the oc10 testsuite covers
* _Blacklisted ignored files are no longer required because ocis can handle `.htaccess` files without security implications introduced by serving user provided files with apache._
#### [Blacklist files extensions](https://github.com/owncloud/ocis/issues/2177)
-- [coreApiWebdavProperties1/copyFile.feature:120](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L120)
- [coreApiWebdavProperties1/copyFile.feature:119](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L119)
+- [coreApiWebdavProperties1/copyFile.feature:118](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L118)
- [coreApiWebdavProperties1/createFileFolder.feature:98](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolder.feature#L98)
- [coreApiWebdavProperties1/createFileFolder.feature:99](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolder.feature#L99)
- [coreApiWebdavUpload1/uploadFile.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUpload1/uploadFile.feature#L181)
@@ -579,35 +529,35 @@ Not everything needs to be implemented for ocis. While the oc10 testsuite covers
- [coreApiWebdavUploadTUS/optionsRequest.feature:35](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/optionsRequest.feature#L35)
- [coreApiWebdavUploadTUS/optionsRequest.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/optionsRequest.feature#L62)
- [coreApiWebdavUploadTUS/optionsRequest.feature:89](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/optionsRequest.feature#L89)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L176)
- [coreApiWebdavUploadTUS/uploadToShare.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L175)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L195)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:174](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L174)
- [coreApiWebdavUploadTUS/uploadToShare.feature:194](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L194)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:214](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L214)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:193](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L193)
- [coreApiWebdavUploadTUS/uploadToShare.feature:213](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L213)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:253](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L253)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:212](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L212)
- [coreApiWebdavUploadTUS/uploadToShare.feature:252](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L252)
-- [coreApiWebdavUploadTUS/uploadToShare.feature:295](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L295)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:251](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L251)
- [coreApiWebdavUploadTUS/uploadToShare.feature:294](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L294)
+- [coreApiWebdavUploadTUS/uploadToShare.feature:293](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavUploadTUS/uploadToShare.feature#L293)
#### [Share inaccessible if folder with same name was deleted and recreated](https://github.com/owncloud/ocis/issues/1787)
-- [coreApiShareReshareToShares1/reShare.feature:266](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L266)
- [coreApiShareReshareToShares1/reShare.feature:265](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L265)
-- [coreApiShareReshareToShares1/reShare.feature:284](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L284)
+- [coreApiShareReshareToShares1/reShare.feature:264](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L264)
- [coreApiShareReshareToShares1/reShare.feature:283](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L283)
-- [coreApiShareReshareToShares1/reShare.feature:302](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L302)
+- [coreApiShareReshareToShares1/reShare.feature:282](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L282)
- [coreApiShareReshareToShares1/reShare.feature:301](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L301)
+- [coreApiShareReshareToShares1/reShare.feature:300](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares1/reShare.feature#L300)
#### [incorrect ocs(v2) status value when getting info of share that does not exist should be 404, gives 998](https://github.com/owncloud/product/issues/250)
_ocs: api compatibility, return correct status code_
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:48](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L48)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:49](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L49)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L50)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:51](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L51)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:52](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L52)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:53](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L53)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:54](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L54)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:47](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L47)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:55](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L55)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:56](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L56)
#### [Trying to accept a share with invalid ID gives incorrect OCS and HTTP status](https://github.com/owncloud/ocis/issues/2111)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:85](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L85)
@@ -617,19 +567,19 @@ _ocs: api compatibility, return correct status code_
- [coreApiShareOperationsToShares2/shareAccessByID.feature:89](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L89)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:90](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L90)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:91](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L91)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:84](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L84)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:104](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L104)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:92](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L92)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:103](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L103)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:104](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L104)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:134](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L134)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L135)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L136)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:137](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L137)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:138](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L138)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:139](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L139)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:140](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L140)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:141](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L141)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:142](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L142)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L135)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:155](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L155)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L154)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:152](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L152)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:153](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L153)
#### [[OC-storage] share-types field empty for shared file folder in webdav response](https://github.com/owncloud/ocis/issues/2144)
- [coreApiWebdavProperties2/getFileProperties.feature:215](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L215)
@@ -640,61 +590,61 @@ _ocs: api compatibility, return correct status code_
- [coreApiWebdavProperties2/getFileProperties.feature:276](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L276)
#### [Cannot move folder/file from one received share to another](https://github.com/owncloud/ocis/issues/2442)
-- [coreApiShareUpdateToShares/updateShare.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L195)
-- [coreApiShareUpdateToShares/updateShare.feature:159](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L159)
-- [coreApiShareManagementToShares/mergeShare.feature:135](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L135)
+- [coreApiShareUpdateToShares/updateShare.feature:194](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L194)
+- [coreApiShareUpdateToShares/updateShare.feature:158](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareUpdateToShares/updateShare.feature#L158)
+- [coreApiShareManagementToShares/mergeShare.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/mergeShare.feature#L131)
#### [Sharing folder and sub-folder with same user but different permission,the permission of sub-folder is not obeyed ](https://github.com/owncloud/ocis/issues/2440)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:260](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L260)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:295](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L295)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:404](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L404)
-- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:439](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L439)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:262](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L262)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:297](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L297)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:406](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L406)
+- [coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature:441](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareCreateSpecialToShares2/createShareReceivedInMultipleWays.feature#L441)
#### [copying the file inside Shares folder returns 404](https://github.com/owncloud/ocis/issues/3874)
-- [coreApiWebdavProperties1/copyFile.feature:410](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L410)
- [coreApiWebdavProperties1/copyFile.feature:409](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L409)
-- [coreApiWebdavProperties1/copyFile.feature:436](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L436)
+- [coreApiWebdavProperties1/copyFile.feature:408](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L408)
- [coreApiWebdavProperties1/copyFile.feature:435](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L435)
+- [coreApiWebdavProperties1/copyFile.feature:434](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/copyFile.feature#L434)
#### [Shares to deleted group listed in the response](https://github.com/owncloud/ocis/issues/2441)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:529](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L529)
-- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:528](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L528)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:530](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L530)
+- [coreApiShareManagementBasicToShares/createShareToSharesFolder.feature:534](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementBasicToShares/createShareToSharesFolder.feature#L534)
### [Share path in the response is different between share states](https://github.com/owncloud/ocis/issues/2540)
-- [coreApiShareManagementToShares/acceptShares.feature:64](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L64)
-- [coreApiShareManagementToShares/acceptShares.feature:87](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L87)
-- [coreApiShareManagementToShares/acceptShares.feature:165](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L165)
-- [coreApiShareManagementToShares/acceptShares.feature:188](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L188)
-- [coreApiShareManagementToShares/acceptShares.feature:226](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L226)
-- [coreApiShareManagementToShares/acceptShares.feature:260](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L260)
-- [coreApiShareManagementToShares/acceptShares.feature:480](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L480)
-- [coreApiShareOperationsToShares2/shareAccessByID.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L123)
+- [coreApiShareManagementToShares/acceptShares.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L28)
+- [coreApiShareManagementToShares/acceptShares.feature:62](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L62)
+- [coreApiShareManagementToShares/acceptShares.feature:134](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L134)
+- [coreApiShareManagementToShares/acceptShares.feature:155](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L155)
+- [coreApiShareManagementToShares/acceptShares.feature:183](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L183)
+- [coreApiShareManagementToShares/acceptShares.feature:228](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L228)
+- [coreApiShareManagementToShares/acceptShares.feature:438](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L438)
- [coreApiShareOperationsToShares2/shareAccessByID.feature:122](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L122)
-- [coreApiShareManagementToShares/acceptShares.feature:229](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L229)
+- [coreApiShareOperationsToShares2/shareAccessByID.feature:123](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares2/shareAccessByID.feature#L123)
+- [coreApiShareManagementToShares/acceptShares.feature:208](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/acceptShares.feature#L208)
### [Content-type is not multipart/byteranges when downloading file with Range Header](https://github.com/owncloud/ocis/issues/2677)
- [coreApiWebdavOperations/downloadFile.feature:184](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/downloadFile.feature#L184)
- [coreApiWebdavOperations/downloadFile.feature:185](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/downloadFile.feature#L185)
#### [Creating a new folder which is a substring of Shares leads to Unknown Error](https://github.com/owncloud/ocis/issues/3033)
-- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:28](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L28)
-- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:31](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L31)
-- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:44](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L44)
-- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:47](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L47)
+- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L27)
+- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:30](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L30)
+- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:43](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L43)
+- [coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature:46](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties1/createFileFolderWhenSharesExist.feature#L46)
#### [moveShareInsideAnotherShare behaves differently on oCIS than oC10](https://github.com/owncloud/ocis/issues/3047)
-- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:24](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L24)
-- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:44](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L44)
-- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:58](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L58)
+- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:23](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L23)
+- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:43](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L43)
+- [coreApiShareManagementToShares/moveShareInsideAnotherShare.feature:57](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveShareInsideAnotherShare.feature#L57)
#### [resource path is included in the returned error message](https://github.com/owncloud/ocis/issues/3344)
- [coreApiWebdavProperties2/getFileProperties.feature:311](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavProperties2/getFileProperties.feature#L311)
#### [OCS status code zero](https://github.com/owncloud/ocis/issues/3621)
-- [coreApiShareManagementToShares/moveReceivedShare.feature:14](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature#L14)
+- [coreApiShareManagementToShares/moveReceivedShare.feature:13](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareManagementToShares/moveReceivedShare.feature#L13)
#### [HTTP status code differ while listing the contents of another user's trash bin](https://github.com/owncloud/ocis/issues/3561)
-- [coreApiTrashbin/trashbinFilesFolders.feature:263](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L263)
+- [coreApiTrashbin/trashbinFilesFolders.feature:249](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L249)
#### [Cannot disable the dav propfind depth infinity for resources](https://github.com/owncloud/ocis/issues/3720)
- [coreApiWebdavOperations/listFiles.feature:364](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/listFiles.feature#L364)
@@ -722,19 +672,20 @@ _ocs: api compatibility, return correct status code_
- [coreApiTrashbin/trashbinFilesFolders.feature:95](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L95)
- [coreApiTrashbin/trashbinFilesFolders.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L131)
- [coreApiTrashbin/trashbinFilesFolders.feature:154](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L154)
-- [coreApiTrashbin/trashbinFilesFolders.feature:320](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L320)
-- [coreApiTrashbin/trashbinFilesFolders.feature:321](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L321)
-- [coreApiTrashbin/trashbinFilesFolders.feature:322](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L322)
-- [coreApiTrashbin/trashbinFilesFolders.feature:323](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L323)
-- [coreApiTrashbin/trashbinFilesFolders.feature:324](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L324)
-- [coreApiTrashbin/trashbinFilesFolders.feature:319](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L319)
-- [coreApiTrashbin/trashbinFilesFolders.feature:346](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L346)
-- [coreApiTrashbin/trashbinFilesFolders.feature:366](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L366)
-- [coreApiTrashbin/trashbinFilesFolders.feature:420](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L420)
-- [coreApiTrashbin/trashbinFilesFolders.feature:457](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L457)
-- [coreApiTrashbin/trashbinSharingToShares.feature:23](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L23)
-- [coreApiTrashbin/trashbinSharingToShares.feature:206](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L206)
-- [coreApiTrashbin/trashbinSharingToShares.feature:230](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L230)
+- [coreApiTrashbin/trashbinFilesFolders.feature:287](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L287)
+- [coreApiTrashbin/trashbinFilesFolders.feature:308](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L308)
+- [coreApiTrashbin/trashbinFilesFolders.feature:305](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L305)
+- [coreApiTrashbin/trashbinFilesFolders.feature:306](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L306)
+- [coreApiTrashbin/trashbinFilesFolders.feature:307](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L307)
+- [coreApiTrashbin/trashbinFilesFolders.feature:309](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L309)
+- [coreApiTrashbin/trashbinFilesFolders.feature:310](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L310)
+- [coreApiTrashbin/trashbinFilesFolders.feature:332](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L332)
+- [coreApiTrashbin/trashbinFilesFolders.feature:352](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L352)
+- [coreApiTrashbin/trashbinFilesFolders.feature:443](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L443)
+- [coreApiTrashbin/trashbinFilesFolders.feature:406](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinFilesFolders.feature#L406)
+- [coreApiTrashbin/trashbinSharingToShares.feature:22](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L22)
+- [coreApiTrashbin/trashbinSharingToShares.feature:205](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L205)
+- [coreApiTrashbin/trashbinSharingToShares.feature:229](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbin/trashbinSharingToShares.feature#L229)
- [coreApiTrashbinRestore/trashbinRestore.feature:34](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L34)
- [coreApiTrashbinRestore/trashbinRestore.feature:35](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L35)
- [coreApiTrashbinRestore/trashbinRestore.feature:50](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L50)
@@ -753,44 +704,44 @@ _ocs: api compatibility, return correct status code_
- [coreApiTrashbinRestore/trashbinRestore.feature:111](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L111)
- [coreApiTrashbinRestore/trashbinRestore.feature:130](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L130)
- [coreApiTrashbinRestore/trashbinRestore.feature:131](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L131)
-- [coreApiTrashbinRestore/trashbinRestore.feature:180](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L180)
-- [coreApiTrashbinRestore/trashbinRestore.feature:181](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L181)
+- [coreApiTrashbinRestore/trashbinRestore.feature:145](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L145)
+- [coreApiTrashbinRestore/trashbinRestore.feature:146](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L146)
+- [coreApiTrashbinRestore/trashbinRestore.feature:160](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L160)
+- [coreApiTrashbinRestore/trashbinRestore.feature:161](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L161)
+- [coreApiTrashbinRestore/trashbinRestore.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L175)
+- [coreApiTrashbinRestore/trashbinRestore.feature:176](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L176)
+- [coreApiTrashbinRestore/trashbinRestore.feature:192](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L192)
+- [coreApiTrashbinRestore/trashbinRestore.feature:193](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L193)
+- [coreApiTrashbinRestore/trashbinRestore.feature:194](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L194)
- [coreApiTrashbinRestore/trashbinRestore.feature:195](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L195)
-- [coreApiTrashbinRestore/trashbinRestore.feature:196](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L196)
-- [coreApiTrashbinRestore/trashbinRestore.feature:210](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L210)
-- [coreApiTrashbinRestore/trashbinRestore.feature:211](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L211)
-- [coreApiTrashbinRestore/trashbinRestore.feature:227](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L227)
-- [coreApiTrashbinRestore/trashbinRestore.feature:228](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L228)
-- [coreApiTrashbinRestore/trashbinRestore.feature:229](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L229)
+- [coreApiTrashbinRestore/trashbinRestore.feature:190](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L190)
+- [coreApiTrashbinRestore/trashbinRestore.feature:191](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L191)
+- [coreApiTrashbinRestore/trashbinRestore.feature:212](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L212)
+- [coreApiTrashbinRestore/trashbinRestore.feature:213](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L213)
- [coreApiTrashbinRestore/trashbinRestore.feature:230](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L230)
-- [coreApiTrashbinRestore/trashbinRestore.feature:225](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L225)
-- [coreApiTrashbinRestore/trashbinRestore.feature:226](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L226)
-- [coreApiTrashbinRestore/trashbinRestore.feature:247](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L247)
-- [coreApiTrashbinRestore/trashbinRestore.feature:248](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L248)
-- [coreApiTrashbinRestore/trashbinRestore.feature:265](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L265)
-- [coreApiTrashbinRestore/trashbinRestore.feature:266](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L266)
-- [coreApiTrashbinRestore/trashbinRestore.feature:285](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L285)
-- [coreApiTrashbinRestore/trashbinRestore.feature:286](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L286)
+- [coreApiTrashbinRestore/trashbinRestore.feature:231](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L231)
+- [coreApiTrashbinRestore/trashbinRestore.feature:250](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L250)
+- [coreApiTrashbinRestore/trashbinRestore.feature:251](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L251)
+- [coreApiTrashbinRestore/trashbinRestore.feature:270](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L270)
+- [coreApiTrashbinRestore/trashbinRestore.feature:271](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L271)
+- [coreApiTrashbinRestore/trashbinRestore.feature:304](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L304)
- [coreApiTrashbinRestore/trashbinRestore.feature:305](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L305)
-- [coreApiTrashbinRestore/trashbinRestore.feature:306](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L306)
-- [coreApiTrashbinRestore/trashbinRestore.feature:339](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L339)
-- [coreApiTrashbinRestore/trashbinRestore.feature:340](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L340)
-- [coreApiTrashbinRestore/trashbinRestore.feature:378](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L378)
-- [coreApiTrashbinRestore/trashbinRestore.feature:379](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L379)
-- [coreApiTrashbinRestore/trashbinRestore.feature:417](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L417)
-- [coreApiTrashbinRestore/trashbinRestore.feature:418](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L418)
-- [coreApiTrashbinRestore/trashbinRestore.feature:435](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L435)
-- [coreApiTrashbinRestore/trashbinRestore.feature:436](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L436)
-- [coreApiTrashbinRestore/trashbinRestore.feature:454](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L454)
-- [coreApiTrashbinRestore/trashbinRestore.feature:455](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L455)
+- [coreApiTrashbinRestore/trashbinRestore.feature:343](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L343)
+- [coreApiTrashbinRestore/trashbinRestore.feature:344](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L344)
+- [coreApiTrashbinRestore/trashbinRestore.feature:382](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L382)
+- [coreApiTrashbinRestore/trashbinRestore.feature:383](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L383)
+- [coreApiTrashbinRestore/trashbinRestore.feature:400](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L400)
+- [coreApiTrashbinRestore/trashbinRestore.feature:401](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L401)
+- [coreApiTrashbinRestore/trashbinRestore.feature:419](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L419)
+- [coreApiTrashbinRestore/trashbinRestore.feature:420](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L420)
+- [coreApiTrashbinRestore/trashbinRestore.feature:443](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L443)
+- [coreApiTrashbinRestore/trashbinRestore.feature:444](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L444)
+- [coreApiTrashbinRestore/trashbinRestore.feature:462](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L462)
+- [coreApiTrashbinRestore/trashbinRestore.feature:463](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L463)
+- [coreApiTrashbinRestore/trashbinRestore.feature:477](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L477)
- [coreApiTrashbinRestore/trashbinRestore.feature:478](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L478)
-- [coreApiTrashbinRestore/trashbinRestore.feature:479](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L479)
-- [coreApiTrashbinRestore/trashbinRestore.feature:497](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L497)
-- [coreApiTrashbinRestore/trashbinRestore.feature:498](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L498)
-- [coreApiTrashbinRestore/trashbinRestore.feature:512](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L512)
-- [coreApiTrashbinRestore/trashbinRestore.feature:513](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L513)
-- [coreApiTrashbinRestore/trashbinRestore.feature:566](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L566)
-- [coreApiTrashbinRestore/trashbinRestore.feature:567](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L567)
+- [coreApiTrashbinRestore/trashbinRestore.feature:531](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L531)
+- [coreApiTrashbinRestore/trashbinRestore.feature:532](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiTrashbinRestore/trashbinRestore.feature#L532)
- [coreApiWebdavEtagPropagation2/restoreFromTrash.feature:26](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreFromTrash.feature#L26)
- [coreApiWebdavEtagPropagation2/restoreFromTrash.feature:27](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreFromTrash.feature#L27)
- [coreApiWebdavEtagPropagation2/restoreFromTrash.feature:49](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavEtagPropagation2/restoreFromTrash.feature#L49)
@@ -813,24 +764,24 @@ _ocs: api compatibility, return correct status code_
#### [WebDAV MOVE with body returns 400 rather than 415](https://github.com/cs3org/reva/issues/3119)
-- [coreApiAuthWebDav/webDavMOVEAuth.feature:133](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMOVEAuth.feature#L133)
+- [coreApiAuthWebDav/webDavMOVEAuth.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavMOVEAuth.feature#L136)
#### [reShareUpdate API tests failing in reva](https://github.com/cs3org/reva/issues/2916)
-- [coreApiShareReshareToShares3/reShareUpdate.feature:159](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L159)
- [coreApiShareReshareToShares3/reShareUpdate.feature:158](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L158)
+- [coreApiShareReshareToShares3/reShareUpdate.feature:157](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareReshareToShares3/reShareUpdate.feature#L157)
#### [coreApiShareOperationsToShares1/gettingShares.feature:28 fails in CI](https://github.com/cs3org/reva/issues/2926)
-- [coreApiShareOperationsToShares1/gettingShares.feature:38](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L38)
-- [coreApiShareOperationsToShares1/gettingShares.feature:39](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L39)
+- [coreApiShareOperationsToShares1/gettingShares.feature:40](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L40)
+- [coreApiShareOperationsToShares1/gettingShares.feature:41](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiShareOperationsToShares1/gettingShares.feature#L41)
#### [These tests pass in ocis and reva egde but fail in master with `file_target has unexpected value '/home'`](https://github.com/owncloud/ocis/issues/2113)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:306](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L306)
-- [coreApiSharePublicLink1/createPublicLinkShare.feature:307](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L307)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:308](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L308)
+- [coreApiSharePublicLink1/createPublicLinkShare.feature:309](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink1/createPublicLinkShare.feature#L309)
#### [valid WebDAV (DELETE, COPY or MOVE) requests with body must exit with 415](https://github.com/owncloud/ocis/issues/4332)
-- [coreApiAuthWebDav/webDavCOPYAuth.feature:137](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavCOPYAuth.feature#L137)
+- [coreApiAuthWebDav/webDavCOPYAuth.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiAuthWebDav/webDavCOPYAuth.feature#L136)
#### [PROPFIND on (password protected) public link returns invalid XML](https://github.com/owncloud/ocis/issues/39707)
The problem has been fixed in reva edge branch but not in reva master
@@ -838,15 +789,15 @@ The problem has been fixed in reva edge branch but not in reva master
- [coreApiWebdavOperations/propfind.feature:73](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiWebdavOperations/propfind.feature#L73)
#### [Updating the role of a public link to internal gives returns 400]
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:496](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L496)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:497](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L497)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:498](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L498)
-- [coreApiSharePublicLink3/updatePublicLinkShare.feature:499](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L499)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:492](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L492)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:493](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L493)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:494](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L494)
+- [coreApiSharePublicLink3/updatePublicLinkShare.feature:495](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiSharePublicLink3/updatePublicLinkShare.feature#L495)
#### [Default capabilities for normal user and admin user not same as in oC-core](https://github.com/owncloud/ocis/issues/1285)
-- [coreApiCapabilities/capabilities.feature:8](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L8)
-- [coreApiCapabilities/capabilities.feature:133](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L133)
-- [coreApiCapabilities/capabilities.feature:172](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L172)
+- [coreApiCapabilities/capabilities.feature:11](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L11)
+- [coreApiCapabilities/capabilities.feature:136](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L136)
+- [coreApiCapabilities/capabilities.feature:175](https://github.com/owncloud/ocis/blob/master/tests/acceptance/features/coreApiCapabilities/capabilities.feature#L175)
Note: always have an empty line at the end of this file.
The bash script that processes this file may not process a scenario reference on the last line.
diff --git a/tests/docker/docker-compose.yml b/tests/docker/docker-compose.yml
index f47eecc8c8..a4f4b131e0 100644
--- a/tests/docker/docker-compose.yml
+++ b/tests/docker/docker-compose.yml
@@ -197,7 +197,7 @@ services:
REVA_LDAP_HOSTNAME: ldap
TEST_REVA: 'true'
SEND_SCENARIO_LINE_REFERENCES: 'true'
- BEHAT_FILTER_TAGS: ~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@local_storage&&~@skipOnOcis-OCIS-Storage&&~@personalSpace&&~@skipOnGraph&&~@caldav&&~@carddav&&~@skipOnReva&&~@skipOnRevaMaster
+ BEHAT_FILTER_TAGS: ~@provisioning_api-app-required&&~@preview-extension-required&&~@skipOnOcis-OCIS-Storage&&~@personalSpace&&~@skipOnGraph&&~@carddav&&~@skipOnReva&&~@skipOnRevaMaster
DIVIDE_INTO_NUM_PARTS: ${PARTS:-1}
RUN_PART: ${PART:-1}
EXPECTED_FAILURES_FILE: /mnt/acceptance/expected-failures-on-OCIS-storage.md
@@ -266,7 +266,7 @@ services:
REVA_LDAP_HOSTNAME: ldap
TEST_REVA: 'true'
SEND_SCENARIO_LINE_REFERENCES: 'true'
- BEHAT_FILTER_TAGS: ~@toImplementOnOCIS&&~comments-app-required&&~@federation-app-required&&~@notifications-app-required&&~systemtags-app-required&&~@provisioning_api-app-required&&~@preview-extension-required&&~@local_storage&&~@skipOnOcis-OCIS-Storage&&~@personalSpace&&~&&~@skipOnGraph&&~@caldav&&~@carddav&&~@skipOnReva&&~@skipOnRevaMaster
+ BEHAT_FILTER_TAGS: ~@provisioning_api-app-required&&~@preview-extension-required&&~@skipOnOcis-OCIS-Storage&&~@personalSpace&&~&&~@skipOnGraph&&~@carddav&&~@skipOnReva&&~@skipOnRevaMaster
DIVIDE_INTO_NUM_PARTS: ${PARTS:-1}
RUN_PART: ${PART:-1}
EXPECTED_FAILURES_FILE: /mnt/acceptance/expected-failures-on-S3NG-storage.md
diff --git a/tests/ocis b/tests/ocis
index 4076bc71e6..1788406b52 160000
--- a/tests/ocis
+++ b/tests/ocis
@@ -1 +1 @@
-Subproject commit 4076bc71e63b4dd4d7931e1ad085ee214f137e38
+Subproject commit 1788406b5273782d5bad44543ba5b9f94d48370d