summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2020-04-29 20:40:45 +0200
committerMorris Jobke <hey@morrisjobke.de>2020-07-06 14:12:12 +0200
commite20db42a0c51fd7f7d028852ef60d47dd71e4adc (patch)
treeed38b52234e8f9e1cd3840997ff39c151db87992 /lib
parent08bfd634068cd11166abb82bbb1c0da235da6cec (diff)
downloadnextcloud-server-e20db42a0c51fd7f7d028852ef60d47dd71e4adc.tar.gz
nextcloud-server-e20db42a0c51fd7f7d028852ef60d47dd71e4adc.zip
Tags.php and the old sharing mechanism
The old sharing mechanism isn't working anymore, because it was replaced by Share 2.0. Also it was nowhere used so this removes the code paths and reduces complexity. Signed-off-by: Morris Jobke <hey@morrisjobke.de>
Diffstat (limited to 'lib')
-rw-r--r--lib/private/Share/Share.php54
-rw-r--r--lib/private/TagManager.php4
-rw-r--r--lib/private/Tags.php27
-rw-r--r--lib/public/ITagManager.php4
4 files changed, 9 insertions, 80 deletions
diff --git a/lib/private/Share/Share.php b/lib/private/Share/Share.php
index c624f243123..b37d167d896 100644
--- a/lib/private/Share/Share.php
+++ b/lib/private/Share/Share.php
@@ -521,60 +521,6 @@ class Share extends Constants {
}
/**
- * Get the owners of items shared with a user.
- *
- * @param string $user The user the items are shared with.
- * @param string $type The type of the items shared with the user.
- * @param boolean $includeCollections Include collection item types (optional)
- * @param boolean $includeOwner include owner in the list of users the item is shared with (optional)
- * @return array
- * @deprecated TESTS ONLY - this methods is only used by tests
- * called like this:
- * \OC\Share\Share::getSharedItemsOwners($this->user, $this->type, true)
- */
- public static function getSharedItemsOwners($user, $type, $includeCollections = false, $includeOwner = false) {
- // First, we find out if $type is part of a collection (and if that collection is part of
- // another one and so on).
- $collectionTypes = [];
- if (!$includeCollections || !$collectionTypes = self::getCollectionItemTypes($type)) {
- $collectionTypes[] = $type;
- }
-
- // Of these collection types, along with our original $type, we make a
- // list of the ones for which a sharing backend has been registered.
- // FIXME: Ideally, we wouldn't need to nest getItemsSharedWith in this loop but just call it
- // with its $includeCollections parameter set to true. Unfortunately, this fails currently.
- $allMaybeSharedItems = [];
- foreach ($collectionTypes as $collectionType) {
- if (isset(self::$backends[$collectionType])) {
- $allMaybeSharedItems[$collectionType] = self::getItemsSharedWithUser(
- $collectionType,
- $user,
- self::FORMAT_NONE
- );
- }
- }
-
- $owners = [];
- if ($includeOwner) {
- $owners[] = $user;
- }
-
- // We take a look at all shared items of the given $type (or of the collections it is part of)
- // and find out their owners. Then, we gather the tags for the original $type from all owners,
- // and return them as elements of a list that look like "Tag (owner)".
- foreach ($allMaybeSharedItems as $collectionType => $maybeSharedItems) {
- foreach ($maybeSharedItems as $sharedItem) {
- if (isset($sharedItem['id'])) { //workaround for https://github.com/owncloud/core/issues/2814
- $owners[] = $sharedItem['uid_owner'];
- }
- }
- }
-
- return $owners;
- }
-
- /**
* Get shared items from the database
* @param string $itemType
* @param string $item Item source or target (optional)
diff --git a/lib/private/TagManager.php b/lib/private/TagManager.php
index ecc80b271fa..96786c58a1a 100644
--- a/lib/private/TagManager.php
+++ b/lib/private/TagManager.php
@@ -76,6 +76,8 @@ class TagManager implements \OCP\ITagManager {
* @param string $userId user for which to retrieve the tags, defaults to the currently
* logged in user
* @return \OCP\ITags
+ *
+ * since 20.0.0 $includeShared isn't used anymore
*/
public function load($type, $defaultTags = [], $includeShared = false, $userId = null) {
if (is_null($userId)) {
@@ -86,6 +88,6 @@ class TagManager implements \OCP\ITagManager {
}
$userId = $this->userSession->getUser()->getUId();
}
- return new Tags($this->mapper, $userId, $type, $defaultTags, $includeShared);
+ return new Tags($this->mapper, $userId, $type, $defaultTags);
}
}
diff --git a/lib/private/Tags.php b/lib/private/Tags.php
index 92263ca4fbe..3fc66c69d6c 100644
--- a/lib/private/Tags.php
+++ b/lib/private/Tags.php
@@ -119,18 +119,14 @@ class Tags implements ITags {
* @param string $user The user whose data the object will operate on.
* @param string $type The type of items for which tags will be loaded.
* @param array $defaultTags Tags that should be created at construction.
- * @param boolean $includeShared Whether to include tags for items shared with this user by others.
+ *
+ * since 20.0.0 $includeShared isn't used anymore
*/
- public function __construct(TagMapper $mapper, $user, $type, $defaultTags = [], $includeShared = false) {
+ public function __construct(TagMapper $mapper, $user, $type, $defaultTags = []) {
$this->mapper = $mapper;
$this->user = $user;
$this->type = $type;
- $this->includeShared = $includeShared;
$this->owners = [$this->user];
- if ($this->includeShared) {
- $this->owners = array_merge($this->owners, \OC\Share\Share::getSharedItemsOwners($this->user, $this->type, true));
- $this->backend = \OC\Share\Share::getBackend($this->type);
- }
$this->tags = $this->mapper->loadTags($this->owners, $this->type);
if (count($defaultTags) > 0 && count($this->tags) === 0) {
@@ -303,22 +299,7 @@ class Tags implements ITags {
if (!is_null($result)) {
while ($row = $result->fetchRow()) {
- $id = (int)$row['objid'];
-
- if ($this->includeShared) {
- // We have to check if we are really allowed to access the
- // items that are tagged with $tag. To that end, we ask the
- // corresponding sharing backend if the item identified by $id
- // is owned by any of $this->owners.
- foreach ($this->owners as $owner) {
- if ($this->backend->isValidSource($id, $owner)) {
- $ids[] = $id;
- break;
- }
- }
- } else {
- $ids[] = $id;
- }
+ $ids[] = (int)$row['objid'];
}
}
diff --git a/lib/public/ITagManager.php b/lib/public/ITagManager.php
index 46e1ba06297..9003beb8a2a 100644
--- a/lib/public/ITagManager.php
+++ b/lib/public/ITagManager.php
@@ -54,11 +54,11 @@ interface ITagManager {
* @see \OCP\ITags
* @param string $type The type identifier e.g. 'contact' or 'event'.
* @param array $defaultTags An array of default tags to be used if none are stored.
- * @param boolean $includeShared Whether to include tags for items shared with this user by others.
+ * @param boolean $includeShared Whether to include tags for items shared with this user by others. - always false since 20.0.0
* @param string $userId user for which to retrieve the tags, defaults to the currently
* logged in user
* @return \OCP\ITags
- * @since 6.0.0 - parameter $includeShared and $userId were added in 8.0.0
+ * @since 6.0.0 - parameter $includeShared and $userId were added in 8.0.0 - $includeShared is always false since 20.0.0
*/
public function load($type, $defaultTags = [], $includeShared = false, $userId = null);
}