mirror of
https://github.com/EGroupware/egroupware.git
synced 2025-06-26 04:41:41 +02:00
fix to use groups in search, even if you have no read-rights from the group, but from some if it's memebers
This commit is contained in:
parent
be95952118
commit
93d581dbbe
@ -270,35 +270,38 @@ class bocal
|
|||||||
if ($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ,0,$user))
|
if ($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ,0,$user))
|
||||||
{
|
{
|
||||||
$users[] = $user;
|
$users[] = $user;
|
||||||
|
}
|
||||||
// for groups we have to include the members
|
elseif ($GLOBALS['egw']->accounts->get_type($user) != 'g')
|
||||||
if ($GLOBALS['egw']->accounts->get_type($user) == 'g')
|
{
|
||||||
|
continue; // for non-groups (eg. users), we stop here if we have no read-rights
|
||||||
|
}
|
||||||
|
// for groups we have to include the members
|
||||||
|
if ($GLOBALS['egw']->accounts->get_type($user) == 'g')
|
||||||
|
{
|
||||||
|
$members = $GLOBALS['egw']->accounts->member($user);
|
||||||
|
if (is_array($members))
|
||||||
{
|
{
|
||||||
$members = $GLOBALS['egw']->accounts->member($user);
|
foreach($members as $member)
|
||||||
if (is_array($members))
|
|
||||||
{
|
{
|
||||||
foreach($members as $member)
|
// use only members which gave the user a read-grant
|
||||||
|
if (!in_array($member['account_id'],$users) &&
|
||||||
|
($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ,0,$member['account_id'])))
|
||||||
{
|
{
|
||||||
// use only members which gave the user a read-grant
|
$users[] = $member['account_id'];
|
||||||
if (!in_array($member['account_id'],$users) &&
|
|
||||||
($params['ignore_acl'] || $this->check_perms(EGW_ACL_READ,0,$member['account_id'])))
|
|
||||||
{
|
|
||||||
$users[] = $member['account_id'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else // for users we have to include all the memberships, to get the group-events
|
}
|
||||||
|
else // for users we have to include all the memberships, to get the group-events
|
||||||
|
{
|
||||||
|
$memberships = $GLOBALS['egw']->accounts->membership($user);
|
||||||
|
if (is_array($memberships))
|
||||||
{
|
{
|
||||||
$memberships = $GLOBALS['egw']->accounts->membership($user);
|
foreach($memberships as $group)
|
||||||
if (is_array($memberships))
|
|
||||||
{
|
{
|
||||||
foreach($memberships as $group)
|
if (!in_array($group['account_id'],$users))
|
||||||
{
|
{
|
||||||
if (!in_array($group['account_id'],$users))
|
$users[] = $group['account_id'];
|
||||||
{
|
|
||||||
$users[] = $group['account_id'];
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user