示例#1
0
/**
 * Terminates all sessions, auth hooks are not executed.
 * Useful in upgrade scripts.
 *
 * @deprecated since 2.6
 */
function session_kill_all()
{
    debugging('session_kill_all() is deprecated, use \\core\\session\\manager::kill_all_sessions() instead', DEBUG_DEVELOPER);
    \core\session\manager::kill_all_sessions();
}
 public function test_kill_all_sessions()
 {
     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->sid = md5('hokus2');
     $DB->insert_record('sessions', $record);
     $record->userid = 0;
     $record->sid = md5('pokus');
     $DB->insert_record('sessions', $record);
     $this->assertEquals(3, $DB->count_records('sessions'));
     \core\session\manager::kill_all_sessions();
     $this->assertEquals(0, $DB->count_records('sessions'));
     $this->assertSame(0, $USER->id);
 }