Browse Source

Event::event_login now requires a user id

Julio Montoya 10 years ago
parent
commit
665a9a6066

+ 2 - 2
main/auth/external_login/login.ldap.php

@@ -38,7 +38,7 @@
  *
  * */
 
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
 
 require_once dirname(__FILE__) . '/ldap.inc.php';
 require_once dirname(__FILE__) . '/functions.inc.php';
@@ -65,7 +65,7 @@ if ($ldap_user !== false) {
     Session::write('_user', $_user);
     $uidReset = true;
     $logging_in = true;
-    Event::event_login();
+    Event::event_login($_user['user_id']);
 } else {
     error_log('extldap_authenticate error');
     $loginFailed = true;

+ 2 - 2
main/auth/external_login/login.ws.php

@@ -6,7 +6,7 @@
  * have 'ws' in his auth_source field instead of 'platform'.
  */
 
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
 
 // Configure the web service URL here. e.g. http://174.1.1.19:8020/login.asmx?WSDL
 $wsUrl = '';
@@ -27,7 +27,7 @@ if ($isValid === 1) {
     Session::write('_user', $_user);
     $uidReset = true;
     $logging_in = true;
-    Event::event_login();
+    Event::event_login($_user['user_id']);
 } else {
     //error_log('WS authentication error - user not approved by external WS');
     $loginFailed = true;

+ 3 - 2
main/auth/external_login/newUser.ldap.php

@@ -37,7 +37,7 @@
  *          - index.php?loginFailed=1&error=unrecognize_sso_origin');
  * */
 
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
 
 require_once dirname(__FILE__) . '/ldap.inc.php';
 require_once dirname(__FILE__) . '/functions.inc.php';
@@ -60,8 +60,9 @@ if ($ldap_user !== false) {
             $is_platformAdmin = true;
             Database::query("INSERT INTO admin values ('$chamilo_uid')");
         }
+        Event::event_login($chamilo_uid);
     }
-    Event::event_login();
+
 } else {
     $loginFailed = true;
     $uidReset = false;

+ 2 - 2
main/auth/external_login/newUser.php

@@ -8,7 +8,7 @@
   You also have to implements the external_get_user_info function in functions.inc.php
  */
 
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
 
 require_once(dirname(__FILE__) . '/functions.inc.php');
 
@@ -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();
+    Event::event_login($chamilo_uid);
 } else {
     $loginFailed = true;
     unset($_user['user_id']);

+ 4 - 8
main/auth/ldap/login.php

@@ -21,25 +21,21 @@
  */
 //require_once('../../inc/global.inc.php'); - this script should be loaded by the /index.php script anyway, so global is already loaded
 
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
 
 require_once('authldap.php');
 
 $loginLdapSucces = ldap_login($login, $password);
 
-if ($loginLdapSucces)
-{
+if ($loginLdapSucces) {
 	$loginFailed = false;
 	$uidReset = true;
 	$_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();
-}
-else
-{
+	Event::event_login($uData['user_id']);
+} else {
 	$loginFailed = true;
 	unset($_user['user_id']);
 	$uidReset = false;
 }
-?>

+ 1 - 1
main/auth/shibboleth/lib/shibboleth_session.class.php

@@ -79,7 +79,7 @@ class ShibbolethSession
         $_SESSION['noredirection'] = true;
 
         //must be called before 'init_local.inc.php'
-        Event::event_login();
+        Event::event_login($_uid);
 
         //used in 'init_local.inc.php' this is BAD but and should be changed
         $loginFailed = false;

+ 4 - 4
main/auth/sso/sso.Drupal.class.php

@@ -1,6 +1,6 @@
 <?php
 
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
 
 /* For licensing terms, see /license.txt */
 /**
@@ -142,7 +142,7 @@ class ssoDrupal
                                         $_user['user_id'] = $uData['user_id'];
                                         $_user = api_get_user_info($_user['user_id']);
                                         Session::write('_user', $_user);
-                                        Event::event_login();
+                                        Event::event_login($_user['user_id']);
                                         // Redirect to homepage
                                         $sso_target = isset($sso['target']) ? $sso['target'] : api_get_path(WEB_PATH) . 'index.php';
                                         header('Location: '. $sso_target);
@@ -173,7 +173,7 @@ class ssoDrupal
                                     $is_platformAdmin = $uData['status'] == COURSEMANAGER;
                                     Session::write('is_platformAdmin', $is_platformAdmin);
                                     Session::write('_user', $_user);
-                                    Event::event_login();
+                                    Event::event_login($_user['user_id']);
                                 } else {
                                     //Secondary URL admin wants to login
                                     // so we check as a normal user
@@ -181,7 +181,7 @@ class ssoDrupal
                                         $_user['user_id'] = $uData['user_id'];
                                         $_user = api_get_user_info($_user['user_id']);
                                         Session::write('_user', $_user);
-                                        Event::event_login();
+                                        Event::event_login($_user['user_id']);
                                     } else {
                                         $loginFailed = true;
                                         Session::erase('_uid');

+ 4 - 4
main/auth/sso/sso.class.php

@@ -1,6 +1,6 @@
 <?php
 
-use \ChamiloSession as Session;
+use ChamiloSession as Session;
 
 /* For licensing terms, see /license.txt */
 /**
@@ -150,7 +150,7 @@ class sso {
                                         $_user['user_id'] = $uData['user_id'];
                                         $_user = api_get_user_info($_user['user_id']);
                                         Session::write('_user', $_user);
-                                        Event::event_login();
+                                        Event::event_login($_user['user_id']);
                                         // Redirect to homepage
                                         $sso_target = isset($sso['target']) ? $sso['target'] : api_get_path(WEB_PATH) .'.index.php';
                                         header('Location: '. $sso_target);
@@ -181,7 +181,7 @@ class sso {
                                     $is_platformAdmin = $uData['status'] == COURSEMANAGER;
                                     Session::write('is_platformAdmin', $is_platformAdmin);
                                     Session::write('_user', $_user);
-                                    Event::event_login();
+                                    Event::event_login($_user['user_id']);
                                 } else {
                                     //Secondary URL admin wants to login
                                     // so we check as a normal user
@@ -189,7 +189,7 @@ class sso {
                                         $_user['user_id'] = $uData['user_id'];
                                         $_user = api_get_user_info($_user['user_id']);
                                         Session::write('_user', $_user);
-                                        Event::event_login();
+                                        Event::event_login($_user['user_id']);
                                     } else {
                                         $loginFailed = true;
                                         Session::erase('_uid');

+ 5 - 4
main/inc/lib/events.lib.php

@@ -55,15 +55,16 @@ 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()
+    public static function event_login($userId)
     {
-        $userInfo = api_get_user_info();
+        $userInfo = api_get_user_info($userId);
+
+        $userId = intval($userId);
+
         if (empty($userInfo)) {
             return false;
         }
 
-        $userId = api_get_user_id();
-
         $TABLETRACK_LOGIN = Database::get_main_table(TABLE_STATISTIC_TRACK_E_LOGIN);
 
         $reallyNow = api_get_utc_datetime();

+ 9 - 13
main/inc/local.inc.php

@@ -109,12 +109,6 @@
 *    @package chamilo.include
 */
 
-/*
-     INIT SECTION
-     variables should be initialised here
- */
-
-//require_once api_get_path(LIBRARY_PATH).'conditionallogin.lib.php'; moved to autologin
 // verified if exists the username and password in session current
 
 use ChamiloSession as Session;
@@ -131,7 +125,7 @@ if (isset($_SESSION['conditional_login']['uid']) &&
     Session::write('_user', $_user);
     Session::erase('conditional_login');
     $uidReset=true;
-    Event::event_login();
+    Event::event_login($_user['user_id']);
 }
 
 // parameters passed via GET
@@ -321,7 +315,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
                 if (($password == $uData['password'] || $cas_login) && (trim($login) == $uData['username'])) {
                     $update_type = UserManager::get_extra_user_data_by_field($uData['user_id'], 'update_type');
 
-                    $update_type= $update_type['update_type'];
+                    $update_type = $update_type['update_type'];
                     if (!empty($extAuthSource[$update_type]['updateUser'])
                         && file_exists($extAuthSource[$update_type]['updateUser'])
                     ) {
@@ -361,7 +355,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();
+                                        Event::event_login($_user['user_id']);
                                         $logging_in = true;
                                     } else {
                                         $loginFailed = true;
@@ -387,7 +381,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();
+                                        Event::event_login($_user['user_id']);
                                         $logging_in = true;
                                     } else {
                                         //This means a secondary admin wants to login so we check as he's a normal user
@@ -395,7 +389,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();
+                                            Event::event_login($_user['user_id']);
                                             $logging_in = true;
                                         } else {
                                             $loginFailed = true;
@@ -410,13 +404,15 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
                                     }
                                 }
                             } else {
+
                                 ConditionalLogin::check_conditions($uData);
                                 $_user['user_id'] = $uData['user_id'];
                                 $_user['status'] = $uData['status'];
 
                                 Session::write('_user', $_user);
-                                Event::event_login();
+                                Event::event_login($uData['user_id']);
                                 $logging_in = true;
+
                             }
                         } else {
                             $loginFailed = true;
@@ -661,7 +657,7 @@ if (!empty($_SESSION['_user']['user_id']) && !($login || $logout)) {
                                     $_user['status'] = $uData['status'];
 
                                     Session::write('_user', $_user);
-                                    Event::event_login();
+                                    Event::event_login($_user['user_id']);
                                 } else {
                                     $loginFailed = true;
                                     Session::erase('_uid');