/** * Resolves permissions for given user. * * @param Row $row * @param UserInterface $user * * @return array */ private function resolvePermissions(Row $row, UserInterface $user = null) { $permissions = []; if (null !== $user) { foreach ($user->getRoleObjects() as $role) { foreach (array_filter(explode(' ', $row->getValue(sprintf('role%s', $role->getId())))) as $permission) { $permissions[$role->getId()][$permission] = true; } } } return $permissions; }
/** * Return data for one field. */ private function getFieldData($field, Row $row, NodeInterface $node, $document, $templateKey, $webspaceKey, $locale) { if (isset($field['column'])) { // normal data from node property return $row->getValue($field['column']); } elseif (isset($field['extension'])) { // data from extension return $this->getExtensionData($node, $field['extension'], $field['property'], $webspaceKey, $locale); } elseif (isset($field['property']) && (!isset($field['templateKey']) || $field['templateKey'] === $templateKey)) { // not extension data but property of node return $this->getPropertyData($document, $field['property']); } return; }