From: moodler <moodler>
Date: Fri, 29 Feb 2008 08:44:23 +0000 (+0000)
Subject: Merged MDL-13676:  last-minute field change to fix an Oracle problem
X-Git-Url: http://git.mjollnir.org/gw?a=commitdiff_plain;h=87486420a55834f1bc38a2b249d5f6269fce8412;p=moodle.git

Merged MDL-13676:  last-minute field change to fix an Oracle problem
---

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 .= '<a href="'.$CFG->wwwroot.'/user/index.php?contextid='.$userrole->contextid.'&amp;roleid='.$userrole->roleid.'">'.$userrole->name.'</a>, ';
         }
+
+        $rolenames = role_fix_names($rolenames, $context);   // Substitute aliases
+
+        foreach ($rolenames as $roleid => $rolename) {
+            $rolenames[$roleid] = '<a href="'.$CFG->wwwroot.'/user/index.php?contextid='.$context->id.'&amp;roleid='.$roleid.'">'.$rolename.'</a>';
+        }
+        $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 @@
 <?xml version="1.0" encoding="UTF-8" ?>
-<XMLDB PATH="lib/db" VERSION="20080227" COMMENT="XMLDB file for core Moodle tables"
+<XMLDB PATH="lib/db" VERSION="20080229" COMMENT="XMLDB file for core Moodle tables"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
     xsi:noNamespaceSchemaLocation="../../lib/xmldb/xmldb.xsd"
 >
@@ -859,7 +859,8 @@
         <FIELD NAME="id" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" SEQUENCE="true" ENUM="false" NEXT="roleid"/>
         <FIELD NAME="roleid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="id" NEXT="contextid"/>
         <FIELD NAME="contextid" TYPE="int" LENGTH="10" NOTNULL="true" UNSIGNED="true" DEFAULT="0" SEQUENCE="false" ENUM="false" PREVIOUS="roleid" NEXT="text"/>
-        <FIELD NAME="text" TYPE="text" LENGTH="small" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="contextid"/>
+        <FIELD NAME="text" TYPE="text" LENGTH="small" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="contextid" NEXT="name"/>
+        <FIELD NAME="name" TYPE="char" LENGTH="255" NOTNULL="true" SEQUENCE="false" ENUM="false" PREVIOUS="text"/>
       </FIELDS>
       <KEYS>
         <KEY NAME="primary" TYPE="primary" FIELDS="id" NEXT="roleid"/>
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