Exemplo n.º 1
0
function calendar_session_vars($course = null)
{
    global $SESSION, $USER;
    if (!empty($USER->id) && isset($USER->realuser) && !isset($SESSION->cal_loggedinas)) {
        // We just logged in as someone else, update the filtering
        unset($SESSION->cal_users_shown);
        unset($SESSION->cal_courses_shown);
        $SESSION->cal_loggedinas = true;
        if (intval(get_user_preferences('calendar_persistflt', 0))) {
            calendar_set_filters_status(get_user_preferences('calendar_savedflt', 0xff));
        }
    } else {
        if (!empty($USER->id) && !isset($USER->realuser) && isset($SESSION->cal_loggedinas)) {
            // We just logged back to our real self, update again
            unset($SESSION->cal_users_shown);
            unset($SESSION->cal_courses_shown);
            unset($SESSION->cal_loggedinas);
            if (intval(get_user_preferences('calendar_persistflt', 0))) {
                calendar_set_filters_status(get_user_preferences('calendar_savedflt', 0xff));
            }
        }
    }
    if (!isset($SESSION->cal_course_referer)) {
        $SESSION->cal_course_referer = 0;
    }
    if (!isset($SESSION->cal_show_global)) {
        $SESSION->cal_show_global = true;
    }
    if (!isset($SESSION->cal_show_groups)) {
        $SESSION->cal_show_groups = true;
    }
    if (!isset($SESSION->cal_show_course)) {
        $SESSION->cal_show_course = true;
    }
    if (!isset($SESSION->cal_show_user)) {
        $SESSION->cal_show_user = true;
    }
    if (isset($course)) {
        // speedup hack for calendar related blocks
        $SESSION->cal_courses_shown = array($course->id => $course);
    } else {
        $SESSION->cal_courses_shown = calendar_get_default_courses(true);
    }
    if (empty($SESSION->cal_users_shown)) {
        // The empty() instead of !isset() here makes a whole world of difference,
        // as it will automatically change to the user's id when the user first logs
        // in. With !isset(), it would never do that.
        $SESSION->cal_users_shown = !empty($USER->id) ? $USER->id : false;
    } else {
        if (is_numeric($SESSION->cal_users_shown) && !empty($USER->id) && $SESSION->cal_users_shown != $USER->id) {
            // Follow the white rabbit, for example if a teacher logs in as a student
            $SESSION->cal_users_shown = $USER->id;
        }
    }
}
Exemplo n.º 2
0
/**
 * When logging in, this function is run to set certain preferences
 * for the current SESSION
 */
function set_login_session_preferences()
{
    global $SESSION, $CFG;
    $SESSION->justloggedin = true;
    unset($SESSION->lang);
    // Restore the calendar filters, if saved
    if (intval(get_user_preferences('calendar_persistflt', 0))) {
        include_once $CFG->dirroot . '/calendar/lib.php';
        calendar_set_filters_status(get_user_preferences('calendar_savedflt', 0xff));
    }
}