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.
remotes/origin/poc-doctrine-migrations
Roeland Jago Douma 11 years ago
parent fb61889490
commit 9c19a5dbcc
  1. 17
      core/ajax/share.php

@ -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])

Loading…
Cancel
Save