ソースを参照

Add logs when delete/adding users to a session see BT#9943 #7724

Julio Montoya 9 年 前
コミット
527a44f025

+ 8 - 0
main/inc/lib/api.lib.php

@@ -193,6 +193,14 @@ define('LOG_USER_FIELD_CREATE', 'user_field_created');
 define('LOG_USER_FIELD_DELETE', 'user_field_deleted');
 define('LOG_SESSION_CREATE', 'session_created');
 define('LOG_SESSION_DELETE', 'session_deleted');
+define('LOG_SESSION_ADD_USER_COURSE', 'session_add_user_course');
+define('LOG_SESSION_DELETE_USER_COURSE', 'session_delete_user_course');
+
+define('LOG_SESSION_DELETE_USER', 'session_delete_user');
+
+define('LOG_SESSION_ADD_COURSE', 'session_add_course');
+define('LOG_SESSION_DELETE_COURSE', 'session_delete_course');
+
 define('LOG_SESSION_CATEGORY_CREATE', 'session_cat_created'); //changed in 1.9.8
 define('LOG_SESSION_CATEGORY_DELETE', 'session_cat_deleted'); //changed in 1.9.8
 define('LOG_CONFIGURATION_SETTINGS_CHANGE', 'settings_changed');

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

@@ -649,7 +649,7 @@ class Event
         $course_id = null,
         $sessionId = 0
     ) {
-        $TABLETRACK_DEFAULT = Database::get_main_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
+        $table = Database::get_main_table(TABLE_STATISTIC_TRACK_E_DEFAULT);
 
         if (empty($event_type)) {
             return false;
@@ -706,7 +706,8 @@ class Event
             'default_value' => $event_value,
             'session_id' => $sessionId
         );
-        Database::insert($TABLETRACK_DEFAULT, $params);
+        Database::insert($table, $params);
+
         return true;
     }
 
@@ -734,6 +735,7 @@ class Event
             $et['descLangVar'] = $event_config[$et["event_type_name"]]["desc_lang_var"];
             $to_return[] = $et;
         }
+
         return $to_return;
     }
 

+ 82 - 3
main/inc/lib/sessionmanager.lib.php

@@ -237,6 +237,7 @@ class SessionManager
                         $user_id
                     );
                 }
+
                 return $session_id;
             }
         }
@@ -1610,6 +1611,17 @@ class SessionManager
                                     user_id = $existing_user AND
                                     status = 0 ";
                         $result = Database::query($sql);
+
+                        Event::addEvent(
+                            LOG_SESSION_DELETE_USER_COURSE,
+                            LOG_USER_ID,
+                            $existing_user,
+                            api_get_utc_datetime(),
+                            api_get_user_id(),
+                            $courseId,
+                            $id_session
+                        );
+
                         if (Database::affected_rows($result)) {
                             $nbr_users--;
                         }
@@ -1619,13 +1631,26 @@ class SessionManager
 
             // Replace with this new function
             // insert new users into session_rel_course_rel_user and ignore if they already exist
+
             foreach ($user_list as $enreg_user) {
                 if (!in_array($enreg_user, $existingUsers)) {
                     $enreg_user = Database::escape_string($enreg_user);
                     $sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user (session_id, c_id, user_id, visibility, status)
                             VALUES($id_session, $courseId, $enreg_user, $session_visibility, 0)";
                     $result = Database::query($sql);
+
+                    Event::addEvent(
+                        LOG_SESSION_ADD_USER_COURSE,
+                        LOG_USER_ID,
+                        $enreg_user,
+                        api_get_utc_datetime(),
+                        api_get_user_id(),
+                        $courseId,
+                        $id_session
+                    );
+
                     if (Database::affected_rows($result)) {
+
                         $nbr_users++;
                     }
                 }
@@ -1938,6 +1963,7 @@ class SessionManager
         // Get the list of courses related to this session
         $course_list = SessionManager::get_course_list_by_session_id($session_id);
 
+
         if (!empty($course_list)) {
             foreach ($course_list as $course) {
                 $courseId = $course['id'];
@@ -1945,6 +1971,17 @@ class SessionManager
                 $sql = "DELETE FROM $tbl_session_rel_course_rel_user
                         WHERE session_id = $session_id AND c_id = $courseId AND user_id = $user_id";
                 $result = Database::query($sql);
+
+                Event::addEvent(
+                    LOG_SESSION_DELETE_USER_COURSE,
+                    LOG_USER_ID,
+                    $user_id,
+                    api_get_utc_datetime(),
+                    api_get_user_id(),
+                    $courseId,
+                    $session_id
+                );
+
                 if (Database::affected_rows($result)) {
                     // Update number of users in this relation
                     $sql = "UPDATE $tbl_session_rel_course SET nbr_users = nbr_users - 1
@@ -2014,6 +2051,16 @@ class SessionManager
                             WHERE c_id = " . $existingCourse['c_id'] . " AND session_id = $sessionId";
                     Database::query($sql);
 
+                    Event::addEvent(
+                        LOG_SESSION_DELETE_COURSE,
+                        LOG_COURSE_ID,
+                        $existingCourse['c_id'],
+                        api_get_utc_datetime(),
+                        api_get_user_id(),
+                        $existingCourse['c_id'],
+                        $sessionId
+                    );
+
                     CourseManager::remove_course_ranking(
                         $existingCourse['c_id'],
                         $sessionId
@@ -2041,6 +2088,16 @@ class SessionManager
                         VALUES ($sessionId, $courseId)";
                 Database::query($sql);
 
+                Event::addEvent(
+                    LOG_SESSION_ADD_COURSE,
+                    LOG_COURSE_ID,
+                    $courseId,
+                    api_get_utc_datetime(),
+                    api_get_user_id(),
+                    $courseId,
+                    $sessionId
+                );
+
                 // We add the current course in the existing courses array,
                 // to avoid adding another time the current course
                 $existingCourses[] = array('c_id' => $courseId);
@@ -2053,6 +2110,17 @@ class SessionManager
                     $sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user (session_id, c_id, user_id)
                             VALUES ($sessionId, $courseId, $enreg_user_id)";
                     $result = Database::query($sql);
+
+                    Event::addEvent(
+                        LOG_SESSION_ADD_USER_COURSE,
+                        LOG_USER_ID,
+                        $enreg_user_id,
+                        api_get_utc_datetime(),
+                        api_get_user_id(),
+                        $courseId,
+                        $sessionId
+                    );
+
                     if (Database::affected_rows($result)) {
                         $nbr_users++;
                     }
@@ -2104,9 +2172,20 @@ class SessionManager
                 WHERE c_id = $course_id AND session_id = $session_id";
         Database::query($sql);
 
+        Event::addEvent(
+            LOG_SESSION_DELETE_COURSE,
+            LOG_COURSE_ID,
+            $course_id,
+            api_get_utc_datetime(),
+            api_get_user_id(),
+            $course_id,
+            $session_id
+        );
+
         if ($nb_affected > 0) {
             // Update number of courses in the session
-            $sql = "UPDATE $tbl_session SET nbr_courses= nbr_courses - $nb_affected WHERE id = $session_id";
+            $sql = "UPDATE $tbl_session SET nbr_courses= nbr_courses - $nb_affected
+                    WHERE id = $session_id";
             Database::query($sql);
             return true;
         } else {
@@ -2393,8 +2472,8 @@ class SessionManager
                     s.id,
                     s.name,
                     s.nbr_courses,
-                    s.date_start,
-                    s.date_end,
+                    s.access_start_date,
+                    s.access_end_date,
                     u.firstname,
                     u.lastname,
                     sc.name as category_name,

+ 55 - 20
main/webservices/registration.soap.php

@@ -549,26 +549,6 @@ function WSCreateUser($params) {
         return 0;
     }
 
-    /*$password = ($_configuration['password_encryption'] ? api_get_encrypted_password($password) : $password);
-    $sql = "INSERT INTO $table_user SET
-                lastname = '".Database::escape_string(trim($lastName))."',
-                firstname = '".Database::escape_string(trim($firstName))."',
-                username = '".Database::escape_string(trim($loginName))."',
-                status = '".Database::escape_string($status)."',
-                password = '".Database::escape_string($password)."',
-                email = '".Database::escape_string($email)."',
-                official_code    = '".Database::escape_string($official_code)."',
-                picture_uri     = '".Database::escape_string($picture_uri)."',
-                creator_id      = '".Database::escape_string($creator_id)."',
-                auth_source = '".Database::escape_string($auth_source)."',
-                phone = '".Database::escape_string($phone)."',
-                language = '".Database::escape_string($language)."',
-                registration_date = now(),
-                $expirationDateStatement
-                hr_dept_id = '".Database::escape_string($hr_dept_id)."',
-                active = '".Database::escape_string($active)."'";
-    $result = Database::query($sql);-*/
-
     if (isset($original_user_id_name) && isset($original_user_id_value)) {
         $_SESSION['ws_' . $original_user_id_name] = $original_user_id_value;
     }
@@ -4810,6 +4790,17 @@ function WSSuscribeUsersToSession($params)
                     $sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(session_id, c_id, user_id)
                             VALUES('$sessionId', '$enreg_course', '$enreg_user')";
                     $result = Database::query($sql);
+
+                    Event::addEvent(
+                        LOG_SESSION_ADD_USER_COURSE,
+                        LOG_USER_ID,
+                        $enreg_user,
+                        api_get_utc_datetime(),
+                        api_get_user_id(),
+                        $enreg_course,
+                        $sessionId
+                    );
+
                     if (Database::affected_rows($result)) {
                         $nbr_users++;
                     }
@@ -5127,7 +5118,19 @@ function WSUnsuscribeUsersFromSession($params) {
                                 session_id = '$id_session' AND
                                 user_id = '$enreg_user' AND
                                 relation_type<>".SESSION_RELATION_TYPE_RRHH."";
+
             $result = Database::query($delete_sql);
+
+            Event::addEvent(
+                LOG_SESSION_DELETE_USER,
+                LOG_USER_ID,
+                $enreg_user,
+                api_get_utc_datetime(),
+                api_get_user_id(),
+                0,
+                $id_session
+            );
+
             $return = Database::affected_rows($result);
         }
         $nbr_users = 0;
@@ -5393,6 +5396,16 @@ function WSSuscribeCoursesToSession($params) {
                         VALUES ('$id_session','$enreg_course')";
                 Database::query($sql);
 
+                Event::addEvent(
+                    LOG_SESSION_ADD_COURSE,
+                    LOG_COURSE_ID,
+                    $enreg_course,
+                    api_get_utc_datetime(),
+                    api_get_user_id(),
+                    $enreg_course,
+                    $id_session
+                );
+
                 // We add the current course in the existing courses array,
                 // to avoid adding another time the current course
                 $existingCourses[] = array('c_id' => $enreg_course);
@@ -5405,6 +5418,17 @@ function WSSuscribeCoursesToSession($params) {
                     $enreg_user_id = Database::escape_string($enreg_user['user_id']);
                     $sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user (session_id, c_id, user_id)
                             VALUES ('$id_session','$enreg_course','$enreg_user_id')";
+
+                    Event::addEvent(
+                        LOG_SESSION_ADD_USER_COURSE,
+                        LOG_USER_ID,
+                        $enreg_user_id,
+                        api_get_utc_datetime(),
+                        api_get_user_id(),
+                        $enreg_course,
+                        $id_session
+                    );
+
                     $result = Database::query($sql);
                     if (Database::affected_rows($result)) {
                         $nbr_users++;
@@ -5586,6 +5610,17 @@ function WSUnsuscribeCoursesFromSession($params)
             Database::query("DELETE FROM $tbl_session_rel_course
                             WHERE c_id ='$courseId' AND session_id='$id_session'");
             $result = Database::query("DELETE FROM $tbl_session_rel_course_rel_user WHERE c_id='$courseId' AND session_id = '$id_session'");
+
+            Event::addEvent(
+                LOG_SESSION_DELETE_COURSE,
+                LOG_COURSE_ID,
+                $courseId,
+                api_get_utc_datetime(),
+                api_get_user_id(),
+                $courseId,
+                $id_session
+            );
+
             $return = Database::affected_rows($result);
         }