36 public const EDIT =
'edit';
37 public const VIEW =
'view';
64 if ($reference_id === null) {
65 return $response_factory->
cannot();
70 if ($additional_params ===
'_wsp') {
75 $capability_context = new \ILIAS\File\Capabilities\Context(
76 $reference_id->toObjectId()->toInt(),
77 $reference_id->toInt(),
81 $capabilities = $this->capabilities->
get($capability_context);
83 $capability = match ($additional_params) {
84 self::DOWNLOAD => $capabilities->get(Capabilities::DOWNLOAD),
85 self::VERSIONS => $capabilities->get(Capabilities::MANAGE_VERSIONS),
86 self::EDIT => $capabilities->get(Capabilities::EDIT_EXTERNAL),
87 self::VIEW => $capabilities->get(Capabilities::VIEW_EXTERNAL),
88 default => $capabilities->get(Capabilities::INFO_PAGE),
91 if (!$capability->isUnlocked() || $capability->getUri() === null) {
95 $uri = $capability->getUri();
97 return $response_factory->
can($uri->getPath() .
'?' . $uri->getQuery());
getAdditionalParameters()
handle(Request $request, Context $context, Factory $response_factory)
static _gotoSharedWorkspaceNode(int $wsp_id)
CapabilityBuilder $capabilities