diff --git a/src/Model/Group.php b/src/Model/Group.php index c38e78000..199ff1ebd 100644 --- a/src/Model/Group.php +++ b/src/Model/Group.php @@ -117,6 +117,16 @@ class Group } DBA::close($stmt); + // Meta-groups + $contact = Contact::getById($cid, ['rel']); + if ($contact['rel'] == Contact::FOLLOWER || $contact['rel'] == Contact::FRIEND) { + $return[] = self::FOLLOWERS; + } + + if ($contact['rel'] == Contact::FRIEND) { + $return[] = self::MUTUALS; + } + return $return; } diff --git a/src/Model/PermissionSet.php b/src/Model/PermissionSet.php index de943c977..fbcc1738d 100644 --- a/src/Model/PermissionSet.php +++ b/src/Model/PermissionSet.php @@ -82,14 +82,9 @@ class PermissionSet $groups = Group::getIdsByContactId($contact_id); } - if (empty($groups) || !is_array($groups)) { - return []; - } - $group_str = '<<>>'; // should be impossible to match - - foreach ($groups as $g) { - $group_str .= '|<' . intval($g) . '>'; + foreach ($groups as $group_id) { + $group_str .= '|<' . preg_quote($group_id) . '>'; } $contact_str = '<' . $contact_id . '>';