Lti provider - Improve login user inside course and learnpath - refs BT#20093

pull/4369/head
Christian 3 years ago
parent 864e9e21d5
commit ef64ad41f0
  1. 5
      main/lp/lp_ajax_initialize.php
  2. 9
      main/lp/lp_view.php
  3. 22
      plugin/lti_provider/src/LtiProvider.php
  4. 15
      plugin/lti_provider/tool/api/score.php
  5. 2
      plugin/lti_provider/tool/start.php

@ -176,6 +176,11 @@ function initialize_item($lp_id, $user_id, $view_id, $next_item)
error_log("mylp->lp_view_session_id: ".$mylp->lp_view_session_id);
}
if (isset($mylp->lti_launch_id)) {
$ltiLaunchId = $mylp->lti_launch_id;
$return .= "sendLtiLaunch('$ltiLaunchId', '$lp_id');";
}
return $return;
}

@ -130,6 +130,15 @@ $(function() {
});
var chamilo_xajax_handler = window.oxajax;
</script>';
if (!empty($lp->lti_launch_id)) {
$htmlHeadXtra[] = '<script>
$(function() {
if ($("#btn-menu-float").length > 0) {
$("#btn-menu-float").hide();
}
});
</script>';
}
$zoomOptions = api_get_configuration_value('quiz_image_zoom');
if (isset($zoomOptions['options']) && !in_array($origin, ['embeddable', 'noheader'])) {

@ -59,7 +59,7 @@ class LtiProvider
/**
* Verify if email user is in the platform to create it and login (true) or not (false).
*/
public function validateUser(array $launchData, string $courseCode): bool
public function validateUser(array $launchData, string $courseCode, string $toolName): bool
{
if (empty($launchData)) {
return false;
@ -97,9 +97,29 @@ class LtiProvider
CourseManager::subscribeUser($userId, $courseCode, $status);
}
Session::erase('_user');
Session::erase('is_platformAdmin');
Session::erase('is_allowedCreateCourse');
Session::erase('_uid');
if ('lp' == $toolName) {
// Deleting the objects
Session::erase('oLP');
Session::erase('lpobject');
Session::erase('scorm_view_id');
Session::erase('scorm_item_id');
Session::erase('exerciseResult');
Session::erase('objExercise');
Session::erase('questionList');
}
$login = UserManager::loginAsUser($userId, false);
if ($login && CourseManager::is_user_subscribed_in_course($userId, $courseCode)) {
$_course = api_get_course_info($courseCode);
Session::write('is_allowed_in_course', true);
Session::write('_real_cid', $_course['real_id']);
Session::write('_cid', $_course['code']);
Session::write('_course', $_course);
}
return $login;

@ -29,20 +29,13 @@ if (in_array($toolName, ['quiz', 'lp'])) {
$timestamp = date(DATE_ISO8601);
} else {
$lpId = (int) $_REQUEST['lti_result_id'];
/*$lpScore = Tracking::get_avg_student_score(
$lpProgress = learnpath::getProgress(
$lpId,
api_get_user_id(),
$courseCode,
[$lpId],
api_get_course_int_id(),
api_get_session_id()
);
$score = (int) $lpScore;*/
$lpProgress = Tracking::get_avg_student_progress(
api_get_user_id(),
$courseCode,
[$lpId],
api_get_session_id()
);
$score = (int) $lpProgress;
$score = $lpProgress;
$weight = 100;
$timestamp = date(DATE_ISO8601);
}

@ -15,7 +15,7 @@ $launchData = $launch->getLaunchData();
$plugin = LtiProviderPlugin::create();
$toolVars = $plugin->getToolProviderVars($launchData['aud']);
$login = LtiProvider::create()->validateUser($launchData, $toolVars['courseCode']);
$login = LtiProvider::create()->validateUser($launchData, $toolVars['courseCode'], toolVars['toolName']);
if ($login) {
$values = [];
$values['issuer'] = $launchData['iss'];

Loading…
Cancel
Save