MDL-69467 core_h5p: User uniqueness by id instead of email

This commit is contained in:
Sebastian Berm
2021-12-10 14:36:45 +01:00
parent 51149a78cc
commit e0753cb080
2 changed files with 46 additions and 1 deletions
+5 -1
View File
@@ -331,7 +331,11 @@ class helper {
$core = $factory->get_core();
// When there is a logged in user, her information will be passed to the player. It will be used for tracking.
$usersettings = isloggedin() ? ['name' => $USER->username, 'mail' => $USER->email] : [];
$usersettings = [];
if (isloggedin()) {
$usersettings['name'] = $USER->username;
$usersettings['id'] = $USER->id;
}
$settings = array(
'baseUrl' => $basepath,
'url' => "{$basepath}pluginfile.php/{$systemcontext->instanceid}/core_h5p",
+41
View File
@@ -47,3 +47,44 @@ H5P.getMoodleComponent = function () {
}
return undefined;
};
/**
* Set the actor. (Moved to overrides due to MDL-69467)
*/
H5P.XAPIEvent.prototype.setActor = function () {
if (H5PIntegration.user !== undefined) {
this.data.statement.actor = {
'name': H5PIntegration.user.name,
'objectType': 'Agent'
};
if (H5PIntegration.user.id !== undefined) {
this.data.statement.actor.account = {
'name': H5PIntegration.user.id,
'homePage': H5PIntegration.siteUrl
}
} else if (H5PIntegration.user.mail !== undefined) {
this.data.statement.actor.mbox = 'mailto:' + H5PIntegration.user.mail;
}
} else {
var uuid;
try {
if (localStorage.H5PUserUUID) {
uuid = localStorage.H5PUserUUID;
} else {
uuid = H5P.createUUID();
localStorage.H5PUserUUID = uuid;
}
}
catch (err) {
// LocalStorage and Cookies are probably disabled. Do not track the user.
uuid = 'not-trackable-' + H5P.createUUID();
}
this.data.statement.actor = {
'account': {
'name': uuid,
'homePage': H5PIntegration.siteUrl
},
'objectType': 'Agent'
};
}
};