Minor - chang function name, move function to Event class.

pull/2487/head
jmontoyaa 8 years ago
parent 16ab5d9483
commit a31ed90455
  1. 2
      main/auth/external_login/login.ldap.php
  2. 2
      main/auth/external_login/login.ws.php
  3. 2
      main/auth/external_login/newUser.ldap.php
  4. 2
      main/auth/external_login/newUser.php
  5. 2
      main/auth/inscription.php
  6. 2
      main/auth/ldap/login.php
  7. 7
      main/auth/shibboleth/lib/shibboleth_session.class.php
  8. 6
      main/auth/sso/sso.Drupal.class.php
  9. 6
      main/auth/sso/sso.class.php
  10. 2
      main/inc/global.inc.php
  11. 88
      main/inc/lib/events.lib.php
  12. 2
      main/inc/lib/login.lib.php
  13. 59
      main/inc/lib/online.inc.php
  14. 2
      main/inc/lib/userportal.lib.php
  15. 25
      main/inc/local.inc.php

@ -74,7 +74,7 @@ if ($ldap_user !== false) {
Session::write('_user', $_user);
$uidReset = true;
$logging_in = true;
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
} else {
if ($debug) {
error_log('extldap_authenticate error');

@ -29,7 +29,7 @@ if ($isValid === 1) {
Session::write('_user', $_user);
$uidReset = true;
$logging_in = true;
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
} else {
//error_log('WS authentication error - user not approved by external WS');
$loginFailed = true;

@ -64,7 +64,7 @@ if ($ldap_user !== false) {
$is_platformAdmin = true;
Database::query("INSERT INTO admin values ('{$chamiloUser->getId()}')");
}
Event::event_login($chamiloUser->getId());
Event::eventLogin($chamiloUser->getId());
MessageManager::sendNotificationByRegisteredUser($chamiloUser);
}

@ -46,7 +46,7 @@ if ($user !== false && ($chamilo_uid = external_add_user($user)) !== false) {
// Can user create course
$is_allowedCreateCourse = (bool) (($user['status'] == COURSEMANAGER) or (api_get_setting('drhCourseManagerRights') and $user['status'] == SESSIONADMIN));
Event::event_login($chamilo_uid);
Event::eventLogin($chamilo_uid);
} else {
$loginFailed = true;
unset($_user['user_id']);

@ -812,7 +812,7 @@ if ($form->validate()) {
Session::write('is_allowedCreateCourse', $is_allowedCreateCourse);
// Stats
Event::event_login($user_id);
Event::eventLogin($user_id);
// last user login date is now
$user_last_login_datetime = 0; // used as a unix timestamp it will correspond to : 1 1 1970

@ -34,7 +34,7 @@ if ($loginLdapSucces) {
$_user['user_id'] = $uData['user_id'];
Session::write('_uid', $_uid);
// Jand: copied from event_login in events.lib.php to enable login statistics:
Event::event_login($uData['user_id']);
Event::eventLogin($uData['user_id']);
} else {
$loginFailed = true;
unset($_user['user_id']);

@ -4,7 +4,7 @@ namespace Shibboleth;
use ChamiloSession as Session;
use Database;
use Event;
/**
* A Chamilo user session. Used as there is no session object so far provided by the core API.
@ -15,7 +15,6 @@ use Database;
*/
class ShibbolethSession
{
/**
* @return ShibbolethSession
*/
@ -43,7 +42,7 @@ class ShibbolethSession
$_SESSION['_user'] = array();
online_logout(null, false);
global $logoutInfo;
courseLogout($logoutInfo);
Event::courseLogout($logoutInfo);
}
/**
@ -80,7 +79,7 @@ class ShibbolethSession
$_SESSION['noredirection'] = true;
//must be called before 'init_local.inc.php'
Event::event_login($_uid);
Event::eventLogin($_uid);
//used in 'init_local.inc.php' this is BAD but and should be changed
$loginFailed = false;

@ -150,7 +150,7 @@ class ssoDrupal
$_user = api_get_user_info($_user['user_id']);
$_user['uidReset'] = true;
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
// Redirect to homepage
$sso_target = '';
if (!empty($sso['ruri'])) {
@ -190,7 +190,7 @@ class ssoDrupal
$is_platformAdmin = $uData['status'] == COURSEMANAGER;
Session::write('is_platformAdmin', $is_platformAdmin);
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
} else {
//Secondary URL admin wants to login
// so we check as a normal user
@ -198,7 +198,7 @@ class ssoDrupal
$_user['user_id'] = $uData['user_id'];
$_user = api_get_user_info($_user['user_id']);
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
} else {
$loginFailed = true;
Session::erase('_uid');

@ -160,7 +160,7 @@ class sso
$_user = api_get_user_info($_user['user_id']);
$_user['uidReset'] = true;
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
// Redirect to homepage
$sso_target = '';
if (!empty($sso['ruri'])) {
@ -200,7 +200,7 @@ class sso
$is_platformAdmin = $uData['status'] == COURSEMANAGER;
Session::write('is_platformAdmin', $is_platformAdmin);
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
} else {
//Secondary URL admin wants to login
// so we check as a normal user
@ -208,7 +208,7 @@ class sso
$_user['user_id'] = $uData['user_id'];
$_user = api_get_user_info($_user['user_id']);
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
} else {
$loginFailed = true;
Session::erase('_uid');

@ -604,7 +604,7 @@ if (!isset($_SESSION['login_as']) && isset($_user)) {
if ($res_logout_date < time() - $_configuration['session_lifetime']) {
// it isn't, we should create a fresh entry
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
// now that it's created, we can get its ID and carry on
$i_id_last_connection = Database::result($q_last_connection, 0, 'login_id');
}

@ -57,7 +57,7 @@ class Event
* @author Julio Montoya 2013
* @desc Record information for login event when an user identifies himself with username & password
*/
public static function event_login($userId)
public static function eventLogin($userId)
{
$userInfo = api_get_user_info($userId);
$userId = intval($userId);
@ -1851,7 +1851,7 @@ class Event
*
* @return bool
*/
public static function eventCourseUpdate(
public static function eventCourseLoginUpdate(
$courseId,
$userId,
$sessionId,
@ -1878,6 +1878,7 @@ class Event
user_id = $userId
ORDER BY login_course_date DESC
LIMIT 1";
$result = Database::query($sql);
// Save every 5 minutes by default
@ -1891,9 +1892,9 @@ class Event
if ($now - $logout > $seconds) {
$now = api_get_utc_datetime();
$sql = "UPDATE $table SET
logout_course_date = '$now',
counter = counter + 1
WHERE course_access_id = $id";
logout_course_date = '$now',
counter = counter + 1
WHERE course_access_id = $id";
Database::query($sql);
}
@ -1903,6 +1904,65 @@ class Event
return false;
}
/**
* Register the logout of the course (usually when logging out of the platform)
* from the track_e_course_access table
* @param array $logoutInfo Information stored by local.inc.php
* before new context ['uid'=> x, 'cid'=>y, 'sid'=>z]
*/
public static function courseLogout($logoutInfo)
{
if (empty($logoutInfo['uid']) || empty($logoutInfo['cid'])) {
return;
}
$sessionLifetime = api_get_configuration_value('session_lifetime');
/*
* When $_configuration['session_lifetime'] is larger than ~100 hours (in order to let users take exercises with no problems)
* the function Tracking::get_time_spent_on_the_course() returns larger values (200h) due the condition:
* login_course_date > now() - INTERVAL $session_lifetime SECOND
*/
if (empty($sessionLifetime) || $sessionLifetime > 86400) {
$sessionLifetime = 3600; // 1 hour
}
if (!empty($logoutInfo) && !empty($logoutInfo['cid'])) {
$tableCourseAccess = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
$userId = intval($logoutInfo['uid']);
$courseId = intval($logoutInfo['cid']);
$sessionId = 0;
if (!empty($logoutInfo['sid'])) {
$sessionId = intval($logoutInfo['sid']);
}
$currentDate = api_get_utc_datetime();
// UTC time
$time = api_get_utc_datetime(time() - $sessionLifetime);
$sql = "SELECT course_access_id
FROM $tableCourseAccess
WHERE
user_id = $userId AND
c_id = $courseId AND
session_id = $sessionId AND
login_course_date > '$time'
ORDER BY login_course_date DESC
LIMIT 1";
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
$courseAccessId = Database::result($result, 0, 0);
$sql = "UPDATE $tableCourseAccess SET
logout_course_date = '$currentDate',
counter = counter + 1
WHERE course_access_id = $courseAccessId";
Database::query($sql);
} else {
$ip = api_get_real_ip();
$sql = "INSERT INTO $tableCourseAccess (c_id, user_ip, user_id, login_course_date, logout_course_date, counter, session_id)
VALUES ($courseId, '$ip', $userId, '$currentDate', '$currentDate', 1, $sessionId)";
Database::query($sql);
}
}
}
/**
* Register a "fake" time spent on the platform, for example to match the
* estimated time he took to author an assignment/work, see configuration
@ -1915,7 +1975,8 @@ class Event
* @param int $courseId The course in which to add the time
* @param int $userId The user for whom to add the time
* @param int $sessionId The session in which to add the time (if any)
* @param string $virtualTime The amount of time to be added, in a hh:mm:ss format. If int, we consider it is expressed in hours.
* @param string $virtualTime The amount of time to be added,
* in a hh:mm:ss format. If int, we consider it is expressed in hours.
* @param string $ip IP address to go on record for this time record
*
* @return True on successful insertion, false otherwise
@ -2093,11 +2154,18 @@ class Event
public static function check_if_mail_already_sent($event_name, $user_from, $user_to = null)
{
if ($user_to == null) {
$sql = 'SELECT COUNT(*) as total FROM '.Database::get_main_table(TABLE_EVENT_SENT).'
WHERE user_from = '.$user_from.' AND event_type_name = "'.$event_name.'"';
$sql = 'SELECT COUNT(*) as total
FROM '.Database::get_main_table(TABLE_EVENT_SENT).'
WHERE
user_from = '.$user_from.' AND
event_type_name = "'.$event_name.'"';
} else {
$sql = 'SELECT COUNT(*) as total FROM '.Database::get_main_table(TABLE_EVENT_SENT).'
WHERE user_from = '.$user_from.' AND user_to = '.$user_to.' AND event_type_name = "'.$event_name.'"';
$sql = 'SELECT COUNT(*) as total
FROM '.Database::get_main_table(TABLE_EVENT_SENT).'
WHERE
user_from = '.$user_from.' AND
user_to = '.$user_to.' AND
event_type_name = "'.$event_name.'"';
}
$result = Database::store_result(Database::query($sql), 'ASSOC');

@ -513,7 +513,7 @@ class Login
if (isset($_dont_save_user_course_access) && $_dont_save_user_course_access == true) {
$save_course_access = false;
} else {
courseLogout(
Event::courseLogout(
[
'uid' => intval($_user ['user_id']),
'cid' => api_get_course_int_id(),

@ -504,62 +504,3 @@ function whoIsOnlineInThisSessionCount($timeLimit, $sessionId)
return 0;
}
/**
* Register the logout of the course (usually when logging out of the platform)
* from the track_e_course_access table
* @param array $logoutInfo Information stored by local.inc.php
* before new context ['uid'=> x, 'cid'=>y, 'sid'=>z]
*/
function courseLogout($logoutInfo)
{
if (empty($logoutInfo['uid']) || empty($logoutInfo['cid'])) {
return;
}
$sessionLifetime = api_get_configuration_value('session_lifetime');
/*
* When $_configuration['session_lifetime'] is larger than ~100 hours (in order to let users take exercises with no problems)
* the function Tracking::get_time_spent_on_the_course() returns larger values (200h) due the condition:
* login_course_date > now() - INTERVAL $session_lifetime SECOND
*/
if (empty($sessionLifetime) || $sessionLifetime > 86400) {
$sessionLifetime = 3600; // 1 hour
}
if (!empty($logoutInfo) && !empty($logoutInfo['cid'])) {
$tableCourseAccess = Database::get_main_table(TABLE_STATISTIC_TRACK_E_COURSE_ACCESS);
$userId = intval($logoutInfo['uid']);
$courseId = intval($logoutInfo['cid']);
$sessionId = 0;
if (!empty($logoutInfo['sid'])) {
$sessionId = intval($logoutInfo['sid']);
}
$currentDate = api_get_utc_datetime();
// UTC time
$time = api_get_utc_datetime(time() - $sessionLifetime);
$sql = "SELECT course_access_id
FROM $tableCourseAccess
WHERE
user_id = $userId AND
c_id = $courseId AND
session_id = $sessionId AND
login_course_date > '$time'
ORDER BY login_course_date DESC
LIMIT 1";
$result = Database::query($sql);
if (Database::num_rows($result) > 0) {
$courseAccessId = Database::result($result, 0, 0);
$sql = "UPDATE $tableCourseAccess SET
logout_course_date = '$currentDate',
counter = counter + 1
WHERE course_access_id = $courseAccessId";
Database::query($sql);
} else {
$ip = api_get_real_ip();
$sql = "INSERT INTO $tableCourseAccess (c_id, user_ip, user_id, login_course_date, logout_course_date, counter, session_id)
VALUES ($courseId, '$ip', $userId, '$currentDate', '$currentDate', 1, $sessionId)";
Database::query($sql);
}
}
}

@ -149,7 +149,7 @@ class IndexManager
public function logout($redirect = true, $logoutInfo = [])
{
online_logout($this->user_id, true);
courseLogout($logoutInfo);
Event::courseLogout($logoutInfo);
}
/**

@ -132,7 +132,7 @@ if (isset($_SESSION['conditional_login']['uid']) && $_SESSION['conditional_login
Session::write('_user', $_user);
Session::erase('conditional_login');
$uidReset = true;
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
}
// parameters passed via GET
@ -277,7 +277,6 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
}
if ((isset($_POST['login']) && isset($_POST['password'])) || ($cas_login)) {
// $login && $password are given to log in
if ($cas_login && empty($_POST['login'])) {
$login = $cas_login;
@ -406,7 +405,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
$logging_in = true;
} else {
$loginFailed = true;
@ -419,7 +418,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
.'index.php?loginFailed=1&error=access_url_inactive';
if ($cas_login) {
cas_logout(null, $location);
courseLogout($logoutInfo);
Event::courseLogout($logoutInfo);
} else {
header('Location: '.$location);
}
@ -433,7 +432,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
$logging_in = true;
} else {
//This means a secondary admin wants to login so we check as he's a normal user
@ -441,7 +440,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$_user['user_id'] = $uData['user_id'];
$_user['status'] = $uData['status'];
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
$logging_in = true;
} else {
$loginFailed = true;
@ -461,7 +460,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$_user['status'] = $uData['status'];
Session::write('_user', $_user);
Event::event_login($uData['user_id']);
Event::eventLogin($uData['user_id']);
$logging_in = true;
}
@ -652,7 +651,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
if ($logout) {
// Make custom redirect after logout
online_logout($_SESSION['_user']['user_id'], false);
courseLogout($logoutInfo);
Event::courseLogout($logoutInfo);
$osso->logout(); //redirects and exits
}
} elseif (!$logout) {
@ -724,7 +723,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
//if there was an attempted logout without a previous login, log
// this anonymous user out as well but avoid redirect
online_logout(null, false);
courseLogout($logoutInfo);
Event::courseLogout($logoutInfo);
$osso->logout(); //redirects and exits
}
} elseif (api_get_setting('openid_authentication') == 'true') {
@ -765,7 +764,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
$_user['status'] = $uData['status'];
Session::write('_user', $_user);
Event::event_login($_user['user_id']);
Event::eventLogin($_user['user_id']);
} else {
$loginFailed = true;
Session::erase('_uid');
@ -906,7 +905,7 @@ if (!isset($_SESSION['login_as'])) {
if (isset($_dont_save_user_course_access) && $_dont_save_user_course_access == true) {
$save_course_access = false;
} else {
courseLogout($logoutInfo);
Event::courseLogout($logoutInfo);
}
}
}
@ -971,7 +970,7 @@ if (isset($cidReset) && $cidReset) {
}
} else {
// Leave a logout time in the track_e_course_access table if we were in a course
courseLogout($logoutInfo);
Event::courseLogout($logoutInfo);
Session::erase('_cid');
Session::erase('_real_cid');
Session::erase('_course');
@ -1507,7 +1506,7 @@ if ((isset($cas_login) && $cas_login && exist_firstpage_parameter()) ||
}
}
Event::eventCourseUpdate(
Event::eventCourseLoginUpdate(
api_get_course_int_id(),
api_get_user_id(),
api_get_session_id()

Loading…
Cancel
Save