moodle/backup/backuplib.php:
...
615 ///Roles stuff goes in here
616
617 fwrite ($bf, start_tag('ROLES', 1, true));
618 $roles = backup_fetch_roles($preferences);
619
620 $sitecontext = get_context_instance(CONTEXT_SYSTEM);
621 $coursecontext = get_context_instance(CONTEXT_COURSE, $preferences->backup_course);
622
623 foreach ($roles as $role) {
624 fwrite ($bf,start_tag('ROLE',2,true));
625 fwrite ($bf,full_tag('ID', 3, false, $role->id));
626 fwrite ($bf,full_tag('NAME',3,false,$role->name));
627 fwrite ($bf,full_tag('SHORTNAME',3,false,$role->shortname));
628 /// Calculate $role name in course
629 $nameincourse = role_get_name($role, $coursecontext);
630 if ($nameincourse != $role->name) {
631 fwrite ($bf,full_tag('NAMEINCOURSE', 3, false, $nameincourse));
632 }
633 // find and write all default capabilities
634 fwrite ($bf,start_tag('CAPABILITIES',3,true));
635 // pull out all default (site context) capabilities
636 if ($capabilities = role_context_capabilities($role->id, $sitecontext)) {
637 foreach ($capabilities as $capability=>$value) {
638 fwrite ($bf,start_tag('CAPABILITY',4,true));
639 fwrite ($bf,full_tag('NAME', 5, false, $capability));
640 fwrite ($bf,full_tag('PERMISSION', 5, false, $value));
641 // use this to pull out the other info (timemodified and modifierid)
642
643 $cap = get_record_sql("SELECT *
644 FROM {$CFG->prefix}role_capabilities
645 WHERE capability = '$capability'
646 AND contextid = $sitecontext->id
647 AND roleid = $role->id");
648 fwrite ($bf, full_tag("TIMEMODIFIED", 5, false, $cap->timemodified));
649 fwrite ($bf, full_tag("MODIFIERID", 5, false, $cap->modifierid));
650 fwrite ($bf,end_tag('CAPABILITY',4,true));
651 }
652 }
653 fwrite ($bf,end_tag('CAPABILITIES',3,true));
654 fwrite ($bf,end_tag('ROLE',2,true));
655 }
656 fwrite ($bf,end_tag('ROLES', 1, true));
...
Hello, Wen
you have mentioned two proposed solutions, but where are they?
I work on a project in a Federal University of Santa Catarina in Brazil (http://moodle.ufsc.br), and we are really interested in help you develop this feature.