Commit graph

45 commits

Author SHA1 Message Date
Roeland Jago Douma
b8ce9c5554 Use more generic node instead of File/Folder
The phpdoc for the sharing functions was very restrictive. As a
consequence passing node object (for example from the OCS Share API
where we don't really care if it is a file or folder), would actually
be invalid.

With this loser restriction the interfaces become more generic.
2016-03-11 08:51:07 +01:00
Roeland Jago Douma
e8f22a16f6 Select queries in the default share provider should query for file/folder
There can be leftover calendar and contacts shares in the oc_share
table. We need to filter those out properly.
2016-03-09 11:19:57 +01:00
Lukas Reschke
933f60e314 Update author information
Probably nice for the people that contributed to 9.0 to see themselves in the AUTHORS file :)
2016-03-01 17:25:15 +01:00
Roeland Jago Douma
4533cb9c59 Add parent for invisible link shares 2016-02-11 13:29:23 +01:00
Roeland Jago Douma
0f22a8db1d Also add type (file/folder) to IShare object
We need this for the hooks :(
2016-02-04 14:28:09 +01:00
Roeland Jago Douma
fc215d0980 Make the share object lazy
Share providers can now just pass in a fileId. And the node will only be
created once needed.
2016-02-04 12:51:23 +01:00
Roeland Jago Douma
eb904c7aa9 [Share 2.0] Fix defaultshare provider 2016-02-03 19:25:29 +01:00
Roeland Jago Douma
4d7130ad31 [Share 2.0] Add exceptions to OCP 2016-02-02 14:07:11 +01:00
Roeland Jago Douma
2316cb1f8b [Share 2.0] Allow moving of shares
* Only recipient can move a share
* Unit tests
2016-02-02 11:34:52 +01:00
Roeland Jago Douma
df690cd1f2 getChildren should not return usergroup shares 2016-02-02 10:41:57 +01:00
Roeland Jago Douma
403547f0ea [Share 2.0] Allow recipient to be passed in to getShareById
* This allows us to retrieve usergroup shares for a given id.
  If the user deleted a share or moved it this will be a different share
2016-02-02 10:41:57 +01:00
Roeland Jago Douma
a24e7f6558 Add path filter to OCS Share API ?shared_with_me=true
This allows all clients to quickly get the share info for a given path.
Instead of returning everything and filtering it then manually on the
client side.
2016-01-29 15:36:23 +01:00
Roeland Jago Douma
1ff4ec1cd3 [Share 2.0] When deleting a group share delete children
For group shares we can have children. Those are custom shares when a
user has moved or deleted a group share. Those also have to be deleted
if the group share is removed.
2016-01-28 20:35:46 +01:00
Roeland Jago Douma
34e912ab6b [Share 2.0] Fix interfaces and comments
* Made comments more clear
* Removed unneeded methods
* IShares shareTime is now a proper DateTime object
* IShares getPath -> getNode & setPath -> setNode
* Fix unit tests
2016-01-28 07:54:09 +01:00
Roeland Jago Douma
185b9c6edd [Share 2.0] Move IShare to OCP 2016-01-27 22:04:37 +01:00
Roeland Jago Douma
0832cca54e [Share 2.0] Fix IShare 2016-01-27 22:04:09 +01:00
Thomas Müller
6973718fb8 Merge pull request #21940 from owncloud/share2_do_not_returned_removed_group_shares
[Share 2.0] Properly handle user deleted group shares
2016-01-27 16:16:06 +01:00
Thomas Müller
5b7a1b13f3 Merge pull request #21887 from owncloud/share2_updateShare
[Sharing 2.0] update share
2016-01-27 09:36:41 +01:00
Roeland Jago Douma
a4900d721f [Share 2.0] Properly handle user deleted group shares
If a user deletes a group share we create a special share entry. To the
API this is just a normal group share for that user with permissions 0.
But we should not return this.
2016-01-27 09:02:12 +01:00
Roeland Jago Douma
d11682dcb4 Fix comments from Thomas 2016-01-26 15:31:52 +01:00
Roeland Jago Douma
c090d709e7 We must resolve to the proper usergroup share 2016-01-26 14:14:54 +01:00
Roeland Jago Douma
46045ecc52 [Share 2.0] Add update share 2016-01-26 13:59:58 +01:00
Joas Schilling
09ae160463 Replace other usages 2016-01-25 17:17:36 +01:00
Roeland Jago Douma
a6600e95dc [Share 2.0] Add deleteFromSelf method
This allows recipient to delete a share. For user shares this is the
same as deleting (at least for now).
But for group shares this means creating a new share with type 2. With
permissions set to 0.
2016-01-22 15:06:50 +01:00
Roeland Jago Douma
658959592d [Share 2.0] Fix displaying old shares proplery 2016-01-21 16:06:12 +01:00
Roeland Jago Douma
3a582e88e5 Comments from Vincent 2016-01-21 16:06:12 +01:00
Roeland Jago Douma
9b5ea18ce5 Add Unit tests for the default share provider 2016-01-21 16:06:12 +01:00
Roeland Jago Douma
0a9cd91e1d [Share 2.0] Add subfiles=x 2016-01-21 15:56:44 +01:00
Roeland Jago Douma
0c9f881e7d [Share 2.0] Resolve group shares 2016-01-21 15:56:44 +01:00
Roeland Jago Douma
3666c34a19 [Sharing 2.0] Start with getShares 2016-01-21 15:56:44 +01:00
Roeland Jago Douma
e40d21673e [Share 2.0] Add fetching link shares to share manager 2016-01-20 21:12:26 +01:00
Roeland Jago Douma
0939520e1a [Share 2.0] Share Object creation is a fragile thing
* We can't assume that the file still exists
* We can't assume that the user/group still exists

Basically we do not always nicely cleanup shares.
2016-01-18 19:57:30 +01:00
Roeland Jago Douma
663e71e4b3 Only select elements from the database that we support 2016-01-14 10:54:40 +01:00
Roeland Jago Douma
0f454ff5aa Use namedparameter 2016-01-14 10:54:40 +01:00
Roeland Jago Douma
5f5951c8cf [Share 2.0] Let the factory do the factory stuff
* Updated unit tests (bit cleaner now)
2016-01-13 16:35:15 +01:00
Roeland Jago Douma
cbd3050f4c [Share 2.0] Use full share id (providerId:shareId)
Now that we support multiple managers we communicate shares to the
outside as 'providerId:shareId'. This makes sures that id's are unique
when references from the OCS API.

However, since we do not want to break the OCS API v1 we need to
somewhat hack around this.

When we switch to OCS API v2 (which we should when we support more
custom providers). We will change the id to always be the fullShareId.
2016-01-13 16:35:15 +01:00
Roeland Jago Douma
67b7ebccd1 [Share 2.0] Add share provider factory
* Add providers
* Add share manager to server container
* Use share manager from server container
* Properly get the share manager
2016-01-13 16:35:14 +01:00
Thomas Müller
682821c71e Happy new year! 2016-01-12 15:02:18 +01:00
Roeland Jago Douma
a08c497808 [Share 2.0] Make share provider ready for create shares 2016-01-06 14:53:43 +01:00
Roeland Jago Douma
85976b7293 [Sharing 2.0] Fix phpdoc etc 2015-11-24 10:26:36 +01:00
Roeland Jago Douma
a2b8483779 [Sharing 2.0] Default share provider only generic DI
No injection of userfolders etc. Only generic DI components
(IRootFolder) etc should be used to make sure we can also run this from
the cli
2015-11-24 10:26:36 +01:00
Roeland Jago Douma
1360e22d7c [Sharing 2.0] Move hook and delete children logic to share manager
To make sure hooks are always fired and child entries are always
cleaned. This logic is moved to the share manager.

* Updated unit tests
2015-11-23 12:28:54 +01:00
Roeland Jago Douma
1e9fc33212 [Share2.0] OCS Share API getShare uses new code 2015-11-16 13:32:28 +01:00
Roeland Jago Douma
0be05fdddd Add unshare hooks 2015-11-05 15:59:09 +01:00
Roeland Jago Douma
6624fa212a The new sharing code now handles deletion
OCS -> ShareManager -> DefaultShareProvider
2015-11-05 15:59:09 +01:00