|
|
|
|
@ -341,49 +341,6 @@ class FilesReportPlugin extends ServerPlugin {
|
|
|
|
|
return $nodes;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
private function getSystemTagFileIds($systemTagIds) {
|
|
|
|
|
$resultFileIds = null;
|
|
|
|
|
|
|
|
|
|
// check user permissions, if applicable
|
|
|
|
|
if (!$this->isAdmin()) {
|
|
|
|
|
// check visibility/permission
|
|
|
|
|
$tags = $this->tagManager->getTagsByIds($systemTagIds);
|
|
|
|
|
$unknownTagIds = [];
|
|
|
|
|
foreach ($tags as $tag) {
|
|
|
|
|
if (!$tag->isUserVisible()) {
|
|
|
|
|
$unknownTagIds[] = $tag->getId();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (!empty($unknownTagIds)) {
|
|
|
|
|
throw new TagNotFoundException('Tag with ids ' . implode(', ', $unknownTagIds) . ' not found');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// fetch all file ids and intersect them
|
|
|
|
|
foreach ($systemTagIds as $systemTagId) {
|
|
|
|
|
$fileIds = $this->tagMapper->getObjectIdsForTags($systemTagId, 'files');
|
|
|
|
|
|
|
|
|
|
if (empty($fileIds)) {
|
|
|
|
|
// This tag has no files, nothing can ever show up
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// first run ?
|
|
|
|
|
if ($resultFileIds === null) {
|
|
|
|
|
$resultFileIds = $fileIds;
|
|
|
|
|
} else {
|
|
|
|
|
$resultFileIds = array_intersect($resultFileIds, $fileIds);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (empty($resultFileIds)) {
|
|
|
|
|
// Empty intersection, nothing can show up anymore
|
|
|
|
|
return [];
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
return $resultFileIds;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* @suppress PhanUndeclaredClassMethod
|
|
|
|
|
* @param array $circlesIds
|
|
|
|
|
|