X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FUtil%2FACLFormatter.php;h=a7d851508d4e22d1c9441b959eb541c56e2875b9;hb=4dec002dcb0b4abfd08f8761b37295e602243d96;hp=4a36f3ebf28df75b2d4d6925acf4dd8a6a6582b2;hpb=bef7eeed13368c81d75d166faec2b1819b5d8a4f;p=friendica.git diff --git a/src/Util/ACLFormatter.php b/src/Util/ACLFormatter.php index 4a36f3ebf2..a7d851508d 100644 --- a/src/Util/ACLFormatter.php +++ b/src/Util/ACLFormatter.php @@ -12,12 +12,17 @@ final class ACLFormatter /** * Turn user/group ACLs stored as angle bracketed text into arrays * - * @param string $ids A angle-bracketed list of IDs + * @param string|null $ids A angle-bracketed list of IDs * - * @return array The array based on the IDs + * @return array The array based on the IDs (empty in case there is no list) */ - public function expand(string $ids) + public function expand(string $ids = null) { + // In case there is no ID list, return empty array (=> no ACL set) + if (!isset($ids)) { + return []; + } + // turn string array of angle-bracketed elements into numeric array // e.g. "<1><2><3>" => array(1,2,3); preg_match_all('/<(' . Group::FOLLOWERS . '|'. Group::MUTUALS . '|[0-9]+)>/', $ids, $matches, PREG_PATTERN_ORDER); @@ -31,12 +36,18 @@ final class ACLFormatter * @param string $item The item to sanitise */ private function sanitize(string &$item) { + // The item is an ACL int value if (intval($item)) { $item = '<' . intval(Strings::escapeTags(trim($item))) . '>'; + // The item is a allowed ACL character } elseif (in_array($item, [Group::FOLLOWERS, Group::MUTUALS])) { $item = '<' . $item . '>'; - } else { + // The item is already a ACL string + } elseif (preg_match('/<\d+?>/', $item)) { unset($item); + // The item is not supported, so remove it (cleanup) + } else { + $item = ''; } }