MDL-60416 ltiservice_gradebookservices: supply error code reason

This commit is contained in:
Mark Nelson 2018-04-06 15:12:09 +08:00
parent ede461a9a4
commit 9e0501a611
4 changed files with 34 additions and 0 deletions

View File

@ -78,6 +78,7 @@ class lineitem extends resource_base {
if (is_null($typeid)) {
if (!$this->check_tool_proxy(null, $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("Invalid tool proxy specified.");
return;
}
} else {
@ -85,18 +86,21 @@ class lineitem extends resource_base {
case self::HTTP_GET:
if (!$this->check_type($typeid, $contextid, 'LineItem.item:get', $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("This resource does not support GET requests.");
return;
}
break;
case self::HTTP_PUT:
if (!$this->check_type($typeid, $contextid, 'LineItem.item:put', $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("This resource does not support PUT requests.");
return;
}
break;
case self::HTTP_DELETE:
if (!$this->check_type($typeid, $contextid, 'LineItem.item:delete', $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("This resource does not support DELETE requests.");
return;
}
break;
@ -107,19 +111,23 @@ class lineitem extends resource_base {
}
if (empty($contextid) || (!empty($contenttype) && !in_array($contenttype, $this->formats))) {
$response->set_code(400);
$response->set_reason("Invalid request made.");
return;
}
if (!$DB->record_exists('course', array('id' => $contextid))) {
$response->set_code(404);
$response->set_reason("Not Found: Course $contextid doesn't exist.");
return;
}
if (!$DB->record_exists('grade_items', array('id' => $itemid))) {
$response->set_code(404);
$response->set_reason("Not Found: Grade item $itemid doesn't exist.");
return;
}
$item = $this->get_service()->get_lineitem($contextid, $itemid, $typeid);
if ($item === false) {
$response->set_code(403);
$response->set_reason("Line item does not exist.");
return;
}
require_once($CFG->libdir.'/gradelib.php');
@ -138,6 +146,7 @@ class lineitem extends resource_base {
break;
default: // Should not be possible.
$response->set_code(405);
$response->set_reason("Invalid request method specified.");
return;
}
}

View File

@ -79,6 +79,7 @@ class lineitems extends resource_base {
if (is_null($typeid)) {
if (!$this->check_tool_proxy(null, $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("Invalid tool proxy specified.");
return;
}
} else {
@ -86,27 +87,32 @@ class lineitems extends resource_base {
case self::HTTP_GET:
if (!$this->check_type($typeid, $contextid, 'LineItem.collection:get', $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("This resource does not support GET requests.");
return;
}
break;
case self::HTTP_POST:
if (!$this->check_type($typeid, $contextid, 'LineItem.collection:post', $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("This resource does not support POST requests.");
return;
}
break;
default: // Should not be possible.
$response->set_code(405);
$response->set_reason("Invalid request method specified.");
return;
}
}
if (empty($contextid) || !($container ^ ($response->get_request_method() === self::HTTP_POST)) ||
(!empty($contenttype) && !in_array($contenttype, $this->formats))) {
$response->set_code(400);
$response->set_reason("Invalid request made.");
return;
}
if (!$DB->record_exists('course', array('id' => $contextid))) {
$response->set_code(404);
$response->set_reason("Not Found: Course $contextid doesn't exist.");
return;
}
switch ($response->get_request_method()) {
@ -136,6 +142,7 @@ class lineitems extends resource_base {
break;
default: // Should not be possible.
$response->set_code(405);
$response->set_reason("Invalid request method specified.");
return;
}
$response->set_body($json);

View File

@ -77,29 +77,35 @@ class results extends resource_base {
if (is_null($typeid)) {
if (!$this->check_tool_proxy(null, $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("Invalid tool proxy specified.");
return;
}
} else {
if (!$this->check_type($typeid, $contextid, 'Result.collection:get', $response->get_request_data())) {
$response->set_code(403);
$response->set_reason("This resource does not support GET requests.");
return;
}
}
if (empty($contextid) || (!empty($contenttype) && !in_array($contenttype, $this->formats))) {
$response->set_code(400);
$response->set_reason("Invalid request made.");
return;
}
if (!$DB->record_exists('course', array('id' => $contextid))) {
$response->set_code(404);
$response->set_reason("Not Found: Course $contextid doesn't exist.");
return;
}
if (!$DB->record_exists('grade_items', array('id' => $itemid))) {
$response->set_code(404);
$response->set_reason("Not Found: Grade item $itemid doesn't exist.");
return;
}
$item = $this->get_service()->get_lineitem($contextid, $itemid, $typeid);
if ($item === false) {
$response->set_code(403);
$response->set_reason("Line item does not exist.");
return;
}
$gbs = gradebookservices::find_ltiservice_gradebookservice_for_lineitem($itemid);
@ -114,12 +120,14 @@ class results extends resource_base {
if (isset($item->iteminstance) && (!gradebookservices::check_lti_id($ltilinkid, $item->courseid,
$this->get_service()->get_tool_proxy()->id))) {
$response->set_code(403);
$response->set_reason("Invalid LTI id supplied.");
return;
}
} else {
if (isset($item->iteminstance) && (!gradebookservices::check_lti_1x_id($ltilinkid, $item->courseid,
$typeid))) {
$response->set_code(403);
$response->set_reason("Invalid LTI id supplied.");
return;
}
}
@ -138,6 +146,7 @@ class results extends resource_base {
break;
default: // Should not be possible.
$response->set_code(405);
$response->set_reason("Invalid request method specified.");
return;
}
$response->set_body($json);

View File

@ -89,10 +89,12 @@ class scores extends resource_base {
switch ($response->get_request_method()) {
case 'GET':
$response->set_code(405);
$response->set_reason("GET requests are not allowed.");
return;
case 'POST':
if (!$this->check_type($typeid, $contextid, 'Score.collection:post', $response->get_request_data())) {
$response->set_code(401);
$response->set_reason("This resource does not support POST requests.");
return;
}
break;
@ -108,15 +110,18 @@ class scores extends resource_base {
}
if (!$DB->record_exists('course', array('id' => $contextid))) {
$response->set_code(404);
$response->set_reason("Not Found: Course $contextid doesn't exist.");
return;
}
if (!$DB->record_exists('grade_items', array('id' => $itemid))) {
$response->set_code(404);
$response->set_reason("Not Found: Grade item $itemid doesn't exist.");
return;
}
$item = $this->get_service()->get_lineitem($contextid, $itemid, $typeid);
if ($item === false) {
$response->set_code(403);
$response->set_reason("Line item does not exist.");
return;
}
$gbs = gradebookservices::find_ltiservice_gradebookservice_for_lineitem($itemid);
@ -131,12 +136,14 @@ class scores extends resource_base {
if (isset($item->iteminstance) && (!gradebookservices::check_lti_id($ltilinkid, $item->courseid,
$this->get_service()->get_tool_proxy()->id))) {
$response->set_code(403);
$response->set_reason("Invalid LTI id supplied.");
return;
}
} else {
if (isset($item->iteminstance) && (!gradebookservices::check_lti_1x_id($ltilinkid, $item->courseid,
$typeid))) {
$response->set_code(403);
$response->set_reason("Invalid LTI id supplied.");
return;
}
}
@ -146,6 +153,7 @@ class scores extends resource_base {
switch ($response->get_request_method()) {
case 'GET':
$response->set_code(405);
$response->set_reason("GET requests are not allowed.");
break;
case 'POST':
try {
@ -158,6 +166,7 @@ class scores extends resource_base {
break;
default: // Should not be possible.
$response->set_code(405);
$response->set_reason("Invalid request method specified.");
return;
}
$response->set_body($json);