Skip to content

Commit

Permalink
MDL-46805 SCORM: AICC restricts allowed characters in the username
Browse files Browse the repository at this point in the history
  • Loading branch information
danmarsden committed Mar 30, 2015
1 parent c228f82 commit 847de86
Show file tree
Hide file tree
Showing 5 changed files with 32 additions and 3 deletions.
6 changes: 5 additions & 1 deletion mod/scorm/aicc.php
Expand Up @@ -111,7 +111,11 @@
$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') {
Expand Down
18 changes: 18 additions & 0 deletions mod/scorm/db/upgrade.php
Expand Up @@ -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;
}

Expand Down
3 changes: 3 additions & 0 deletions mod/scorm/lang/en/scorm.php
Expand Up @@ -27,6 +27,9 @@
$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';
Expand Down
6 changes: 5 additions & 1 deletion mod/scorm/settings.php
Expand Up @@ -141,7 +141,11 @@
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));

Expand Down
2 changes: 1 addition & 1 deletion mod/scorm/version.php
Expand Up @@ -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;

0 comments on commit 847de86

Please sign in to comment.