Skip to content
Snippets Groups Projects
Select Git revision
  • 80da8c24da750b580d9f706a7555b9e0617d2a5c
  • main default protected
  • step-3263
  • feature/plugins-cli
  • feature/vite
  • step-2484-peerreview
  • biest/issue-5051
  • tests/simplify-jsonapi-tests
  • fix/typo-in-1a70031
  • feature/broadcasting
  • database-seeders-and-factories
  • feature/peer-review-2
  • feature-feedback-jsonapi
  • feature/peerreview
  • feature/balloon-plus
  • feature/stock-images-unsplash
  • tic-2588
  • 5.0
  • 5.2
  • biest/unlock-blocks
  • biest-1514
21 results

UserProgressesOfUnitsShow.php

Blame
  • Forked from Stud.IP / Stud.IP
    Source project has a limited visibility.
    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)