MDL-87882 course: Fix the restricted activity routing
This commit is contained in:
@@ -40,9 +40,8 @@ class restricted_module {
|
||||
* @return ResponseInterface
|
||||
*/
|
||||
#[route(
|
||||
path: '/{course}/restricted/{cm}',
|
||||
path: '/cms/{cm}/restricted',
|
||||
pathtypes: [
|
||||
new \core\router\parameters\path_course(),
|
||||
new \core\router\parameters\path_module(),
|
||||
],
|
||||
requirelogin: new require_login(
|
||||
@@ -53,13 +52,13 @@ class restricted_module {
|
||||
public function restricted_module_page(
|
||||
ServerRequestInterface $request,
|
||||
ResponseInterface $response,
|
||||
\stdClass $course,
|
||||
\stdClass $cm,
|
||||
): ResponseInterface {
|
||||
global $OUTPUT, $PAGE;
|
||||
|
||||
$context = \context_module::instance($cm->id);
|
||||
|
||||
$course = get_course($cm->course);
|
||||
$modinfo = get_fast_modinfo($course);
|
||||
$cminfo = $modinfo->get_cm($cm->id);
|
||||
$sectioninfo = $modinfo->get_section_info_by_id($cm->section);
|
||||
@@ -67,7 +66,11 @@ class restricted_module {
|
||||
$format = course_get_format($course);
|
||||
$course->format = $format->get_format();
|
||||
|
||||
$PAGE->set_url('/restricted.php', ['id' => $cm->id]);
|
||||
$url = \core\router\util::get_path_for_callable(
|
||||
[self::class, 'restricted_module_page'],
|
||||
['cm' => $cm->id],
|
||||
);
|
||||
$PAGE->set_url($url, ['cm' => $cm->id]);
|
||||
$PAGE->add_body_class('limitedwidth');
|
||||
$PAGE->set_context($context);
|
||||
$PAGE->set_pagetype('mod-' . $cm->modname . '-restricted');
|
||||
|
||||
@@ -2660,7 +2660,7 @@ function require_login($courseorid = null, $autologinguest = true, $cm = null, $
|
||||
if ($cm->is_visible_on_course_page()) {
|
||||
$url = \core\router\util::get_path_for_callable(
|
||||
[\core_course\route\controller\restricted_module::class, 'restricted_module_page'],
|
||||
['course' => $course->id, 'cm' => $cm->id],
|
||||
['cm' => $cm->id],
|
||||
);
|
||||
redirect($url, '', null);
|
||||
}
|
||||
|
||||
@@ -39,7 +39,7 @@ final class path_module_test extends route_testcase {
|
||||
$modcontext = \context_module::instance($mod->cmid);
|
||||
|
||||
$param = new path_module();
|
||||
$request = new ServerRequest('GET', '/course/' . $course->id . '/restricted/' . $mod->cmid);
|
||||
$request = new ServerRequest('GET', '/course/cms/' . $mod->cmid . '/restricted');
|
||||
$newrequest = $param->add_attributes_for_parameter_value($request, $mod->cmid);
|
||||
|
||||
$this->assertInstanceOf(stdClass::class, $newrequest->getAttribute('cm'));
|
||||
@@ -60,7 +60,7 @@ final class path_module_test extends route_testcase {
|
||||
$course = $this->getDataGenerator()->create_course();
|
||||
$modid = 9999;
|
||||
|
||||
$request = new ServerRequest('GET', '/course/' . $course->id . '/restricted/' . $modid);
|
||||
$request = new ServerRequest('GET', '/course/cms/' . $modid . '/restricted');
|
||||
|
||||
$this->expectException(not_found_exception::class);
|
||||
$param->add_attributes_for_parameter_value($request, $modid);
|
||||
|
||||
Reference in New Issue
Block a user