Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add note to dav endpoint #12978

Merged
merged 2 commits into from
Mar 4, 2019
Merged

Conversation

tobiasKaminsky
Copy link
Member

Fix #11702

It is my first PR, @schiessle helped me a bit on how to do this.

@tobiasKaminsky
Copy link
Member Author

Anyone up for a review? @schiessle @rullzer

@blizzz
Copy link
Member

blizzz commented Jan 3, 2019

do you have a curl example for quickly testing it?

@blizzz blizzz added this to the Nextcloud 16 milestone Jan 3, 2019
apps/dav/lib/Connector/Sabre/Node.php Outdated Show resolved Hide resolved
apps/dav/lib/Connector/Sabre/Node.php Outdated Show resolved Hide resolved

$notes = "";
foreach ($shares as $share) {
$notes .= $share->getNote() . " ";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is the purpose of getting all share notes returned only concatenated by a space?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess only one share type will have a note, so this is just a quick and ugly way not to deal with checking.
Hints are more than welcome ;-)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I share one file with a "personal note" to a user and the same with a "group note" to a group he is member of. The web interface only displays the personal note. @nextcloud/sharing is this intentional or undefined behaviour?

The request returns two elements with a note each:

<?xml version="1.0"?>
<ocs>
 <meta>
  <status>ok</status>
  <statuscode>200</statuscode>
  <message>OK</message>
 </meta>
 <data>
  <element>
   <id>14</id>
   <share_type>0</share_type>
   <.../>
   <note>personal note</note>
   <path>/php.ini</path>
   <item_type>file</item_type>
   <file_target>/php.ini</file_target>
   <share_with>person_15</share_with>
   <.../>
  </element>
  <element>
   <id>15</id>
   <share_type>1</share_type>
   <.../>
   <note>group note</note>
   <path>/php.ini</path>
   <item_type>file</item_type>
   <file_target>/php.ini</file_target>
   <share_with>barfoo</share_with>
   <.../>
  </element>
 </data>
</ocs>

Now I shared to another group the target user is member of and added a different note again. This creates another element in the result set. No concatenation takes place. Internally the file is represented by different node instances, therefore you get multiple element sets for the entry.

Therefore, just return the first note you encounter. There won't be others (just leave a comment about that).

I wonder whether there is a short cut to get the share data from the node itself, to avoid asking the share manager about everything. This would improve maintainability, as of new we'd probably forget to query a new sharing type in case it'll be added at some point.

@juliushaertl juliushaertl added 2. developing Work in progress and removed 3. to review Waiting for reviews labels Jan 4, 2019
@tobiasKaminsky
Copy link
Member Author

@blizzz curl:

curl --request GET \
  --url 'http://localhost:9999/ocs/v2.php/apps/files_sharing/api/v1/shares?path=%2FFOLDER%2F&reshares=true&subfiles=true&shared_with_me=true' \
  --header 'authorization: Basic dG9iaTp0b2Jp' \
  --header 'cookie: nc_sameSiteCookielax=true;nc_sameSiteCookiestrict=true' \
  --header 'ocs-apirequest: true' \
  --cookie 'nc_sameSiteCookielax=true;nc_sameSiteCookiestrict=true'```

Parameter path= needs to be adjusted to your needs.
Then you'll see "<note>123 123</note>" in response.

@tobiasKaminsky
Copy link
Member Author

@blizzz I am out here somehow…
what can I do to get this in?

@AndyScherzinger
Copy link
Member

Pinging @blizzz and @rullzer to get some attention :) Reading through the comments it seems this PR is. Done but not merged and would help us on the Android client side :) ❤️

@blizzz
Copy link
Member

blizzz commented Feb 15, 2019

Um, the provided curl call does not help as it does not got via webdav. If i remember correctly, I was using a dav call back then, but that's too late now.

@tobiasKaminsky @nextcloud/sharing what do you think about? (untested)

diff --git a/apps/dav/lib/Connector/Sabre/Node.php b/apps/dav/lib/Connector/Sabre/Node.php
index fd895c291d..b6433e6e0b 100644
--- a/apps/dav/lib/Connector/Sabre/Node.php
+++ b/apps/dav/lib/Connector/Sabre/Node.php
@@ -298,25 +298,27 @@ abstract class Node implements \Sabre\DAV\INode {
     */
    public function getNoteFromShare($user) {
        if ($user == null) {
-           return "";
+           return '';
        }
 
-       $userShares = $this->shareManager->getSharedWith($user, Share::SHARE_TYPE_USER, $this, -1);
-       $groupShares = $this->shareManager->getSharedWith($user, Share::SHARE_TYPE_GROUP, $this, -1);
-       $circleShares = $this->shareManager->getSharedWith($user, Share::SHARE_TYPE_CIRCLE, $this, -1);
-       $roomShares = $this->shareManager->getSharedWith($user, Share::SHARE_TYPE_ROOM, $this, -1);
-
-       $shares = array_merge($userShares, $groupShares, $circleShares, $roomShares);
-       $shares = array_filter($shares, function (IShare $share) use ($user) {
-           return $share->getShareOwner() !== $user;
-       });
-
-       $notes = "";
-       foreach ($shares as $share) {
-           $notes .= $share->getNote() . " ";
+       $types = [
+           Share::SHARE_TYPE_USER,
+           Share::SHARE_TYPE_GROUP,
+           Share::SHARE_TYPE_CIRCLE,
+           Share::SHARE_TYPE_ROOM
+       ];
+
+       foreach ($types as $shareType) {
+           $shares = $this->shareManager->getSharedWith($user, $shareType, $this, -1);
+           foreach ($shares as $share) {
+               $note = $share->getNote();
+               if($share->getShareOwner() !== $user && !empty($note)) {
+                   return $note;
+               }
+           }
        }
 
-       return $notes;
+       return '';
    }
 
    /**

@tobiasKaminsky
Copy link
Member Author

@blizzz thanks for taking care of it.
It seems to work.
The only strange thing is that I get a "null" back for any empty note.
On cadaver it is like this:

 <d:prop>
        <d:getlastmodified>Thu, 23 Nov 2017 08:20:33 GMT</d:getlastmodified>
        <d:getetag>&quot;dc947c447f85f5160ce58724002f1c52&quot;</d:getetag>
        <d:getcontenttype>image/png</d:getcontenttype>
        <d:resourcetype/>
        <oc:fileid>249</oc:fileid>
        <oc:id>00000249ocjycgrudn78</oc:id>
        <oc:permissions>SGDNVW</oc:permissions>
        <oc:size>45754</oc:size>
        <d:getcontentlength>45754</d:getcontentlength>
        <nc:has-preview>true</nc:has-preview>
        <oc:favorite>0</oc:favorite>
        <oc:comments-unread>0</oc:comments-unread>
        <oc:owner-display-name>Tobi Kaminsky</oc:owner-display-name>
        <oc:share-types/>
        <nc:note></nc:note>
      </d:prop>

and with filled note:

<d:prop>
        <d:getlastmodified>Thu, 23 Nov 2017 08:04:19 GMT</d:getlastmodified>
        <d:getetag>&quot;5a168103e2767&quot;</d:getetag>
        <d:resourcetype>
          <d:collection/>
        </d:resourcetype>
        <oc:fileid>246</oc:fileid>
        <oc:id>00000246ocjycgrudn78</oc:id>
        <oc:permissions>SRGDNVCK</oc:permissions>
        <oc:size>0</oc:size>
        <nc:has-preview>false</nc:has-preview>
        <oc:favorite>0</oc:favorite>
        <oc:comments-unread>0</oc:comments-unread>
        <oc:owner-display-name>Tobi Kaminsky</oc:owner-display-name>
        <oc:share-types/>
        <nc:is-encrypted>0</nc:is-encrypted>
        <nc:note>ShareAble</nc:note>
      </d:prop>

On first, I do get null back on android, but it should be "" (empty string), or?
Maybe this is something on my side…

@tobiasKaminsky
Copy link
Member Author

Nevermind this is on my side…

@tobiasKaminsky
Copy link
Member Author

So this is fine from my side.
Can we get this into NC16?

@blizzz
Copy link
Member

blizzz commented Feb 25, 2019

@tobiasKaminsky mind rebasing? I suppose that should make CI run.

@blizzz
Copy link
Member

blizzz commented Feb 25, 2019

@tobiasKaminsky and, if the changes work for you, please commit them. I cannot since it is in your fork.

Copy link
Member

@blizzz blizzz left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

after formatting ;)

@blizzz
Copy link
Member

blizzz commented Feb 26, 2019

another reviewer, please?

Signed-off-by: tobiasKaminsky <tobias@kaminsky.me>
Copy link
Member

@ChristophWurst ChristophWurst left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me otherwise

apps/dav/lib/Connector/Sabre/Node.php Outdated Show resolved Hide resolved
Co-Authored-By: tobiasKaminsky <tobias@nextcloud.com>
@MorrisJobke MorrisJobke mentioned this pull request Mar 4, 2019
45 tasks
@MorrisJobke
Copy link
Member

Status of 16667: failure

  • DB=sqlite, ENABLE_REDIS=false, PHP=7.3
Show full log
There was 1 failure:

1) Test\User\DatabaseTest::testSearch
Failed asserting that actual size 3 matches expected size 2.

/drone/src/github.com/nextcloud/server/tests/lib/User/Backend.php:114
/drone/src/github.com/nextcloud/server/tests/lib/User/DatabaseTest.php:119

--

There was 1 risky test:

1) OCA\TwoFactorBackupCodes\Tests\Db\BackupCodeMapperTest::testInsertArgonEncryptedCodes
This test did not perform any assertions

  • DB=mysqlmb4, ENABLE_REDIS=false, PHP=7.3
Show full log
There was 1 failure:

1) TrashbinTest::testExpireOldFiles
Failed asserting that null is identical to 'file2.txt'.

/drone/src/github.com/nextcloud/server/apps/files_trashbin/tests/TrashbinTest.php:186

--

There was 1 risky test:

1) OCA\TwoFactorBackupCodes\Tests\Db\BackupCodeMapperTest::testInsertArgonEncryptedCodes
This test did not perform any assertions

  • TESTS=acceptance, TESTS-ACCEPTANCE=app-files
    • tests/acceptance/features/app-files.feature:60
    • tests/acceptance/features/app-files.feature:72
    • tests/acceptance/features/app-files.feature:79
    • tests/acceptance/features/app-files.feature:90
    • tests/acceptance/features/app-files.feature:97
    • tests/acceptance/features/app-files.feature:126
    • tests/acceptance/features/app-files.feature:133
Show full log
  Scenario: viewing a favorite file in its folder does not prevent opening the details view in "All files" section # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:60
    Given I am logged in                                                                                           # LoginPageContext::iAmLoggedIn()
    And I mark "welcome.txt" as favorite                                                                           # FileListContext::iMarkAsFavorite()
    And I see that "welcome.txt" is marked as favorite                                                             # FileListContext::iSeeThatIsMarkedAsFavorite()
    And I open the "Favorites" section                                                                             # AppNavigationContext::iOpenTheSection()
    And I open the details view for "welcome.txt"                                                                  # FileListContext::iOpenTheDetailsViewFor()
      Row for file welcome.txt in file list could not be found after 100 seconds
      File actions menu button for file welcome.txt in file list could not be found after 100 seconds (NoSuchElementException)
    And I see that the details view is open                                                                        # FilesAppContext::iSeeThatTheDetailsViewIsOpen()
    And I view "welcome.txt" in folder                                                                             # FileListContext::iViewInFolder()
    And I see that the current section is "All files"                                                              # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    When I open the details view for "welcome.txt"                                                                 # FileListContext::iOpenTheDetailsViewFor()
    Then I see that the details view is open                                                                       # FilesAppContext::iSeeThatTheDetailsViewIsOpen()
  Scenario: show recent files                                                 # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:72
    Given I am logged in                                                      # LoginPageContext::iAmLoggedIn()
    And I create a new folder named "Folder just created"                     # FileListContext::iCreateANewFolderNamed()
      │ Create menu button in file list could not be clicked
      │ Exception message: Element is not currently visible and so may not be interacted with
      │ Build info: version: '2.53.1', revision: 'a36b8b1', time: '2016-06-30 17:37:03'
      │ System info: host: '19fab3471f9a', ip: '172.17.0.12', os.name: 'Linux', os.arch: 'amd64', os.version: '4.4.0-141-generic', java.version: '1.8.0_91'
      │ Driver info: driver.version: unknown
      │ Trying again
      │ 
    When I open the "Recent" section                                          # AppNavigationContext::iOpenTheSection()
    Then I see that the current section is "Recent"                           # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    Then I see that the file list contains a file named "Folder just created" # FileListContext::iSeeThatTheFileListContainsAFileNamed()
      Row for file Folder just created in file list could not be found after 100 seconds (NoSuchElementException)
  Scenario: show recent files for a second time                               # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:79
    Given I am logged in                                                      # LoginPageContext::iAmLoggedIn()
    And I open the "Recent" section                                           # AppNavigationContext::iOpenTheSection()
    And I see that the current section is "Recent"                            # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    And I open the "All files" section                                        # AppNavigationContext::iOpenTheSection()
    And I see that the current section is "All files"                         # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    And I create a new folder named "Folder just created"                     # FileListContext::iCreateANewFolderNamed()
    When I open the "Recent" section                                          # AppNavigationContext::iOpenTheSection()
    Then I see that the current section is "Recent"                           # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    Then I see that the file list contains a file named "Folder just created" # FileListContext::iSeeThatTheFileListContainsAFileNamed()
      Row for file Folder just created in file list could not be found after 100 seconds (NoSuchElementException)
  Scenario: show favorites                                            # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:90
    Given I am logged in                                              # LoginPageContext::iAmLoggedIn()
    And I mark "welcome.txt" as favorite                              # FileListContext::iMarkAsFavorite()
    When I open the "Favorites" section                               # AppNavigationContext::iOpenTheSection()
    Then I see that the current section is "Favorites"                # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    Then I see that the file list contains a file named "welcome.txt" # FileListContext::iSeeThatTheFileListContainsAFileNamed()
      Row for file welcome.txt in file list could not be found after 100 seconds (NoSuchElementException)
  Scenario: show favorites for a second time                          # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:97
    Given I am logged in                                              # LoginPageContext::iAmLoggedIn()
    And I open the "Favorites" section                                # AppNavigationContext::iOpenTheSection()
    And I see that the current section is "Favorites"                 # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    And I open the "All files" section                                # AppNavigationContext::iOpenTheSection()
    And I see that the current section is "All files"                 # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    And I mark "welcome.txt" as favorite                              # FileListContext::iMarkAsFavorite()
    When I open the "Favorites" section                               # AppNavigationContext::iOpenTheSection()
    Then I see that the current section is "Favorites"                # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    Then I see that the file list contains a file named "welcome.txt" # FileListContext::iSeeThatTheFileListContainsAFileNamed()
      Row for file welcome.txt in file list could not be found after 100 seconds (NoSuchElementException)
  Scenario: show deleted files                                        # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:126
    Given I am logged in                                              # LoginPageContext::iAmLoggedIn()
    And I delete "welcome.txt"                                        # FileListContext::iDelete()
    When I open the "Deleted files" section                           # AppNavigationContext::iOpenTheSection()
    Then I see that the current section is "Deleted files"            # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    Then I see that the file list contains a file named "welcome.txt" # FileListContext::iSeeThatTheFileListContainsAFileNamed()
      Row for file welcome.txt in file list could not be found after 100 seconds (NoSuchElementException)
  Scenario: show deleted files for a second time                      # /drone/src/github.com/nextcloud/server/tests/acceptance/features/app-files.feature:133
    Given I am logged in                                              # LoginPageContext::iAmLoggedIn()
    And I open the "Deleted files" section                            # AppNavigationContext::iOpenTheSection()
    And I see that the current section is "Deleted files"             # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    And I open the "All files" section                                # AppNavigationContext::iOpenTheSection()
    And I see that the current section is "All files"                 # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    And I delete "welcome.txt"                                        # FileListContext::iDelete()
    When I open the "Deleted files" section                           # AppNavigationContext::iOpenTheSection()
    Then I see that the current section is "Deleted files"            # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    Then I see that the file list contains a file named "welcome.txt" # FileListContext::iSeeThatTheFileListContainsAFileNamed()
      Row for file welcome.txt in file list could not be found after 100 seconds (NoSuchElementException)
  • TESTS=acceptance, TESTS-ACCEPTANCE=header
    • tests/acceptance/features/header.feature:30
    • tests/acceptance/features/header.feature:43
Show full log
  Scenario: just added users are seen in the contacts menu               # /drone/src/github.com/nextcloud/server/tests/acceptance/features/header.feature:30
    Given I am logged in as the admin                                    # LoginPageContext::iAmLoggedInAsTheAdmin()
    And I open the User settings                                         # SettingsMenuContext::iOpenTheUserSettings()
    And I click the New user button                                      # UsersSettingsContext::iClickTheNewUserButton()
      New user button in Users Settings could not be found (NoSuchElementException)
    And I see that the new user form is shown                            # UsersSettingsContext::iSeeThatTheNewUserFormIsShown()
    And I create user user1 with password 123456acb                      # UsersSettingsContext::iCreateUserWithPassword()
    And I see that the list of users contains the user user1             # UsersSettingsContext::iSeeThatTheListOfUsersContainsTheUser()
    When I open the Contacts menu                                        # ContactsMenuContext::iOpenTheContactsMenu()
    Then I see that the Contacts menu is shown                           # ContactsMenuContext::iSeeThatTheContactsMenuIsShown()
    And I see that the contact "user0" in the Contacts menu is shown     # ContactsMenuContext::iSeeThatTheContactInTheContactsMenuIsShown()
    And I see that the contact "user1" in the Contacts menu is shown     # ContactsMenuContext::iSeeThatTheContactInTheContactsMenuIsShown()
    And I see that the contact "admin" in the Contacts menu is not shown # ContactsMenuContext::iSeeThatTheContactInTheContactsMenuIsNotShown()
sh: 1: kill: No such process
  Scenario: search for other users in the contacts menu                              # /drone/src/github.com/nextcloud/server/tests/acceptance/features/header.feature:43
    Given I am logged in as the admin                                                # LoginPageContext::iAmLoggedInAsTheAdmin()
    And I open the User settings                                                     # SettingsMenuContext::iOpenTheUserSettings()
    And I click the New user button                                                  # UsersSettingsContext::iClickTheNewUserButton()
      New user button in Users Settings could not be found (NoSuchElementException)
    And I see that the new user form is shown                                        # UsersSettingsContext::iSeeThatTheNewUserFormIsShown()
    And I create user user1 with password 123456acb                                  # UsersSettingsContext::iCreateUserWithPassword()
    And I see that the list of users contains the user user1                         # UsersSettingsContext::iSeeThatTheListOfUsersContainsTheUser()
    And I open the Contacts menu                                                     # ContactsMenuContext::iOpenTheContactsMenu()
    And I see that the Contacts menu is shown                                        # ContactsMenuContext::iSeeThatTheContactsMenuIsShown()
    And I see that the contact "user0" in the Contacts menu is shown                 # ContactsMenuContext::iSeeThatTheContactInTheContactsMenuIsShown()
    And I see that the contact "user1" in the Contacts menu is shown                 # ContactsMenuContext::iSeeThatTheContactInTheContactsMenuIsShown()
    And I see that the Contacts menu search input is shown                           # ContactsMenuContext::iSeeThatTheContactsMenuSearchInputIsShown()
    When I search for the user "user0"                                               # ContactsMenuContext::iSearchForTheUser()
    Then I see that the contact "user1" in the Contacts menu is eventually not shown # ContactsMenuContext::iSeeThatTheContactInTheContactsMenuIsEventuallyNotShown()
    And I see that the contact "user0" in the Contacts menu is shown                 # ContactsMenuContext::iSeeThatTheContactInTheContactsMenuIsShown()
    And I see that the contact "admin" in the Contacts menu is not shown             # ContactsMenuContext::iSeeThatTheContactInTheContactsMenuIsNotShown()
sh: 1: kill: No such process
  • TESTS=acceptance, TESTS-ACCEPTANCE=apps
    • tests/acceptance/features/apps.feature:66
Show full log
  Scenario: Show section from app store                       # /drone/src/github.com/nextcloud/server/tests/acceptance/features/apps.feature:66
    Given I act as Jane                                       # ActorContext::iActAs()
    And I am logged in as the admin                           # LoginPageContext::iAmLoggedInAsTheAdmin()
    And I open the Apps management                            # SettingsMenuContext::iOpenTheAppsManagement()
    And I see that the current section is "Your apps"         # AppNavigationContext::iSeeThatTheCurrentSectionIs()
    When I open the "Files" section                           # AppNavigationContext::iOpenTheSection()
      Files section item in App Navigation could not be found after 100 seconds (NoSuchElementException)
    Then I see that there some apps listed from the app store # AppsManagementContext::iSeeThatThereSomeAppsListedFromTheAppStore()
    And I see that the current section is "Files"             # AppNavigationContext::iSeeThatTheCurrentSectionIs()

@MorrisJobke
Copy link
Member

Failures are unrelated -> merge

@MorrisJobke MorrisJobke merged commit daee222 into nextcloud:master Mar 4, 2019
];

foreach ($types as $shareType) {
$shares = $this->shareManager->getSharedWith($user, $shareType, $this, -1);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I doubt this works... The third argument expects a node for sure... but this is a different note that the sharing one

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok so it works because the actual function e use int he share amanger is also present. But this will do 💥 at some point.

Either we revert this or we fix it. Because this is not really something we can leave around and have do 💥 when we move to more strict typing. Especially since this isn't covered by any tests.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We can fix it by putting an instanceof check against $this beforehand, in line 300. Would be the easiest thing to do, but perhaps not cleanest one.

Alternative would be to retrieve always correct Node instance, if possible. There's no straight way from View or FileInfo, and I did not look deeper by now.

@@ -359,6 +361,12 @@ public function handleGetProperties(PropFind $propFind, \Sabre\DAV\INode $node)
$propFind->handle(self::MOUNT_TYPE_PROPERTYNAME, function () use ($node) {
return $node->getFileInfo()->getMountPoint()->getMountType();
});

$propFind->handle(self::SHARE_NOTE, function() use ($node, $httpRequest) {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar comments as to #14429

I think it would make sense to move this to the share plugin we have.
Because in it current state. If you have N entries in the folder you propfind. This will fire off N*4 queries. This won't scale.

@@ -70,6 +70,7 @@ class FilesPlugin extends ServerPlugin {
const HAS_PREVIEW_PROPERTYNAME = '{http://nextcloud.org/ns}has-preview';
const MOUNT_TYPE_PROPERTYNAME = '{http://nextcloud.org/ns}mount-type';
const IS_ENCRYPTED_PROPERTYNAME = '{http://nextcloud.org/ns}is-encrypted';
const SHARE_NOTE = '{http://nextcloud.org/ns}note';
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

also share-note maybe... as just note is a bit generic?

@tobiasKaminsky
Copy link
Member Author

Just for client side: will this be in NC16 (according to milestone) or NC17 as feature freeze was on friday?

@MorrisJobke
Copy link
Member

Just for client side: will this be in NC16 (according to milestone) or NC17 as feature freeze was on friday?

  1. if it doesn't get reverted.

@tobiasKaminsky tobiasKaminsky deleted the noteOnDav branch March 5, 2019 06:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

7 participants