session->getLoggedInUser(); $user_guid = $user ? $user->guid : 0; $container_guid = (int) $container_guid; $cache_key = "$container_guid|$user_guid"; if (empty($cache[$cache_key]) || !$use_cache) { // compute $container = get_entity($container_guid); $is_visible = (bool) $container; if (!$is_visible) { // see if it *really* exists... $prev_access = elgg_set_ignore_access(); $container = get_entity($container_guid); elgg_set_ignore_access($prev_access); } $ret = new \Elgg\GroupItemVisibility(); if ($container && $container instanceof \ElggGroup) { /* @var \ElggGroup $container */ if ($is_visible) { if ($container->getContentAccessMode() === \ElggGroup::CONTENT_ACCESS_MODE_MEMBERS_ONLY) { if ($user) { if (!$container->isMember($user) && !$user->isAdmin()) { $ret->shouldHideItems = true; $ret->reasonHidden = self::REASON_NON_MEMBER; } } else { $ret->shouldHideItems = true; $ret->reasonHidden = self::REASON_LOGGED_OUT; } } } else { $ret->shouldHideItems = true; $ret->reasonHidden = self::REASON_NO_ACCESS; } } $cache[$cache_key] = $ret; } $return = $cache[$cache_key]; // don't exhaust memory in extreme uses if (count($cache) > 500) { reset($cache); unset($cache[key($cache)]); } return $return; } }