ILIAS  trunk Revision v11.0_alpha-3011-gc6b235a2e85
ILIAS\Exercise\PermanentLink\StaticURLHandler Class Reference
+ Inheritance diagram for ILIAS\Exercise\PermanentLink\StaticURLHandler:
+ Collaboration diagram for ILIAS\Exercise\PermanentLink\StaticURLHandler:

Public Member Functions

 getNamespace ()
 
 handle (Request $request, Context $context, Factory $response_factory)
 
- Public Member Functions inherited from ILIAS\StaticURL\Handler\BaseHandler
 __construct ()
 
 canHandle (Request $request)
 
- Public Member Functions inherited from ILIAS\StaticURL\Handler\Handler
 __construct ()
 
 getNamespace ()
 
 canHandle (Request $request)
 
 handle (Request $request, Context $context, Factory $response_factory)
 

Detailed Description

Definition at line 30 of file StaticUrlHandler.php.

Member Function Documentation

◆ getNamespace()

ILIAS\Exercise\PermanentLink\StaticURLHandler::getNamespace ( )

Implements ILIAS\StaticURL\Handler\Handler.

Definition at line 32 of file StaticUrlHandler.php.

32 : string
33 {
34 return 'exc';
35 }

◆ handle()

ILIAS\Exercise\PermanentLink\StaticURLHandler::handle ( Request  $request,
Context  $context,
Factory  $response_factory 
)

Implements ILIAS\StaticURL\Handler\Handler.

Definition at line 37 of file StaticUrlHandler.php.

37 : Response
38 {
39 global $DIC;
40 $main_tpl = $DIC->ui()->mainTemplate();
41 $lng = $DIC->language();
42 $uri = null;
43 $exc_domain = $DIC->exercise()->internal()->domain();
44
45 $ref_id = $request->getReferenceId()?->toInt() ?? 0;
46 $additional_params = $request->getAdditionalParameters() ?? [];
47 $last = "";
48 if (count($additional_params) > 0) {
49 $last = (string) $additional_params[count($additional_params) - 1];
50 }
51 $ass_id = (int) ($additional_params[0] ?? 0);
52 $action = null;
53 $member = null;
54
55 switch ($last) {
56 case "download":
57 case "setdownload":
58 $action = $additional_params[2] ?? "";
59 $member = $additional_params[1];
60 break;
61
62 case "given":
63 $action = $additional_params[2] ?? "";
64 $peer_id = (int) ($additional_params[1] ?? 0);
65 break;
66
67 case "grades":
68 case "received":
69 $action = $additional_params[1] ?? "";
70 break;
71 }
72
73 $ctrl = $context->ctrl();
74
75 $ctrl->setParameterByClass(\ilExerciseHandlerGUI::class, "ref_id", $ref_id);
76
77 if ($context->checkPermission("read", $ref_id)) {
78
79 if ($ass_id > 0) {
80 $ctrl->setParameterByClass(\ilExerciseManagementGUI::class, "ass_id", $ass_id);
81 }
82
83 switch ($action) {
84 case "grades":
85 $uri = $ctrl->getLinkTargetByClass(
86 [\ilExerciseHandlerGUI::class, \ilObjExerciseGUI::class, \ilExerciseManagementGUI::class],
87 "members"
88 );
89 break;
90
91 case "setdownload":
92 $ctrl->setParameterByClass(\ilExerciseHandlerGUI::class, "member_id", $member);
93 $uri = $ctrl->getLinkTargetByClass(
94 array(\ilExerciseHandlerGUI::class, \ilObjExerciseGUI::class, \ilExerciseManagementGUI::class),
95 "waitingDownload"
96 );
97 break;
98
99 case "given":
100 $ctrl->setParameterByClass(\ilObjExerciseGUI::class, "ass_id", $ass_id);
101 $ctrl->setParameterByClass(\ilObjExerciseGUI::class, "peer_id", $peer_id);
102 $uri = $ctrl->getLinkTargetByClass(
103 array(\ilExerciseHandlerGUI::class, \ilObjExerciseGUI::class, \ilAssignmentPresentationGUI::class,
104 \ilExSubmissionGUI::class, \ilExPeerReviewGUI::class),
105 "editPeerReviewItem"
106 );
107 break;
108
109 case "received":
110 $ctrl->setParameterByClass(\ilObjExerciseGUI::class, "ass_id", $ass_id);
111 $uri = $ctrl->getLinkTargetByClass(
112 array(\ilExerciseHandlerGUI::class, \ilObjExerciseGUI::class, \ilAssignmentPresentationGUI::class,
113 \ilExSubmissionGUI::class, \ilExPeerReviewGUI::class),
114 "showReceivedPeerReview"
115 );
116 break;
117
118 default:
119 if ($ass_id > 0) {
120 $ctrl->setParameterByClass(\ilObjExerciseGUI::class, "ass_id", $ass_id);
121 $uri = $ctrl->getLinkTargetByClass(
122 [\ilExerciseHandlerGUI::class, \ilObjExerciseGUI::class, \ilAssignmentPresentationGUI::class],
123 ""
124 );
125 } else {
126 $uri = $ctrl->getLinkTargetByClass(
127 [\ilExerciseHandlerGUI::class, \ilObjExerciseGUI::class],
128 "showOverview"
129 );
130 }
131 break;
132
133 }
134 } elseif ($context->checkPermission("visible", $ref_id)) {
135 $uri = $ctrl->getLinkTargetByClass(
136 [\ilExerciseHandlerGUI::class, \ilObjExerciseGUI::class],
137 "infoScreen"
138 );
139 }
140 if (is_null($uri)) {
141 if ($exc_domain->user()->isAnonymous() || $exc_domain->user()->getId() == 0) {
142 return $response_factory->loginFirst();
143 } else {
144 return $response_factory->cannot();
145 }
146 }
147 return $response_factory->can($uri);
148 }
$ref_id
Definition: ltiauth.php:66
global $lng
Definition: privfeed.php:31
global $DIC
Definition: shib_login.php:26
$context
Definition: webdav.php:31

References $ass_id, $context, $DIC, $lng, $ref_id, ILIAS\StaticURL\Response\Factory\can(), ILIAS\StaticURL\Response\Factory\cannot(), ILIAS\StaticURL\Request\Request\getAdditionalParameters(), ILIAS\StaticURL\Request\Request\getReferenceId(), ILIAS\Repository\int(), and ILIAS\StaticURL\Response\Factory\loginFirst().

+ Here is the call graph for this function:

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