Skip to content
Snippets Groups Projects
Unverified Commit fc4d0a86 authored by Roeland Jago Douma's avatar Roeland Jago Douma
Browse files

Fix merging backend results


* Merge share types correctly
* Filter share types
* Order share types

Signed-off-by: default avatarRoeland Jago Douma <roeland@famdouma.nl>
parent ce7eb026
No related branches found
No related tags found
No related merge requests found
...@@ -148,9 +148,12 @@ class SharesPlugin extends \Sabre\DAV\ServerPlugin { ...@@ -148,9 +148,12 @@ class SharesPlugin extends \Sabre\DAV\ServerPlugin {
$values = array_map(function (\OCP\Files\Node $node) use ($shares) { $values = array_map(function (\OCP\Files\Node $node) use ($shares) {
/** @var IShare[] $shares */ /** @var IShare[] $shares */
$shares = (isset($shares[$node->getId()])) ? $shares[$node->getId()] : []; $shares = (isset($shares[$node->getId()])) ? $shares[$node->getId()] : [];
return array_map(function(IShare $share) { $types = array_map(function(IShare $share) {
return $share->getShareType(); return $share->getShareType();
}, $shares); }, $shares);
$types = array_unique($types);
sort($types);
return $types;
}, $children); }, $children);
$keys = array_map(function (\OCP\Files\Node $node) { $keys = array_map(function (\OCP\Files\Node $node) {
......
...@@ -574,7 +574,7 @@ class FederatedShareProvider implements IShareProvider { ...@@ -574,7 +574,7 @@ class FederatedShareProvider implements IShareProvider {
$qb->expr()->eq('item_type', $qb->createNamedParameter('folder')) $qb->expr()->eq('item_type', $qb->createNamedParameter('folder'))
)) ))
->andWhere( ->andWhere(
$qb->expr()->eq('shareType', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_REMOTE)) $qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_REMOTE))
); );
/** /**
......
...@@ -466,7 +466,8 @@ class DefaultShareProvider implements IShareProvider { ...@@ -466,7 +466,8 @@ class DefaultShareProvider implements IShareProvider {
$qb->andWhere($qb->expr()->orX( $qb->andWhere($qb->expr()->orX(
$qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_USER)), $qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_USER)),
$qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_GROUP)) $qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_GROUP)),
$qb->expr()->eq('share_type', $qb->createNamedParameter(\OCP\Share::SHARE_TYPE_LINK))
)); ));
/** /**
......
...@@ -887,7 +887,15 @@ class Manager implements IManager { ...@@ -887,7 +887,15 @@ class Manager implements IManager {
$providers = $this->factory->getAllProviders(); $providers = $this->factory->getAllProviders();
return array_reduce($providers, function($shares, IShareProvider $provider) use ($userId, $node, $reshares) { return array_reduce($providers, function($shares, IShareProvider $provider) use ($userId, $node, $reshares) {
return $shares + $provider->getSharesInFolder($userId, $node, $reshares); $newShares = $provider->getSharesInFolder($userId, $node, $reshares);
foreach ($newShares as $fid => $data) {
if (!isset($shares[$fid])) {
$shares[$fid] = [];
}
$shares[$fid] = array_merge($shares[$fid], $data);
}
return $shares;
}, []); }, []);
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment