From 88b8f712672ed8d49f228a581f05d1cb25031fab Mon Sep 17 00:00:00 2001 From: Eric Marguin Date: Thu, 4 Oct 2007 16:19:50 +0200 Subject: [PATCH] [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 ! --- main/admin/user_list.php | 3 ++- main/inc/local.inc.php | 22 +++++++++++++--------- main/inc/update_course_tracking.php | 28 ++++++++++++++++------------ 3 files changed, 31 insertions(+), 22 deletions(-) diff --git a/main/admin/user_list.php b/main/admin/user_list.php index d094dde794..4b3726953c 100644 --- a/main/admin/user_list.php +++ b/main/admin/user_list.php @@ -1,6 +1,6 @@ Login successful. Go to $target_url"; diff --git a/main/inc/local.inc.php b/main/inc/local.inc.php index e9e2d3e405..cdb50c2134 100644 --- a/main/inc/local.inc.php +++ b/main/inc/local.inc.php @@ -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); diff --git a/main/inc/update_course_tracking.php b/main/inc/update_course_tracking.php index df922c46be..2c224097b7 100644 --- a/main/inc/update_course_tracking.php +++ b/main/inc/update_course_tracking.php @@ -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;