public function getAccessListItems($accessType = PermissionKey::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); foreach ($list as $l) { $pe = $l->getAccessEntityObject(); if (isset($this->permissionObjectToCheck) && $this->permissionObjectToCheck instanceof Page && $l->getAccessType() == PermissionKey::ACCESS_TYPE_INCLUDE) { $permission = 'A'; } else { $permission = $db->fetchColumn('select permission from BlockTypePermissionBlockTypeAccessList where paID = ? and peID = ?', array($l->getPermissionAccessID(), $pe->getAccessEntityID())); if ($permission != 'N' && $permission != 'C') { $permission = 'A'; } } $l->setBlockTypesAllowedPermission($permission); if ($permission == 'C') { $btIDs = $db->GetCol('select btID from BlockTypePermissionBlockTypeAccessListCustom where paID = ? and peID = ?', array($l->getPermissionAccessID(), $pe->getAccessEntityID())); $l->setBlockTypesAllowedArray($btIDs); } } if ($checkCache) { $cache->save($item->set($list)); } return $list; }
public function getAccessListItems($accessType = PermissionKey::ACCESS_TYPE_INCLUDE, $filterEntities = array()) { $db = Database::connection(); $list = parent::getAccessListItems($accessType, $filterEntities); foreach ($list as $l) { $pe = $l->getAccessEntityObject(); if (isset($this->permissionObjectToCheck) && $this->permissionObjectToCheck instanceof Page && $l->getAccessType() == PermissionKey::ACCESS_TYPE_INCLUDE) { $permission = 'A'; } else { $permission = $db->fetchColumn('select permission from BlockTypePermissionBlockTypeAccessList where paID = ? and peID = ?', array($l->getPermissionAccessID(), $pe->getAccessEntityID())); if ($permission != 'N' && $permission != 'C') { $permission = 'A'; } } $l->setBlockTypesAllowedPermission($permission); if ($permission == 'C') { $btIDs = $db->GetCol('select btID from BlockTypePermissionBlockTypeAccessListCustom where paID = ? and peID = ?', array($l->getPermissionAccessID(), $pe->getAccessEntityID())); $l->setBlockTypesAllowedArray($btIDs); } } return $list; }