- $allow_people = $aclFormater->expand($obj['allow_cid']);
- $allow_groups = Group::expand($obj['uid'], $aclFormater->expand($obj['allow_gid']), $check_dead);
- $deny_people = $aclFormater->expand($obj['deny_cid']);
- $deny_groups = Group::expand($obj['uid'], $aclFormater->expand($obj['deny_gid']), $check_dead);
- $recipients = array_unique(array_merge($allow_people, $allow_groups));
- $deny = array_unique(array_merge($deny_people, $deny_groups));
- $recipients = array_diff($recipients, $deny);
+ if (!$expand_followers && (!empty($obj['deny_cid']) || !empty($obj['deny_gid']))) {
+ $expand_followers = true;
+ }
+
+ $allow_people = $aclFormatter->expand($obj['allow_cid']);
+ $allow_circles = Circle::expand($obj['uid'], $aclFormatter->expand($obj['allow_gid']), $check_dead, $expand_followers);
+ $deny_people = $aclFormatter->expand($obj['deny_cid']);
+ $deny_circles = Circle::expand($obj['uid'], $aclFormatter->expand($obj['deny_gid']), $check_dead);
+ $recipients = array_unique(array_merge($allow_people, $allow_circles));
+ $deny = array_unique(array_merge($deny_people, $deny_circles));
+ $recipients = array_diff($recipients, $deny);