Moodle  2.2.1
http://www.collinsharper.com
C:/xampp/htdocs/moodle/course/loginas.php
Go to the documentation of this file.
00001 <?php
00002 // Allows a teacher/admin to login as another user (in stealth mode)
00003 
00004 require_once('../config.php');
00005 require_once('lib.php');
00006 
00007 $id = optional_param('id', SITEID, PARAM_INT);   // course id
00008 
00010 if (session_is_loggedinas()) {
00011     require_sesskey();
00012     require_logout();
00013 
00014     if ($id and $id != SITEID) {
00015         $SESSION->wantsurl = "$CFG->wwwroot/course/view.php?id=".$id;
00016     } else {
00017         $SESSION->wantsurl = "$CFG->wwwroot/";
00018     }
00019 
00020     redirect(get_login_url());
00021 }
00022 
00025 
00026 $userid = required_param('user', PARAM_INT);         // login as this user
00027 
00028 $url = new moodle_url('/course/loginas.php', array('user'=>$userid, 'sesskey'=>sesskey()));
00029 if ($id !== SITEID) {
00030     $url->param('id', $id);
00031 }
00032 $PAGE->set_url($url);
00033 
00034 require_sesskey();
00035 $course = $DB->get_record('course', array('id'=>$id), '*', MUST_EXIST);
00036 
00038 
00039 $systemcontext = get_context_instance(CONTEXT_SYSTEM);
00040 $coursecontext = get_context_instance(CONTEXT_COURSE, $course->id);
00041 
00042 require_login();
00043 
00044 if (has_capability('moodle/user:loginas', $systemcontext)) {
00045     if (is_siteadmin($userid)) {
00046         print_error('nologinas');
00047     }
00048     $context = $systemcontext;
00049     $PAGE->set_context($context);
00050 } else {
00051     require_login($course);
00052     require_capability('moodle/user:loginas', $coursecontext);
00053     if (is_siteadmin($userid)) {
00054         print_error('nologinas');
00055     }
00056     if (!is_enrolled($coursecontext, $userid)) {
00057         print_error('usernotincourse');
00058     }
00059     $context = $coursecontext;
00060 }
00061 
00063 $oldfullname = fullname($USER, true);
00064 session_loginas($userid, $context);
00065 $newfullname = fullname($USER, true);
00066 
00067 add_to_log($course->id, "course", "loginas", "../user/view.php?id=$course->id&amp;user=$userid", "$oldfullname -> $newfullname");
00068 
00069 $strloginas    = get_string('loginas');
00070 $strloggedinas = get_string('loggedinas', '', $newfullname);
00071 
00072 $PAGE->set_title($strloggedinas);
00073 $PAGE->set_heading($course->fullname);
00074 $PAGE->navbar->add($strloggedinas);
00075 notice($strloggedinas, "$CFG->wwwroot/course/view.php?id=$course->id");
 All Data Structures Namespaces Files Functions Variables Enumerations