72 : CapabilityCollection
73 {
74 if (isset($this->cache[$context->
getNode()])) {
75 return $this->cache[$context->
getNode()];
76 }
77
83 $capabilities = [
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),
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
100 $helpers = new CheckHelpers(
103 $this->action_repository,
105 $this->static_url,
106 $this->workspace_access_handler
107 );
108
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 }
static http()
Fetches the global http state from ILIAS.