Переглянути джерело

fixing event_system() call and improving performance -refs #6213

Yoselyn Castillo 11 роки тому
батько
коміт
45c688e86d
2 змінених файлів з 13 додано та 11 видалено
  1. 3 2
      main/inc/lib/main_api.lib.php
  2. 10 9
      main/inc/lib/usermanager.lib.php

+ 3 - 2
main/inc/lib/main_api.lib.php

@@ -153,8 +153,8 @@ define('LOG_COURSE_DELETE',                     'course_deleted');
 define('LOG_COURSE_CREATE',                     'course_created');
 define('LOG_USER_DELETE',                       'user_deleted');
 define('LOG_USER_CREATE',                       'user_created');
-define('LOG_USER_ACTIVE',                       'user_active');
-define('LOG_USER_OFF',                          'user_off');
+define('LOG_USER_ENABLE',                       'user_enable');
+define('LOG_USER_DISABLE',                      'user_disable');
 define('LOG_SESSION_CREATE',                    'session_created');
 define('LOG_SESSION_DELETE',                    'session_deleted');
 define('LOG_SESSION_CATEGORY_CREATE',           'session_category_created');
@@ -1072,6 +1072,7 @@ function _api_format_user($user, $add_password = false) {
     $result['user_id']          = $user_id;
     $result['official_code']    = $user['official_code'];
     $result['status']           = $user['status'];
+    $result['active']           = $user['active'];
     $result['auth_source']      = $user['auth_source'];
 
     if (isset($user['username'])) {

+ 10 - 9
main/inc/lib/usermanager.lib.php

@@ -533,16 +533,18 @@ class UserManager
         if (!in_array($language, $languages['folder'])) {
             $language = api_get_setting('platformLanguage');
         }
-        $activate = 0;
-                
-        $sql_active = "SELECT * FROM $table_user WHERE user_id='$user_id' ";
+        $change_active = 0;
+        if ($user_info['active'] != $active) {
+            $change_active = 1;
+        }        
+        /*$sql_active = "SELECT * FROM $table_user WHERE user_id='$user_id' ";
         $return_active = Database::query($sql_active);
         if (Database::num_rows($return_active) > 0) {
             $result_active = Database::fetch_array($return_active);
             if ($result_active['active'] != $active) {    
                 $activate = 1;
             }
-        }
+        }*/
         $sql = "UPDATE $table_user SET
                 lastname='".Database::escape_string($lastname)."',
                 firstname='".Database::escape_string($firstname)."',
@@ -582,15 +584,14 @@ class UserManager
         }
         $sql .= " WHERE user_id='$user_id'";
         $return = Database::query($sql);
-        if ($activate == 1 && $return) {
-           $user_id_manager = api_get_user_id();
+        if ($change_active == 1 && $return) {
            $user_info = api_get_user_info($user_id);
            if ($active == 1) {
-                $event_title = LOG_USER_ACTIVE;
+                $event_title = LOG_USER_ENABLE;
            } else {
-                $event_title = LOG_USER_OFF;
+                $event_title = LOG_USER_DISABLE;
            }
-           event_system($event_title, LOG_USER_ID, $user_id, api_get_utc_datetime(), $user_id_manager, null, $user_info); 
+           event_system($event_title, LOG_USER_ID, $user_id, api_get_utc_datetime(), null, null); 
         }
         if (is_array($extra) && count($extra) > 0) {
             $res = true;