mirror of
https://github.com/EGroupware/egroupware.git
synced 2024-11-23 08:23:12 +01:00
fix non-admins did not see all contacts in Addressbook
This commit is contained in:
parent
9515a31791
commit
cc1b2b8c7c
@ -212,7 +212,10 @@ class Accounts
|
||||
if (empty($account_ids))
|
||||
{
|
||||
$account_ids = $hidden_account_ids;
|
||||
if ($hidden === false) $account_ids[] = '!';
|
||||
if ($hidden === false && $account_ids)
|
||||
{
|
||||
$account_ids[] = '!';
|
||||
}
|
||||
}
|
||||
elseif ($hidden === true)
|
||||
{
|
||||
@ -289,9 +292,10 @@ class Accounts
|
||||
$serial = self::cacheKey($param, $serial_unlimited);
|
||||
|
||||
// implement $param['hidden'] via $param['account_id']
|
||||
if (isset($param['hidden']) && !in_array($param['type'],['groups', 'owngroups']))
|
||||
if (isset($param['hidden']) && !in_array($param['type'],['groups', 'owngroups']) &&
|
||||
($account_id_filter = self::hidden2account_id($param['hidden'], (array)($param['account_id']??null))))
|
||||
{
|
||||
$param['account_id'] = self::hidden2account_id($param['hidden'], (array)$param['account_id']);
|
||||
$param['account_id'] = $account_id_filter;
|
||||
}
|
||||
unset($param['hidden']);
|
||||
|
||||
|
@ -719,6 +719,7 @@ class Sql extends Api\Storage
|
||||
// implement negated account_id filter
|
||||
if (!empty($filter['account_id']) && ($not_account_ids = array_search('!', $filter['account_id'])) !== false)
|
||||
{
|
||||
unset($filter['account_id'][$not_account_ids]);
|
||||
$filter[] = $this->db->expression($this->table_name, ' NOT ', $this->table_name.'.', ['account_id' => $filter['account_id']]);
|
||||
unset($filter['account_id']);
|
||||
}
|
||||
|
@ -660,9 +660,10 @@ class Storage
|
||||
//error_log(__METHOD__.'('.array2string($criteria,true).','.array2string($only_keys).",'$order_by','$extra_cols','$wildcard','$empty','$op',".array2string($start).','.array2string($filter,true).",'$join')");
|
||||
|
||||
// add hidden user filter for non-admins
|
||||
if (empty($GLOBALS['egw_info']['user']['apps']['admin']) && empty($filter['owner']))
|
||||
if (empty($GLOBALS['egw_info']['user']['apps']['admin']) && empty($filter['owner']) &&
|
||||
($account_id_filter = Api\Accounts::hidden2account_id(false, $filter['account_id'] ?? null)))
|
||||
{
|
||||
$filter['account_id'] = Api\Accounts::hidden2account_id(false, $filter['account_id']);
|
||||
$filter['account_id'] = $account_id_filter;
|
||||
}
|
||||
// Handle 'None' country option
|
||||
if(is_array($filter) && isset($filter['adr_one_countrycode']) && $filter['adr_one_countrycode'] === '-custom-')
|
||||
|
Loading…
Reference in New Issue
Block a user