-
-
Notifications
You must be signed in to change notification settings - Fork 4.1k
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
Implement ownerless shares #49073
Implement ownerless shares #49073
Conversation
$shares = []; | ||
foreach ($providers as $provider) { | ||
if ($isCoOwner) { | ||
foreach ($node->getDirectoryListing() as $childNode) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This makes it a lot more expensive, can we tweak getSharesInFolder
to make the $user
filter optional instead?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We can't do this without a breaking change, as it would break provider implementations that don't expect to receive null.
Maybe that is fine though, as long as the providers only do database SELECTs where a null value is fine (but that would still result in unexpected results as nothing would be returned instead of everything).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Istead of null it could receive a keyword.
dbee0fb
to
0ee7f19
Compare
Added tests for everything 🎉 |
4c63eba
to
cd4dc54
Compare
maybe |
Sure I will go with that, even though it is still inaccurate :/ |
Signed-off-by: provokateurin <kate@provokateurin.de>
cd4dc54
to
5ec57e4
Compare
Signed-off-by: provokateurin <kate@provokateurin.de>
…ath() Signed-off-by: provokateurin <kate@provokateurin.de>
Signed-off-by: provokateurin <kate@provokateurin.de>
Signed-off-by: provokateurin <kate@provokateurin.de>
…es on IShareOwnerlessMount Signed-off-by: provokateurin <kate@provokateurin.de>
…hare Signed-off-by: provokateurin <kate@provokateurin.de>
… owner Signed-off-by: provokateurin <kate@provokateurin.de>
Signed-off-by: provokateurin <kate@provokateurin.de>
5ec57e4
to
c0db746
Compare
* | ||
* @since 31.0.0 | ||
*/ | ||
interface IShareOwnerlessMount { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
interface IShareOwnerlessMount { | |
interface IShareOpenMount { | |
// interface IShareCollaborativeMount |
Might be too far and too large a refactor at this point but just throwing in the idea.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hm IShareCollaborativeMount
doesn't sound too bad. @ArtificialOwl what do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I also already did a rename of everything this morning, so doing it once more is not much work 🙈
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Cool to the kwargs
in action here.
/compile |
Signed-off-by: nextcloud-command <nextcloud-command@users.noreply.github.com>
Will this enhancement reach the expected behavior asked in |
Summary
Can be tested with nextcloud/groupfolders#3401
Tests still need to be written, but other than that this is ready.It doesn't work with files_external yet, but I think that is due to permissions (UI says there is no reshare permission).
I'm surprised how little lines had to be changed in the end, but the challenging part was exploring how this can be implemented and where things needs to be changed and fixed to make it work.
Behavior:
deletedhiddenChecklist