/** * Kill user session. * * @param int $id * @return void */ function report_usersessions_kill_session($id) { global $DB, $USER; $session = $DB->get_record('sessions', array('id' => $id, 'userid' => $USER->id), 'id, sid'); if (!$session or $session->sid === session_id()) { // Do not delete the current session! return; } \core\session\manager::kill_session($session->sid); }
/** * Terminates one sessions, auth hooks are not executed. * * @deprecated since 2.6 * @param string $sid session id */ function session_kill($sid) { debugging('session_kill() is deprecated, use \\core\\session\\manager::kill_session() instead', DEBUG_DEVELOPER); \core\session\manager::kill_session($sid); }
/** * To delete a host, we must delete all current sessions that users from * that host are currently engaged in. * * @param string $sessionidarray An array of session hashes * @return bool True on success */ function end_local_sessions(&$sessionArray) { global $CFG; if (is_array($sessionArray)) { while ($session = array_pop($sessionArray)) { \core\session\manager::kill_session($session->session_id); } return true; } return false; }
public function test_kill_session() { global $DB, $USER; $this->resetAfterTest(); $this->setAdminUser(); $userid = $USER->id; $sid = md5('hokus'); $record = new \stdClass(); $record->state = 0; $record->sid = $sid; $record->sessdata = null; $record->userid = $userid; $record->timecreated = time() - 60 * 60; $record->timemodified = time() - 30; $record->firstip = $record->lastip = '10.0.0.1'; $DB->insert_record('sessions', $record); $record->userid = 0; $record->sid = md5('pokus'); $DB->insert_record('sessions', $record); $this->assertEquals(2, $DB->count_records('sessions')); \core\session\manager::kill_session($sid); $this->assertEquals(1, $DB->count_records('sessions')); $this->assertFalse($DB->record_exists('sessions', array('sid' => $sid))); $this->assertSame($userid, $USER->id); }