Upgrading table to rename the context->aggregatelevel field which was

really bugging me.   Code should be a little bit more readable now.

Apologies to those with non-core code already using this field.
This commit is contained in:
moodler 2006-09-22 06:19:32 +00:00
parent b988fe5f94
commit aad2ba95d1
12 changed files with 83 additions and 71 deletions

View File

@ -28,7 +28,7 @@
$inmeta = 0;
if ($context->aggregatelevel == CONTEXT_COURSE) {
if ($context->contextlevel == CONTEXT_COURSE) {
$courseid = $context->instanceid;
if ($course = get_record('course', 'id', $courseid)) {
$inmeta = $course->metacourse;
@ -79,7 +79,7 @@
/// Print the header and tabs
if ($context->aggregatelevel == CONTEXT_USER) {
if ($context->contextlevel == CONTEXT_USER) {
/// course header
if ($courseid!= SITEID) {
print_header("$fullname", "$fullname",

View File

@ -49,7 +49,7 @@
/// Print the header and tabs
if ($context->aggregatelevel == CONTEXT_USER) {
if ($context->contextlevel == CONTEXT_USER) {
/// course header
if ($course->id != SITEID) {

View File

@ -3,7 +3,7 @@
// Handles headers and tabs for the roles control at any level apart from SYSTEM level
if ($currenttab != 'update') {
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM:
$stradministration = get_string('administration');
@ -104,9 +104,9 @@ if ($currenttab != 'update') {
}
if ($context->aggregatelevel != CONTEXT_SYSTEM) { // Print tabs for anything except SYSTEM context
if ($context->contextlevel != CONTEXT_SYSTEM) { // Print tabs for anything except SYSTEM context
if ($context->aggregatelevel == CONTEXT_MODULE) { // only show update button if module?
if ($context->contextlevel == CONTEXT_MODULE) { // only show update button if module?
$toprow[] = new tabobject('update', $CFG->wwwroot.'/course/mod.php?update='.
$context->instanceid.'&return=true&sesskey='.sesskey(), get_string('update'));

View File

@ -234,7 +234,7 @@ function require_capability($capability, $context=NULL, $userid=NULL, $doanythin
/// If the current user is not logged in, then make sure they are
if (empty($userid) and empty($USER->id)) {
if ($context && ($context->aggregatelevel == CONTEXT_COURSE)) {
if ($context && ($context->contextlevel == CONTEXT_COURSE)) {
require_login($context->instanceid);
} else {
require_login();
@ -310,7 +310,7 @@ function has_capability($capability, $context=NULL, $userid=NULL, $doanything=tr
}
}
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_COURSECAT:
// Check parent cats.
@ -419,14 +419,14 @@ function capability_search($capability, $context, $capabilities) {
global $USER, $CFG;
if (isset($capabilities[$context->id][$capability])) {
debugging("Found $capability in context $context->id at level $context->aggregatelevel: ".$capabilities[$context->id][$capability], E_ALL);
debugging("Found $capability in context $context->id at level $context->contextlevel: ".$capabilities[$context->id][$capability], E_ALL);
return ($capabilities[$context->id][$capability]);
}
/* Then, we check the cache recursively */
$permission = 0;
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM: // by now it's a definite an inherit
$permission = 0;
@ -481,7 +481,7 @@ function capability_search($capability, $context, $capabilities) {
error ('This is an unknown context!');
return false;
}
debugging("Found $capability recursively from context $context->id at level $context->aggregatelevel: $permission", E_ALL);
debugging("Found $capability recursively from context $context->id at level $context->contextlevel: $permission", E_ALL);
return $permission;
}
@ -569,7 +569,7 @@ function load_user_capability($capability='', $context ='', $userid='') {
$siteinstance = get_context_instance(CONTEXT_SYSTEM, SITEID);
$SQL = " SELECT rc.capability, c1.id, (c1.aggregatelevel * 100) AS aggrlevel,
$SQL = " SELECT rc.capability, c1.id, (c1.contextlevel * 100) AS aggrlevel,
SUM(rc.permission) AS sum
FROM
{$CFG->prefix}role_assignments ra,
@ -584,12 +584,12 @@ function load_user_capability($capability='', $context ='', $userid='') {
$capsearch
$timesql
GROUP BY
rc.capability, (c1.aggregatelevel * 100), c1.id
rc.capability, (c1.contextlevel * 100), c1.id
HAVING
SUM(rc.permission) != 0
UNION
SELECT rc.capability, c1.id, (c1.aggregatelevel * 100 + c2.aggregatelevel) AS aggrlevel,
SELECT rc.capability, c1.id, (c1.contextlevel * 100 + c2.contextlevel) AS aggrlevel,
SUM(rc.permission) AS sum
FROM
{$CFG->prefix}role_assignments ra,
@ -608,7 +608,7 @@ function load_user_capability($capability='', $context ='', $userid='') {
$timesql
GROUP BY
rc.capability, (c1.aggregatelevel * 100 + c2.aggregatelevel), c1.id
rc.capability, (c1.contextlevel * 100 + c2.contextlevel), c1.id
HAVING
SUM(rc.permission) != 0
ORDER BY
@ -627,7 +627,7 @@ function load_user_capability($capability='', $context ='', $userid='') {
foreach ($array as $key=>$val) {
if ($key == 'aggrlevel') {
$temprecord->aggregatelevel = $val;
$temprecord->contextlevel = $val;
} else {
$temprecord->{$key} = $val;
}
@ -638,31 +638,31 @@ function load_user_capability($capability='', $context ='', $userid='') {
}
/* so up to this point we should have somethign like this
* $capabilities[1] ->aggregatelevel = 1000
* $capabilities[1] ->contextlevel = 1000
->module = SITEID
->capability = do_anything
->id = 1 (id is the context id)
->sum = 0
* $capabilities[2] ->aggregatelevel = 1000
* $capabilities[2] ->contextlevel = 1000
->module = SITEID
->capability = post_messages
->id = 1
->sum = -9000
* $capabilittes[3] ->aggregatelevel = 3000
* $capabilittes[3] ->contextlevel = 3000
->module = course
->capability = view_course_activities
->id = 25
->sum = 1
* $capabilittes[4] ->aggregatelevel = 3000
* $capabilittes[4] ->contextlevel = 3000
->module = course
->capability = view_course_activities
->id = 26
->sum = 0 (this is another course)
* $capabilities[5] ->aggregatelevel = 3050
* $capabilities[5] ->contextlevel = 3050
->module = course
->capability = view_course_activities
->id = 25 (override in course 25)
@ -792,7 +792,7 @@ function capability_prohibits($capability, $context, $sum='', $array='') {
return true;
}
}
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM:
// By now it's a definite an inherit.
@ -1092,10 +1092,10 @@ function islegacy($capabilityname) {
* @param $level
* @param $instanceid
*/
function create_context($aggregatelevel, $instanceid) {
if (!get_record('context','aggregatelevel',$aggregatelevel,'instanceid',$instanceid)) {
function create_context($contextlevel, $instanceid) {
if (!get_record('context','contextlevel',$contextlevel,'instanceid',$instanceid)) {
$context = new object;
$context->aggregatelevel = $aggregatelevel;
$context->contextlevel = $contextlevel;
$context->instanceid = $instanceid;
return insert_record('context',$context);
}
@ -1108,12 +1108,12 @@ function create_context($aggregatelevel, $instanceid) {
* @param $level
* @param $instance
*/
function get_context_instance($aggregatelevel=NULL, $instance=SITEID) {
function get_context_instance($contextlevel=NULL, $instance=SITEID) {
global $context_cache, $context_cache_id, $CONTEXT;
/// If no level is supplied then return the current global context if there is one
if (empty($aggregatelevel)) {
if (empty($contextlevel)) {
if (empty($CONTEXT)) {
debugging("Error: get_context_instance() called without a context");
} else {
@ -1122,19 +1122,19 @@ function get_context_instance($aggregatelevel=NULL, $instance=SITEID) {
}
/// Check the cache
if (isset($context_cache[$aggregatelevel][$instance])) { // Already cached
return $context_cache[$aggregatelevel][$instance];
if (isset($context_cache[$contextlevel][$instance])) { // Already cached
return $context_cache[$contextlevel][$instance];
}
/// Get it from the database, or create it
if (!$context = get_record('context', 'aggregatelevel', $aggregatelevel, 'instanceid', $instance)) {
create_context($aggregatelevel, $instance);
$context = get_record('context', 'aggregatelevel', $aggregatelevel, 'instanceid', $instance);
if (!$context = get_record('context', 'contextlevel', $contextlevel, 'instanceid', $instance)) {
create_context($contextlevel, $instance);
$context = get_record('context', 'contextlevel', $contextlevel, 'instanceid', $instance);
}
/// Only add to cache if context isn't empty.
if (!empty($context)) {
$context_cache[$aggregatelevel][$instance] = $context; // Cache it for later
$context_cache[$contextlevel][$instance] = $context; // Cache it for later
$context_cache_id[$context->id] = $context; // Cache it for later
}
@ -1155,7 +1155,7 @@ function get_context_instance_by_id($id) {
}
if ($context = get_record('context', 'id', $id)) { // Update the cache and return
$context_cache[$context->aggregatelevel][$context->instanceid] = $context;
$context_cache[$context->contextlevel][$context->instanceid] = $context;
$context_cache_id[$context->id] = $context;
return $context;
}
@ -1444,7 +1444,7 @@ function role_assign($roleid, $userid, $groupid, $contextid, $timestart=0, $time
}
/// now handle metacourse role assignments if in course context
if ($success and $context->aggregatelevel == CONTEXT_COURSE) {
if ($success and $context->contextlevel == CONTEXT_COURSE) {
if ($parents = get_records('course_meta', 'child_course', $context->instanceid)) {
foreach ($parents as $parent) {
sync_metacourse($parent->parent_course);
@ -1504,7 +1504,7 @@ function role_unassign($roleid=0, $userid=0, $groupid=0, $contextid=0) {
}
/// now handle metacourse role unassigment and removing from goups if in course context
if (!empty($context) and $context->aggregatelevel == CONTEXT_COURSE) {
if (!empty($context) and $context->contextlevel == CONTEXT_COURSE) {
//remove from groups when user has no role
$roles = get_user_roles($context, $ra->userid, true);
if (empty($roles)) {
@ -1573,7 +1573,7 @@ function role_add_lastaccess_entries($userid, $context) {
global $USER, $CFG;
if (empty($context->aggregatelevel)) {
if (empty($context->contextlevel)) {
return false;
}
@ -1581,7 +1581,7 @@ function role_add_lastaccess_entries($userid, $context) {
$lastaccess->userid = $userid;
$lastaccess->timeaccess = 0;
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM: // For the whole site
if ($courses = get_record('course')) {
@ -1816,7 +1816,7 @@ function capabilities_cleanup($component, $newcapdef=NULL) {
function print_context_name($context) {
$name = '';
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM: // by now it's a definite an inherit
$name = get_string('site');
@ -1903,7 +1903,7 @@ function fetch_context_capabilities($context) {
$sort = 'ORDER BY contextlevel,component,id'; // To group them sensibly for display
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM: // all
$SQL = "select * from {$CFG->prefix}capabilities";
@ -1953,7 +1953,7 @@ function fetch_context_capabilities($context) {
$records = array_merge($records, $contextindependentcaps);
// special sorting of core system capabiltites and enrollments
if ($context->aggregatelevel == CONTEXT_SYSTEM) {
if ($context->contextlevel == CONTEXT_SYSTEM) {
$first = array();
foreach ($records as $key=>$record) {
if (preg_match('|^moodle/|', $record->name) and $record->contextlevel == CONTEXT_SYSTEM) {
@ -2022,7 +2022,7 @@ function role_context_capabilities($roleid, $context, $cap='') {
WHERE rc.contextid in $contexts
AND rc.roleid = $roleid
AND rc.contextid = c.id $search
ORDER BY c.aggregatelevel DESC,
ORDER BY c.contextlevel DESC,
rc.capability DESC";
$capabilities = array();
@ -2048,7 +2048,7 @@ function role_context_capabilities($roleid, $context, $cap='') {
*/
function get_parent_contexts($context) {
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM: // no parent
return array();
@ -2390,7 +2390,7 @@ function get_user_roles($context, $userid=0, $checkparentcontexts=true) {
' AND ra.roleid = r.id
AND ra.contextid = c.id
AND '.$contexts.
' ORDER BY c.aggregatelevel DESC');
' ORDER BY c.contextlevel DESC');
}
/**
@ -2537,7 +2537,7 @@ function get_users_by_capability($context, $capability, $fields='', $sort='',
$sortby = $sort ? " ORDER BY $sort " : '';
/// If context is a course, then construct sql for ul
if ($context->aggregatelevel == CONTEXT_COURSE) {
if ($context->contextlevel == CONTEXT_COURSE) {
$courseid = $context->instanceid;
$coursesql = "AND (ul.courseid = $courseid OR ul.courseid IS NULL)";
} else {

View File

@ -929,16 +929,16 @@
</TABLE>
<TABLE NAME="context" COMMENT="one of these must be set" PREVIOUS="role" NEXT="capabilities">
<FIELDS>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="aggregatelevel"/>
<FIELD NAME="aggregatelevel" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="instanceid"/>
<FIELD NAME="instanceid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="aggregatelevel"/>
<FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="contextlevel"/>
<FIELD NAME="contextlevel" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="instanceid"/>
<FIELD NAME="instanceid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="contextlevel"/>
</FIELDS>
<KEYS>
<KEY NAME="primary" TYPE="primary" FIELDS="id" COMMENT="Primary key for context"/>
</KEYS>
<INDEXES>
<INDEX NAME="aggregatelevel-instanceid" UNIQUE="true" FIELDS="aggregatelevel, instanceid" NEXT="instanceid"/>
<INDEX NAME="instanceid" UNIQUE="false" FIELDS="instanceid" PREVIOUS="aggregatelevel-instanceid"/>
<INDEX NAME="contextlevel-instanceid" UNIQUE="true" FIELDS="contextlevel, instanceid" NEXT="instanceid"/>
<INDEX NAME="instanceid" UNIQUE="false" FIELDS="instanceid" PREVIOUS="contextlevel-instanceid"/>
</INDEXES>
</TABLE>
<TABLE NAME="capabilities" COMMENT="this defines all capabilities" PREVIOUS="context" NEXT="role_allow_assign">
@ -1107,4 +1107,4 @@
</SENTENCES>
</STATEMENT>
</STATEMENTS>
</XMLDB>
</XMLDB>

View File

@ -2285,6 +2285,12 @@ function main_upgrade($oldversion=0) {
}
if ($oldversion < 2006092200) {
execute_sql("ALTER TABLE `{$CFG->prefix}context` DROP INDEX `aggregatelevel-instanceid`;",false);
table_column('context', 'aggregatelevel', 'contextlevel', 'int', '10', 'unsigned', '0', 'not null', '');
execute_sql("ALTER TABLE `{$CFG->prefix}context` ADD UNIQUE INDEX `contextlevel-instanceid` (`contextlevel`, `instanceid`)",false);
}
return $result;
}

View File

@ -901,10 +901,10 @@ CREATE TABLE prefix_role (
CREATE TABLE prefix_context (
`id` int(10) unsigned NOT NULL auto_increment,
`aggregatelevel` int(10) unsigned NOT NULL default '0',
`contextlevel` int(10) unsigned NOT NULL default '0',
`instanceid` int(10) unsigned NOT NULL default '0',
KEY `instanceid` (`instanceid`),
UNIQUE KEY `aggregatelevel-instanceid` (`aggregatelevel`, `instanceid`),
UNIQUE KEY `contextlevel-instanceid` (`contextlevel`, `instanceid`),
PRIMARY KEY (`id`)
) TYPE=MyISAM COMMENT ='one of these must be set';

View File

@ -1884,6 +1884,12 @@ function main_upgrade($oldversion=0) {
}
if ($oldversion < 2006092200) {
execute_sql("ALTER TABLE `{$CFG->prefix}context` DROP INDEX `aggregatelevel-instanceid`;",false);
table_column('context', 'aggregatelevel', 'contextlevel', 'int', '10', 'unsigned', '0', 'not null', '');
execute_sql("ALTER TABLE `{$CFG->prefix}context` ADD UNIQUE INDEX `contextlevel-instanceid` (`contextlevel`, `instanceid`)",false);
}
return $result;
}

View File

@ -674,11 +674,11 @@ CREATE INDEX prefix_role_sortorder_idx ON prefix_role (sortorder);
CREATE TABLE prefix_context (
id SERIAL PRIMARY KEY,
aggregatelevel integer NOT NULL default 0,
contextlevel integer NOT NULL default 0,
instanceid integer NOT NULL default 0
);
CREATE INDEX prefix_context_instanceid_idx ON prefix_context (instanceid);
CREATE UNIQUE INDEX prefix_context_aggregatelevelinstanceid_idx ON prefix_context (aggregatelevel, instanceid);
CREATE UNIQUE INDEX prefix_context_contextlevelinstanceid_idx ON prefix_context (contextlevel, instanceid);
CREATE TABLE prefix_role_assignments (
id SERIAL PRIMARY KEY,

View File

@ -151,13 +151,13 @@ function stats_cron_daily () {
FROM '.$CFG->prefix.'role_assignments ra
INNER JOIN '.$CFG->prefix.'role r_outmost ON (ra.roleid=r_outmost.id)
INNER JOIN '.$CFG->prefix.'context c ON ra.contextid = c.id
WHERE roleid='.$role->id.' AND c.instanceid='.$course->id.' AND c.aggregatelevel = '.CONTEXT_COURSE.'
WHERE roleid='.$role->id.' AND c.instanceid='.$course->id.' AND c.contextlevel = '.CONTEXT_COURSE.'
AND NOT EXISTS
(SELECT 1
FROM '.$CFG->prefix.'role_assignments
INNER JOIN '.$CFG->prefix.'role ON ('.$CFG->prefix.'role.id=roleid)
INNER JOIN '.$CFG->prefix.'context ON contextid = c.id
WHERE instanceid='.$course->id.' AND userid=ra.userid AND c.aggregatelevel = '.CONTEXT_COURSE.'
WHERE instanceid='.$course->id.' AND userid=ra.userid AND c.contextlevel = '.CONTEXT_COURSE.'
AND '.$CFG->prefix.'role.sortorder < r_outmost.sortorder
)';
@ -168,13 +168,13 @@ function stats_cron_daily () {
INNER JOIN '.$CFG->prefix.'role r_outmost ON (ra.roleid=r_outmost.id)
INNER JOIN '.$CFG->prefix.'context c ON ra.contextid = c.id
INNER JOIN '.$CFG->prefix.'log l ON (ra.userid=l.userid AND course=instanceid)
WHERE roleid='.$role->id.' AND instanceid='.$course->id.' AND '.$timesql.' AND c.aggregatelevel = '.CONTEXT_COURSE.'
WHERE roleid='.$role->id.' AND instanceid='.$course->id.' AND '.$timesql.' AND c.contextlevel = '.CONTEXT_COURSE.'
AND NOT EXISTS
(SELECT 1
FROM '.$CFG->prefix.'role_assignments
INNER JOIN '.$CFG->prefix.'role ON (mdl_role.id=roleid)
INNER JOIN '.$CFG->prefix.'context c ON contextid = c.id
WHERE instanceid='.$course->id.' AND userid=ra.userid AND c.aggregatelevel = '.CONTEXT_COURSE.'
WHERE instanceid='.$course->id.' AND userid=ra.userid AND c.contextlevel = '.CONTEXT_COURSE.'
AND '.$CFG->prefix.'role.sortorder < r_outmost.sortorder
)';
@ -195,14 +195,14 @@ function stats_cron_daily () {
INNER JOIN '.$CFG->prefix.'role r_outmost ON (ra.roleid=r_outmost.id)
INNER JOIN '.$CFG->prefix.'context c ON ra.contextid = c.id
INNER JOIN '.$CFG->prefix.'log l ON (ra.userid=l.userid AND course=instanceid)
WHERE roleid='.$role->id.' AND instanceid='.$course->id.' AND c.aggregatelevel = '.CONTEXT_COURSE.'
WHERE roleid='.$role->id.' AND instanceid='.$course->id.' AND c.contextlevel = '.CONTEXT_COURSE.'
AND '.$timesql.' '.stats_get_action_sql_in('view').'
AND NOT EXISTS
(SELECT 1
FROM '.$CFG->prefix.'role_assignments
INNER JOIN '.$CFG->prefix.'role ON (mdl_role.id=roleid)
INNER JOIN '.$CFG->prefix.'context c ON contextid = c.id
WHERE instanceid='.$course->id.' AND userid=ra.userid AND c.aggregatelevel = '.CONTEXT_COURSE.'
WHERE instanceid='.$course->id.' AND userid=ra.userid AND c.contextlevel = '.CONTEXT_COURSE.'
AND '.$CFG->prefix.'role.sortorder < r_outmost.sortorder
)';
@ -212,14 +212,14 @@ function stats_cron_daily () {
INNER JOIN '.$CFG->prefix.'role r_outmost ON (ra.roleid=r_outmost.id)
INNER JOIN '.$CFG->prefix.'context c ON ra.contextid = c.id
INNER JOIN '.$CFG->prefix.'log l ON (ra.userid=l.userid AND course=instanceid)
WHERE roleid='.$role->id.' AND instanceid='.$course->id.' AND c.aggregatelevel = '.CONTEXT_COURSE.'
WHERE roleid='.$role->id.' AND instanceid='.$course->id.' AND c.contextlevel = '.CONTEXT_COURSE.'
AND '.$timesql.' '.stats_get_action_sql_in('post').'
AND NOT EXISTS
(SELECT 1
FROM '.$CFG->prefix.'role_assignments
INNER JOIN '.$CFG->prefix.'role ON (mdl_role.id=roleid)
INNER JOIN '.$CFG->prefix.'context c ON contextid = c.id
WHERE instanceid='.$course->id.' AND userid=ra.userid AND c.aggregatelevel = '.CONTEXT_COURSE.'
WHERE instanceid='.$course->id.' AND userid=ra.userid AND c.contextlevel = '.CONTEXT_COURSE.'
AND '.$CFG->prefix.'role.sortorder < r_outmost.sortorder
)';
$stat->stat2 = count_records_sql($sql);
@ -752,12 +752,12 @@ function stats_get_course_users($course,$timesql) {
$sql = 'SELECT active_course_users.userid,
(SELECT roleid FROM '.$CFG->prefix.'role_assignments INNER JOIN '.$CFG->prefix.'role a_u_r ON roleid=a_u_r.id
INNER JOIN '.$CFG->prefix.'context c ON contextid = c.id
WHERE instanceid='.$course->id.' AND c.aggregatelevel = '.CONTEXT_COURSE.' AND userid=active_course_users.userid
WHERE instanceid='.$course->id.' AND c.contextlevel = '.CONTEXT_COURSE.' AND userid=active_course_users.userid
AND NOT EXISTS (SELECT 1 FROM '.$CFG->prefix.'role_assignments o_r_a
INNER JOIN '.$CFG->prefix.'role o_r ON o_r_a.roleid = o_r.id
INNER JOIN '.$CFG->prefix.'context c on contextid = c.id
WHERE o_r.sortorder < a_u_r.sortorder AND c.instanceid = '.$course->id.'
AND c.aggregatelevel = '.CONTEXT_COURSE.' AND o_r_a.userid = active_course_users.userid
AND c.contextlevel = '.CONTEXT_COURSE.' AND o_r_a.userid = active_course_users.userid
)
) AS primaryrole
FROM (SELECT DISTINCT userid FROM '.$CFG->prefix.'log l WHERE course='.$course->id.' AND '.$timesql.') active_course_users';

View File

@ -3739,11 +3739,11 @@ function forum_role_unassign($userid, $context) {
function forum_add_user_default_subscriptions($userid, $context) {
/// Add subscriptions for new users
if (empty($context->aggregatelevel)) {
if (empty($context->contextlevel)) {
return false;
}
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM: // For the whole site
if ($courses = get_records('course')) {
@ -3808,11 +3808,11 @@ function forum_add_user_default_subscriptions($userid, $context) {
function forum_remove_user_subscriptions($userid, $context) {
/// Remove subscriptions for a user in a context
if (empty($context->aggregatelevel)) {
if (empty($context->contextlevel)) {
return false;
}
switch ($context->aggregatelevel) {
switch ($context->contextlevel) {
case CONTEXT_SYSTEM: // For the whole site
if ($courses = get_records('course')) {
@ -4669,4 +4669,4 @@ function forum_convert_to_roles($forum, $forummodid, $teacherroles=array(),
?>
?>

View File

@ -6,7 +6,7 @@
// This is compared against the values stored in the database to determine
// whether upgrades should be performed (see lib/db/*.php)
$version = 2006092100; // YYYYMMDD = date
$version = 2006092200; // YYYYMMDD = date
// XY = increments within a single day
$release = '1.7 dev'; // Human-friendly version name