36 public const EDIT =
'edit';
37 public const VIEW =
'view';
50 $DIC[
'static_url.uri_builder']
62 if ($reference_id ===
null) {
63 return $response_factory->
cannot();
68 if ($additional_params ===
'_wsp') {
73 $capability_context = new \ILIAS\File\Capabilities\Context(
74 $reference_id->toObjectId()->toInt(),
75 $reference_id->toInt(),
76 \ILIAS\File\Capabilities\Context::CONTEXT_REPO
79 $capabilities = $this->capabilities->get($capability_context);
81 $capability = match ($additional_params) {
82 self::DOWNLOAD => $capabilities->get(Capabilities::DOWNLOAD),
83 self::VERSIONS => $capabilities->get(Capabilities::MANAGE_VERSIONS),
84 self::EDIT => $capabilities->get(Capabilities::EDIT_EXTERNAL),
85 self::VIEW => $capabilities->get(Capabilities::VIEW_EXTERNAL),
86 default => $capabilities->get(Capabilities::INFO_PAGE),
89 if (!$capability->isUnlocked() || $capability->getUri() ===
null) {
93 $uri = $capability->getUri();
95 return $response_factory->
can($uri->getPath() .
'?' . $uri->getQuery());
getAdditionalParameters()
while($session_entry=$r->fetchRow(ilDBConstants::FETCHMODE_ASSOC)) return null
readonly CapabilityBuilder $capabilities
handle(Request $request, Context $context, Factory $response_factory)
__construct(Container $dic, ilPlugin $plugin)
static _gotoSharedWorkspaceNode(int $wsp_id)