Merge branch 'MDL-55992-master' of git://github.com/jleyva/moodle

This commit is contained in:
Andrew Nicols 2016-11-08 13:40:00 +08:00
commit 3e85e02a98
2 changed files with 7 additions and 5 deletions

View File

@ -164,7 +164,6 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$service = $DB->get_record('external_services', array('shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE));
$token = external_generate_token_for_current_user($service);
$this->assertDebuggingCalled(); // MDL-55992.
// Check we got the private token.
$this->assertTrue(isset($token->privatetoken));
@ -253,7 +252,6 @@ class tool_mobile_external_testcase extends externallib_advanced_testcase {
$service = $DB->get_record('external_services', array('shortname' => MOODLE_OFFICIAL_MOBILE_SERVICE));
$token = external_generate_token_for_current_user($service);
$this->assertDebuggingCalled(); // MDL-55992.
$_GET['wstoken'] = $token->token; // Mock parameters.
$result = external::get_autologin_key($token->privatetoken);

View File

@ -1054,20 +1054,24 @@ function external_generate_token_for_current_user($service) {
$token->externalserviceid = $service->id;
// MDL-43119 Token valid for 3 months (12 weeks).
$token->validuntil = $token->timecreated + 12 * WEEKSECS;
$token->iprestriction = null;
$token->sid = null;
$token->lastaccess = null;
// Generate the private token, it must be transmitted only via https.
$token->privatetoken = random_string(64);
$token->id = $DB->insert_record('external_tokens', $token);
$token = $DB->get_record('external_tokens', ['id' => $token->id]);
$eventtoken = clone $token;
$eventtoken->privatetoken = null;
$params = array(
'objectid' => $token->id,
'objectid' => $eventtoken->id,
'relateduserid' => $USER->id,
'other' => array(
'auto' => true
)
);
$event = \core\event\webservice_token_created::create($params);
$event->add_record_snapshot('external_tokens', $token);
$event->add_record_snapshot('external_tokens', $eventtoken);
$event->trigger();
} else {
throw new moodle_exception('cannotcreatetoken', 'webservice', '', $service->shortname);