37 public const EDIT =
'edit';
38 public const VIEW =
'view';
51 $DIC[
'static_url.uri_builder']
63 if ($reference_id === null) {
64 return $response_factory->
cannot();
69 if ($additional_params ===
'_wsp') {
74 $capability_context = new \ILIAS\File\Capabilities\Context(
75 $reference_id->toObjectId()->toInt(),
76 $reference_id->toInt(),
77 \ILIAS\File\Capabilities\Context::CONTEXT_REPO
80 $capabilities = $this->capabilities->get($capability_context);
82 $capability = match ($additional_params) {
83 self::DOWNLOAD => $capabilities->get(Capabilities::DOWNLOAD),
84 self::VERSIONS => $capabilities->get(Capabilities::MANAGE_VERSIONS),
85 self::EDIT => $capabilities->get(Capabilities::EDIT_EXTERNAL),
86 self::VIEW => $capabilities->get(Capabilities::VIEW_EXTERNAL),
87 default => $capabilities->get(Capabilities::INFO_PAGE),
90 if (!$capability->isUnlocked() || $capability->getUri() === null) {
94 $uri = $capability->getUri();
96 return $response_factory->
can($uri->getPath() .
'?' . $uri->getQuery());
getAdditionalParameters()
readonly CapabilityBuilder $capabilities
handle(Request $request, Context $context, Factory $response_factory)
__construct(Container $dic, ilPlugin $plugin)
static _gotoSharedWorkspaceNode(int $wsp_id)