protected filterContentsForAccess ( |
||
$contents | ||
Результат | array |
protected function filterContentsForAccess($contents)
{
$filteredContents = [];
foreach ($contents as $content) {
$access = true;
if (is_string($content)) {
$filteredContents[] = $content;
continue;
}
if ($content->getAccessFrom() + 0 > 0 && $content->getAccessFrom() > time() || $content->getAccessTo() + 0 > 0 && $content->getAccessTo() < time()) {
$access = false;
}
if ($content->getHide()) {
$access = false;
}
if ($access && $content->getAccessFromGroups()) {
$access = false;
$groups = ',' . $content->getAccessFromGroups() . ',';
$userGroups = $this->pageStack->getUser()->getUserGroups();
foreach ($userGroups as $group) {
if (strpos($groups, ',' . $group->getGroupId() . ',') !== false) {
$access = true;
break;
}
}
if (!$access) {
$adminGroups = $this->pageStack->getUser()->getUserGroups();
foreach ($adminGroups as $group) {
if (strpos($groups, ',' . $group->getGroupId() . ',') !== false) {
$access = true;
break;
}
}
}
}
if ($access) {
$filteredContents[] = $content;
}
}
return $filteredContents;
}