ILIAS  trunk Revision v11.0_alpha-1769-g99a433fe2dc
All Data Structures Namespaces Files Functions Variables Enumerations Enumerator Modules Pages
ILIAS\File\Capabilities\CapabilityBuilder Class Reference
+ Collaboration diagram for ILIAS\File\Capabilities\CapabilityBuilder:

Public Member Functions

 __construct (private readonly \ilObjFileInfoRepository $file_info_repository, private readonly \ilAccessHandler $access, private readonly \ilCtrlInterface $ctrl, private readonly ActionRepository $action_repository, private readonly Services $http, private readonly URIBuilder $static_url, private readonly TypeResolver $type_resolver=new CoreTypeResolver(), private readonly \ilWorkspaceAccessHandler $workspace_access_handler=new \ilWorkspaceAccessHandler())
 
 get (Context $context)
 

Protected Attributes

array $cache = []
 

Private Attributes

array $checks = []
 

Detailed Description

Author
Fabian Schmid fabia.nosp@m.n@sr.nosp@m..solu.nosp@m.tion.nosp@m.s

Definition at line 41 of file CapabilityBuilder.php.

Constructor & Destructor Documentation

◆ __construct()

ILIAS\File\Capabilities\CapabilityBuilder::__construct ( private readonly \ilObjFileInfoRepository  $file_info_repository,
private readonly \ilAccessHandler  $access,
private readonly \ilCtrlInterface  $ctrl,
private readonly ActionRepository  $action_repository,
private readonly Services  $http,
private readonly URIBuilder  $static_url,
private readonly TypeResolver  $type_resolver = new CoreTypeResolver(),
private readonly \ilWorkspaceAccessHandler  $workspace_access_handler = new \ilWorkspaceAccessHandler() 
)

Definition at line 49 of file CapabilityBuilder.php.

58  {
59  $this->checks = [
60  new ForcedInfo(),
61  new Download(),
62  new Edit(),
63  new EditContent(),
64  new Info(),
65  new Manage(),
66  new None(),
67  new Unzip(),
68  new ViewContent(),
69  ];
70  }

Member Function Documentation

◆ get()

ILIAS\File\Capabilities\CapabilityBuilder::get ( Context  $context)

This is the order of priorities when using

See also
CapabilityCollection::getBest() which will return the first unlocked Capability

Definition at line 72 of file CapabilityBuilder.php.

References $check, $context, ILIAS\Repository\access(), ILIAS\File\Capabilities\ANY, ILIAS\Repository\ctrl(), and ILIAS\FileDelivery\http().

72  : CapabilityCollection
73  {
74  if (isset($this->cache[$context->getNode()])) {
75  return $this->cache[$context->getNode()];
76  }
77 
83  $capabilities = [
84  new Capability(Capabilities::FORCED_INFO_PAGE, ...Permissions::ANY()),
85  new Capability(Capabilities::VIEW_EXTERNAL, Permissions::VIEW_CONTENT),
86  new Capability(Capabilities::EDIT_EXTERNAL, Permissions::EDIT_CONTENT),
87  new Capability(Capabilities::DOWNLOAD, Permissions::READ),
88  new Capability(Capabilities::MANAGE_VERSIONS, Permissions::WRITE),
89  new Capability(Capabilities::EDIT_SETTINGS, Permissions::WRITE),
90  new Capability(Capabilities::INFO_PAGE, ...Permissions::ANY()),
91  new Capability(Capabilities::NONE, Permissions::NONE),
92  new Capability(Capabilities::UNZIP, Permissions::WRITE),
93  ];
94 
95  if ($this->type_resolver->resolveTypeByObjectId($context->getObjectId()) !== 'file') {
96  return new CapabilityCollection($capabilities);
97  }
98 
99  $info = $this->file_info_repository->getByObjectId($context->getObjectId());
100  $helpers = new CheckHelpers(
101  $this->access,
102  $this->ctrl,
103  $this->action_repository,
104  $this->http,
105  $this->static_url,
106  $this->workspace_access_handler
107  );
108 
109  $calling_id = $context->getCallingId();
110 
111  if ($calling_id > 0) {
112  $this->ctrl->setParameterByClass(\ilObjFileGUI::class, 'ref_id', $calling_id);
113  }
114 
115  foreach ($capabilities as $capability) {
116  foreach ($this->checks as $check) {
117  if ($check->canUnlock() === $capability->getCapability()) {
118  $capability = $check->maybeUnlock($capability, $helpers, $info, $context);
119  $capability = $check->maybeBuildURI($capability, $helpers, $context);
120  }
121  }
122  }
123  return $this->cache[$context->getNode()] = new CapabilityCollection($capabilities);
124  }
$context
Definition: webdav.php:31
static http()
Fetches the global http state from ILIAS.
$check
Definition: buildRTE.php:81
+ Here is the call graph for this function:

Field Documentation

◆ $cache

array ILIAS\File\Capabilities\CapabilityBuilder::$cache = []
protected

Definition at line 43 of file CapabilityBuilder.php.

◆ $checks

array ILIAS\File\Capabilities\CapabilityBuilder::$checks = []
private

Definition at line 47 of file CapabilityBuilder.php.


The documentation for this class was generated from the following file: