MDL-46805 SCORM: AICC restricts allowed characters in the username

This commit is contained in:
Dan Marsden
2015-03-31 10:41:27 +13:00
parent c228f82bbb
commit 847de86adf
5 changed files with 32 additions and 3 deletions
+5 -1
View File
@@ -111,7 +111,11 @@ if (!empty($command)) {
$userdata->status = '';
$userdata->score_raw = '';
}
$userdata->student_id = $aiccuser->username;
if (!empty($cfg_scorm->aiccuserid)) {
$userdata->student_id = $aiccuser->id;
} else {
$userdata->student_id = $aiccuser->username;
}
$userdata->student_name = $aiccuser->lastname .', '. $aiccuser->firstname;
$userdata->mode = $mode;
if ($userdata->mode == 'normal') {
+18
View File
@@ -279,6 +279,24 @@ function xmldb_scorm_upgrade($oldversion) {
// Moodle v2.7.0 release upgrade line.
// Put any upgrade step following this.
if ($oldversion < 2014051201) {
// Check to see if this site has any AICC packages - if so set the aiccuserid to pass the username
// so that the data remains consistent with existing packages.
$alreadyset = $DB->record_exists('config_plugins', array('plugin' => 'scorm', 'name' => 'aiccuserid'));
if (!$alreadyset) {
$hasaicc = $DB->record_exists('scorm', array('version' => 'AICC'));
if ($hasaicc) {
set_config('aiccuserid', 0, 'scorm');
} else {
// We set the config value to hide this from upgrades as most users will not know what AICC is anyway.
set_config('aiccuserid', 1, 'scorm');
}
}
// Scorm savepoint reached.
upgrade_mod_savepoint(true, 2014051201, 'scorm');
}
return true;
}
+3
View File
@@ -27,6 +27,9 @@ $string['aicchacptimeout'] = 'AICC HACP timeout';
$string['aicchacptimeout_desc'] = 'Length of time in minutes that an external AICC HACP session can remain open';
$string['aicchacpkeepsessiondata'] = 'AICC HACP session data';
$string['aicchacpkeepsessiondata_desc'] = 'Length of time in days to keep the external AICC HACP session data (a high setting will fill up the table with old data but may be useful when debugging)';
$string['aiccuserid'] = 'AICC pass numeric user id';
$string['aiccuserid_desc'] = 'The AICC standard for usernames is very restrictive compared with Moodle so we pass the user->id instead. If disabled this passes the moodle username to the AICC package.
The AICC standard allows for alpha-numeric characters with the two additional characters dash(-) and the underscore(_). Periods, spaces and the @ symbol are not permitted.';
$string['activation'] = 'Activation';
$string['activityloading'] = 'You will be automatically redirected to the activity in';
$string['activityoverview'] = 'You have SCORM packages that need attention';
+5 -1
View File
@@ -141,7 +141,11 @@ if ($ADMIN->fulltree) {
get_string('aicchacpkeepsessiondata', 'scorm'), get_string('aicchacpkeepsessiondata_desc', 'scorm'),
1, PARAM_INT));
$settings->add(new admin_setting_configcheckbox('scorm/forcejavascript', get_string('forcejavascript', 'scorm'), get_string('forcejavascript_desc', 'scorm'), 1));
$settings->add(new admin_setting_configcheckbox('scorm/aiccuserid', get_string('aiccuserid', 'scorm'),
get_string('aiccuserid_desc', 'scorm'), 1));
$settings->add(new admin_setting_configcheckbox('scorm/forcejavascript', get_string('forcejavascript', 'scorm'),
get_string('forcejavascript_desc', 'scorm'), 1));
$settings->add(new admin_setting_configcheckbox('scorm/allowapidebug', get_string('allowapidebug', 'scorm'), '', 0));
+1 -1
View File
@@ -24,7 +24,7 @@
defined('MOODLE_INTERNAL') || die();
$plugin->version = 2014051200; // The current module version (Date: YYYYMMDDXX).
$plugin->version = 2014051201; // The current module version (Date: YYYYMMDDXX).
$plugin->requires = 2014050800; // Requires this Moodle version.
$plugin->component = 'mod_scorm'; // Full name of the plugin (used for diagnostics).
$plugin->cron = 300;