[svn r13386] fix a major bug when logging as an user. Indeed, the time spent between the last connection of the user and the current moment was added to the time spent on the platform !

skala
Eric Marguin 18 years ago
parent 22d929d90a
commit 88b8f71267
  1. 3
      main/admin/user_list.php
  2. 22
      main/inc/local.inc.php
  3. 28
      main/inc/update_course_tracking.php

@ -1,6 +1,6 @@
<?php
// $Id: user_list.php 13292 2007-09-27 01:59:07Z yannoo $
// $Id: user_list.php 13386 2007-10-04 14:19:50Z elixir_inter $
/*
==============================================================================
Dokeos - elearning and course management software
@ -135,6 +135,7 @@ function login_user($user_id)
$_SESSION['_user'] = $_user;
$_SESSION['is_platformAdmin'] = $is_platformAdmin;
$_SESSION['is_allowedCreateCourse'] = $is_allowedCreateCourse;
$_SESSION['login_as'] = true; // will be usefull later to know if the user is actually an admin or not (example reporting)s
$target_url = api_get_path(WEB_PATH)."user_portal.php";
$message .= "<br/>Login successful. Go to <a href=\"$target_url\">$target_url</a>";

@ -507,14 +507,18 @@ if (isset($cidReset) && $cidReset) // course session data refresh requested or e
api_session_register('_cid');
api_session_register('_course');
//We add a new record in the course tracking table
$course_tracking_table = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
$sql="INSERT INTO $course_tracking_table(course_code, user_id, login_course_date, logout_course_date, counter)" .
"VALUES('".$_course['official_code']."', '".$_user['user_id']."', NOW(), NOW(), '1')";
api_sql_query($sql,__FILE__,__LINE__);
if($_configuration['tracking_enabled'] && !isset($_SESSION['login_as']))
{
//We add a new record in the course tracking table
$course_tracking_table = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
$sql="INSERT INTO $course_tracking_table(course_code, user_id, login_course_date, logout_course_date, counter)" .
"VALUES('".$_course['official_code']."', '".$_user['user_id']."', NOW(), NOW(), '1')";
api_sql_query($sql,__FILE__,__LINE__);
}
// if a session id has been given in url, we store the session
@ -567,7 +571,7 @@ else // continue with the previous values
$_course = $_SESSION['_course'];
if($_configuration['tracking_enabled'])
if($_configuration['tracking_enabled'] && !isset($_SESSION['login_as']))
{
$course_tracking_table = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);

@ -5,23 +5,27 @@ require('common_course_tracking.ajax.php');
function updateCourseTracking($i_user_id){
global $_configuration;
$objResponse = new xajaxResponse();
if($_configuration['tracking_enabled'] && !isset($_SESSION['login_as']))
{
$course_tracking_table = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
//We select the last record for the current course in the course tracking table
$sql="SELECT course_access_id FROM $course_tracking_table WHERE user_id='$i_user_id' ORDER BY login_course_date DESC LIMIT 0,1";
$result=api_sql_query($sql,__FILE__,__LINE__);
$i_course_access_id = mysql_result($result,0,0);
//We update the course tracking table
$sql="UPDATE $course_tracking_table " .
"SET logout_course_date = NOW() " .
"WHERE course_access_id='$i_course_access_id'";
$course_tracking_table = Database :: get_statistic_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
api_sql_query($sql,__FILE__,__LINE__);
}
//We select the last record for the current course in the course tracking table
$sql="SELECT course_access_id FROM $course_tracking_table WHERE user_id='$i_user_id' ORDER BY login_course_date DESC LIMIT 0,1";
$result=api_sql_query($sql,__FILE__,__LINE__);
$i_course_access_id = mysql_result($result,0,0);
//We update the course tracking table
$sql="UPDATE $course_tracking_table " .
"SET logout_course_date = NOW() " .
"WHERE course_access_id='$i_course_access_id'";
api_sql_query($sql,__FILE__,__LINE__);
return $objResponse;

Loading…
Cancel
Save