public function getAccessListItems($accessType = AreaPermissionKey::ACCESS_TYPE_INCLUDE, $filterEntities = array()) { $db = Database::connection(); $list = parent::getAccessListItems($accessType, $filterEntities); $pobj = $this->getPermissionObjectToCheck(); foreach ($list as $l) { $pe = $l->getAccessEntityObject(); if ($pobj instanceof Page) { $permission = $db->fetchColumn('select permission from BlockTypePermissionBlockTypeAccessList where paID = ?', array($l->getPermissionAccessID())); } else { $permission = $db->fetchColumn('select permission from AreaPermissionBlockTypeAccessList where peID = ? and paID = ?', array($pe->getAccessEntityID(), $l->getPermissionAccessID())); } if ($permission != 'N' && $permission != 'C') { $permission = 'A'; } $l->setBlockTypesAllowedPermission($permission); if ($permission == 'C') { if ($pobj instanceof Area) { $btIDs = $db->GetCol('select btID from AreaPermissionBlockTypeAccessListCustom where peID = ? and paID = ?', array($pe->getAccessEntityID(), $l->getPermissionAccessID())); } else { $btIDs = $db->GetCol('select btID from BlockTypePermissionBlockTypeAccessListCustom where paID = ?', array($l->getPermissionAccessID())); } $l->setBlockTypesAllowedArray($btIDs); } } return $list; }
public function getAccessListItems($accessType = AreaPermissionKey::ACCESS_TYPE_INCLUDE, $filterEntities = array(), $checkCache = true) { if ($checkCache) { $cache = \Core::make('cache/request'); $item = $cache->getItem($this->getCacheIdentifier($accessType, $filterEntities)); if (!$item->isMiss()) { return $item->get(); } $item->lock(); } $db = Database::connection(); $list = parent::getAccessListItems($accessType, $filterEntities, false); $pobj = $this->getPermissionObjectToCheck(); foreach ($list as $l) { $pe = $l->getAccessEntityObject(); if ($pobj instanceof Page) { $permission = $db->fetchColumn('select permission from BlockTypePermissionBlockTypeAccessList where paID = ?', array($l->getPermissionAccessID())); } else { $permission = $db->fetchColumn('select permission from AreaPermissionBlockTypeAccessList where peID = ? and paID = ?', array($pe->getAccessEntityID(), $l->getPermissionAccessID())); } if ($permission != 'N' && $permission != 'C') { $permission = 'A'; } $l->setBlockTypesAllowedPermission($permission); if ($permission == 'C') { if ($pobj instanceof Area) { $btIDs = $db->GetCol('select btID from AreaPermissionBlockTypeAccessListCustom where peID = ? and paID = ?', array($pe->getAccessEntityID(), $l->getPermissionAccessID())); } else { $btIDs = $db->GetCol('select btID from BlockTypePermissionBlockTypeAccessListCustom where paID = ?', array($l->getPermissionAccessID())); } $l->setBlockTypesAllowedArray($btIDs); } } if ($checkCache) { $cache->save($item->set($list)); } return $list; }