/** * Add correct fe_group info and public_url * * @param Item $item * @param \ArrayObject $metadata */ public function fileMetaDataRetrieved(Item $item, \ArrayObject $metadata) { if ($item->getFile() instanceof File && !$item->getFile()->getStorage()->isPublic()) { $resourcePermissions = $this->checkPermissionsService->getPermissions($item->getFile()); // If there are already permissions set, refine these with actual file permissions if ($metadata['fe_groups']) { $metadata['fe_groups'] = implode(',', GeneralUtility::keepItemsInArray(explode(',', $resourcePermissions), $metadata['fe_groups'])); } else { $metadata['fe_groups'] = $resourcePermissions; } } // Re-generate public url $this->publicUrlAspect->setEnabled(FALSE); $metadata['public_url'] = $item->getFile()->getPublicUrl(); $this->publicUrlAspect->setEnabled(TRUE); }
/** * Get user permissions * * @param string|File $file * @param string $content * @param array $additionalFields * @param array $indexRecordValues * @param \tx_kesearch_indexer_types_file $indexer */ public function modifyFileIndexEntry($file, $content, $additionalFields, &$indexRecordValues, $indexer) { if ($file instanceof File && !$file->getStorage()->isPublic()) { $indexRecordValues['fe_group'] = $this->checkPermissionsService->getPermissions($file); } }