From 87486420a55834f1bc38a2b249d5f6269fce8412 Mon Sep 17 00:00:00 2001 From: moodler Date: Fri, 29 Feb 2008 08:44:23 +0000 Subject: [PATCH] Merged MDL-13676: last-minute field change to fix an Oracle problem --- admin/roles/assign.php | 2 +- admin/roles/override.php | 2 +- course/edit_form.php | 2 +- course/lib.php | 8 ++++---- group/lib.php | 4 ++-- lib/accesslib.php | 19 ++++++++++++++----- lib/db/install.xml | 5 +++-- lib/db/upgrade.php | 23 +++++++++++++++++++++++ version.php | 2 +- 9 files changed, 50 insertions(+), 17 deletions(-) diff --git a/admin/roles/assign.php b/admin/roles/assign.php index 2e46637536..fe574597ab 100755 --- a/admin/roles/assign.php +++ b/admin/roles/assign.php @@ -170,7 +170,7 @@ if ($aliasnames = get_records('role_names', 'contextid', $coursecontext->id)) { foreach ($aliasnames as $alias) { if (isset($assignableroles[$alias->roleid])) { - $assignableroles[$alias->roleid] = $alias->text.' ('.$assignableroles[$alias->roleid].')'; + $assignableroles[$alias->roleid] = $alias->name.' ('.$assignableroles[$alias->roleid].')'; } } } diff --git a/admin/roles/override.php b/admin/roles/override.php index 4a76aeb5a9..27a6c8518d 100755 --- a/admin/roles/override.php +++ b/admin/roles/override.php @@ -160,7 +160,7 @@ if ($aliasnames = get_records('role_names', 'contextid', $coursecontext->id)) { foreach ($aliasnames as $alias) { if (isset($overridableroles[$alias->roleid])) { - $overridableroles[$alias->roleid] = $alias->text.' ('.$overridableroles[$alias->roleid].')'; + $overridableroles[$alias->roleid] = $alias->name.' ('.$overridableroles[$alias->roleid].')'; } } } diff --git a/course/edit_form.php b/course/edit_form.php index ac9b4e9afe..1b1c976014 100644 --- a/course/edit_form.php +++ b/course/edit_form.php @@ -377,7 +377,7 @@ class course_edit_form extends moodleform { $mform->addElement('text', 'role_'.$role->id, $role->name); if ($coursecontext) { if ($rolename = get_record('role_names', 'roleid', $role->id, 'contextid', $coursecontext->id)) { - $mform->setDefault('role_'.$role->id, $rolename->text); + $mform->setDefault('role_'.$role->id, $rolename->name); } } } diff --git a/course/lib.php b/course/lib.php index 2ea0de8e6b..567d0b0715 100644 --- a/course/lib.php +++ b/course/lib.php @@ -1861,7 +1861,7 @@ function print_course($course) { /// Rename some of the role names if needed if (isset($context)) { - $aliasnames = get_records('role_names', 'contextid', $context->id,'','roleid,contextid,text'); + $aliasnames = get_records('role_names', 'contextid', $context->id,'','roleid,contextid,name'); } foreach ($rusers as $ra) { @@ -1869,7 +1869,7 @@ function print_course($course) { $fullname = fullname($ra->user, $canviewfullnames); if (isset($aliasnames[$ra->roleid])) { - $ra->rolename = $aliasnames[$ra->roleid]->text; + $ra->rolename = $aliasnames[$ra->roleid]->name; } $namesarray[] = format_string($ra->rolename) @@ -2925,14 +2925,14 @@ function update_course($data) { } else if ($t = get_record('role_names', 'contextid', $context->id, 'roleid', $roleid)) { - $t->text = $dvalue; + $t->name = $dvalue; update_record('role_names', $t); } else { $t->contextid = $context->id; $t->roleid = $roleid; - $t->text = $dvalue; + $t->name = $dvalue; insert_record('role_names', $t); } diff --git a/group/lib.php b/group/lib.php index 8f9d38311b..1e27f5c813 100644 --- a/group/lib.php +++ b/group/lib.php @@ -559,7 +559,7 @@ function groups_calculate_role_people($rs,$contextid) { } // Get role aliases for course in array of roleid => obj->text - if(!($aliasnames=get_records('role_names','contextid',$contextid,'','roleid,text'))) { + if(!($aliasnames=get_records('role_names','contextid',$contextid,'','roleid,name'))) { $aliasnames=array(); } @@ -592,7 +592,7 @@ function groups_calculate_role_people($rs,$contextid) { $roledata->id=$rec->roleid; $roledata->shortname=$rec->roleshortname; if(array_key_exists($rec->roleid,$aliasnames)) { - $roledata->name=$aliasnames[$rec->roleid]->text; + $roledata->name=$aliasnames[$rec->roleid]->name; } else { $roledata->name=$rec->rolename; } diff --git a/lib/accesslib.php b/lib/accesslib.php index fa9e0aa358..c62f1b6b75 100755 --- a/lib/accesslib.php +++ b/lib/accesslib.php @@ -4027,16 +4027,25 @@ function get_user_roles_in_context($userid, $context, $view=true){ $rolestring = ''; $SQL = 'select * from '.$CFG->prefix.'role_assignments ra, '.$CFG->prefix.'role r where ra.userid='.$userid.' and ra.contextid='.$context->id.' and ra.roleid = r.id'; + $rolenames = array(); if ($roles = get_records_sql($SQL)) { foreach ($roles as $userrole) { // MDL-12544, if we are in view mode and current user has no capability to view hidden assignment, skip it if ($userrole->hidden && $view && !has_capability('moodle/role:viewhiddenassigns', $context)) { continue; } + $rolenames[$userrole->roleid] = $userrole->name; $rolestring .= ''.$userrole->name.', '; } + + $rolenames = role_fix_names($rolenames, $context); // Substitute aliases + + foreach ($rolenames as $roleid => $rolename) { + $rolenames[$roleid] = ''.$rolename.''; + } + $rolestring = implode(',', $rolenames); } - return rtrim($rolestring, ', '); + return $rolestring; } @@ -4199,7 +4208,7 @@ function get_assignable_roles ($context, $field="name") { // apply context role aliases if name requested if ($field == 'name') { - $f = "COALESCE(rn.text, r.name) AS name"; + $f = "COALESCE(rn.name, r.name) AS name"; } else { $f = "r.$field"; } @@ -4257,7 +4266,7 @@ function get_assignable_roles_for_switchrole ($context, $field="name") { // apply context role aliases if name requested if ($field == 'name') { - $f = "COALESCE(rn.text, r.name) AS name"; + $f = "COALESCE(rn.name, r.name) AS name"; } else { $f = "r.$field"; } @@ -5284,7 +5293,7 @@ function user_has_role_assignment($userid, $roleid, $contextid=0) { */ function role_get_name($role, $coursecontext) { if ($r = get_record('role_names','roleid', $role->id,'contextid', $coursecontext->id)) { - return strip_tags(format_string($r->text)); + return strip_tags(format_string($r->name)); } else { return strip_tags(format_string($role->name)); } @@ -5300,7 +5309,7 @@ function role_fix_names($roleoptions, $coursecontext) { if ($aliasnames = get_records('role_names', 'contextid', $coursecontext->id)) { foreach ($aliasnames as $alias) { if (isset($roleoptions[$alias->roleid])) { - $roleoptions[$alias->roleid] = $alias->text; + $roleoptions[$alias->roleid] = $alias->name; } } } diff --git a/lib/db/install.xml b/lib/db/install.xml index d2ec5ebc2f..24b58eec8f 100644 --- a/lib/db/install.xml +++ b/lib/db/install.xml @@ -1,5 +1,5 @@ - @@ -859,7 +859,8 @@ - + + diff --git a/lib/db/upgrade.php b/lib/db/upgrade.php index f97ef022c7..9c377d8688 100644 --- a/lib/db/upgrade.php +++ b/lib/db/upgrade.php @@ -2921,6 +2921,29 @@ function xmldb_main_upgrade($oldversion=0) { upgrade_main_savepoint($result, 2007101508.07); } + if ($result && $oldversion < 2007101508.08) { // MDL-13676 + + /// Define field name to be added to role_names + $table = new XMLDBTable('role_names'); + $field = new XMLDBField('name'); + $field->setAttributes(XMLDB_TYPE_CHAR, '255', null, XMLDB_NOTNULL, null, null, null, null, 'text'); + + /// Launch add field name + $result = $result && add_field($table, $field); + + /// Copy data from old field to new field + $result = $result && execute_sql('UPDATE '.$CFG->prefix.'role_names SET name = text'); + + /// Define field text to be dropped from role_names + $table = new XMLDBTable('role_names'); + $field = new XMLDBField('text'); + + /// Launch drop field text + $result = $result && drop_field($table, $field); + + /// Main savepoint reached + upgrade_main_savepoint($result, 2007101508.08); + } return $result; diff --git a/version.php b/version.php index a50787ef11..33d6881f99 100644 --- a/version.php +++ b/version.php @@ -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 = 2007101508.07; // YYYYMMDD = date of the 1.9 branch (don't change) + $version = 2007101508.08; // YYYYMMDD = date of the 1.9 branch (don't change) // X = release number 1.9.[0,1,2,3...] // Y.YY = micro-increments between releases -- 2.39.5