Select Git revision
UserProgressesOfUnitsShow.php
Forked from
Stud.IP / Stud.IP
Source project has a limited visibility.
-
Jan-Hendrik Willms authored
Closes #2281 Merge request studip/studip!1505
Jan-Hendrik Willms authoredCloses #2281 Merge request studip/studip!1505
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Folder.php 5.56 KiB
<?php
namespace JsonApi\Schemas;
use Neomerx\JsonApi\Document\Link;
class Folder extends SchemaProvider
{
const TYPE = 'folders';
const REL_OWNER = 'owner';
const REL_PARENT = 'parent';
const REL_RANGE = 'range';
const REL_FEEDBACK = 'feedback-elements';
const REL_FILE_REFS = 'file-refs';
const REL_FOLDERS = 'folders';
protected $resourceType = self::TYPE;
public function getId($resource)
{
return $resource->getId();
}
public function getAttributes($resource)
{
$user = $this->getDiContainer()->get('studip-current-user');
$attributes = [
'folder-type' => $resource->folder_type,
'name' => $resource->name,
'description' => $resource->description ?: null,
'mkdate' => date('c', $resource->mkdate),
'chdate' => date('c', $resource->chdate),
'is-visible' => (bool) $resource->isVisible($user->id),
'is-readable' => (bool) $resource->isReadable($user->id),
'is-writable' => (bool) $resource->isWritable($user->id),
'is-editable' => (bool) $resource->isEditable($user->id),
'is-subfolder-allowed' => (bool) $resource->isSubfolderAllowed($user->id),
];
// TODO: sollte das wirklich zugänglich sein?
if ($resource->isReadable($user->id)) {
$attributes['data-content'] = json_decode($resource->data_content);
}
return $attributes;
}
/**
* @SuppressWarnings(PHPMD.UnusedFormalParameters)
*/
public function getRelationships($resource, $isPrimary, array $includeList)
{
$relationships = [];
if ($isPrimary) {
$relationships = $this->getFeedbackRelationship($relationships, $resource);
$relationships = $this->getFilesRelationship($relationships, $resource);
$relationships = $this->getFoldersRelationship($relationships, $resource);
$relationships = $this->getOwnerRelationship($relationships, $resource);
$relationships = $this->getParentRelationship($relationships, $resource);
$relationships = $this->getRangeRelationship($relationships, $resource);
}
return $relationships;
}
private function getOwnerRelationship(array $relationships, $resource)