mirror of
https://github.com/nextcloud/server.git
synced 2026-06-29 12:24:50 +02:00
Make sure we do not return people that we already shared with
We should use the provided list of users and groups that we already shared with to filter suggestions.
This commit is contained in:
@@ -241,6 +241,14 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
|
||||
$usergroups = OC_Group::getUserGroups(OC_User::getUser());
|
||||
$groups = array_intersect($groups, $usergroups);
|
||||
}
|
||||
|
||||
$sharedUsers = [];
|
||||
$sharedGroups = [];
|
||||
if (isset($_GET['itemShares'])) {
|
||||
$sharedUsers = isset($_GET['itemShares'][OCP\Share::SHARE_TYPE_USER]) ? $_GET['itemShares'][OCP\Share::SHARE_TYPE_USER] : [];
|
||||
$sharedGroups = isset($_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP]) ? $_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP] : [];
|
||||
}
|
||||
|
||||
$count = 0;
|
||||
$users = array();
|
||||
$limit = 0;
|
||||
@@ -252,8 +260,13 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
|
||||
} else {
|
||||
$users = OC_User::getDisplayNames((string)$_GET['search'], $limit, $offset);
|
||||
}
|
||||
|
||||
$offset += $limit;
|
||||
foreach ($users as $uid => $displayName) {
|
||||
if (in_array($uid, $sharedUsers)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((!isset($_GET['itemShares'])
|
||||
|| !is_array((string)$_GET['itemShares'][OCP\Share::SHARE_TYPE_USER])
|
||||
|| !in_array($uid, (string)$_GET['itemShares'][OCP\Share::SHARE_TYPE_USER]))
|
||||
@@ -274,6 +287,10 @@ if (isset($_POST['action']) && isset($_POST['itemType']) && isset($_POST['itemSo
|
||||
$l = \OC::$server->getL10N('core');
|
||||
|
||||
foreach ($groups as $group) {
|
||||
if (in_array($group, $sharedGroups)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($count < 15) {
|
||||
if (!isset($_GET['itemShares'])
|
||||
|| !isset($_GET['itemShares'][OCP\Share::SHARE_TYPE_GROUP])
|
||||
|
||||
Reference in New Issue
Block a user