Group: Add audit of create/delete/subscribe to classes - refs BT#20025

pull/4346/head
Yannick Warnier 3 years ago
parent 1a3a8cfbfd
commit d122a0fb76
  1. 4
      main/inc/lib/api.lib.php
  2. 102
      main/inc/lib/usergroup.lib.php

@ -192,6 +192,10 @@ define('LOG_GROUP_PORTAL_REL_USER_ARRAY', 'soc_gr_user_array');
define('LOG_GROUP_PORTAL_USER_SUBSCRIBED', 'soc_gr_u_subs');
define('LOG_GROUP_PORTAL_USER_UNSUBSCRIBED', 'soc_gr_u_unsubs');
define('LOG_GROUP_PORTAL_USER_UPDATE_ROLE', 'soc_gr_update_role');
define('LOG_GROUP_PORTAL_COURSE_SUBSCRIBED', 'soc_gr_c_subs');
define('LOG_GROUP_PORTAL_COURSE_UNSUBSCRIBED', 'soc_gr_c_unsubs');
define('LOG_GROUP_PORTAL_SESSION_SUBSCRIBED', 'soc_gr_s_subs');
define('LOG_GROUP_PORTAL_SESSION_UNSUBSCRIBED', 'soc_gr_s_unsubs');
define('LOG_USER_DELETE', 'user_deleted');
define('LOG_USER_CREATE', 'user_created');

@ -937,6 +937,7 @@ class UserGroup extends Model
// Deleting items
if (!empty($delete_items)) {
$sessions = '';
foreach ($delete_items as $session_id) {
if (!empty($user_list)) {
foreach ($user_list as $user_id) {
@ -947,10 +948,20 @@ class UserGroup extends Model
$this->usergroup_rel_session_table,
['usergroup_id = ? AND session_id = ?' => [$usergroup_id, $session_id]]
);
$sessions .= $session_id.',';
}
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_SESSION_UNSUBSCRIBED,
LOG_GROUP_PORTAL_ID,
'gid: '.$usergroup_id.' - sids: '.substr($sessions, 0, -1),
api_get_utc_datetime(),
api_get_user_id()
);
}
}
$sessions = '';
// Adding new relationships.
if (!empty($new_items)) {
foreach ($new_items as $session_id) {
@ -964,8 +975,17 @@ class UserGroup extends Model
null,
false
);
$sessions .= $session_id.',';
}
}
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_SESSION_SUBSCRIBED,
LOG_GROUP_PORTAL_ID,
'gid: '.$usergroup_id.' - sids: '.substr($sessions, 0, -1),
api_get_utc_datetime(),
api_get_user_id()
);
}
}
@ -1004,6 +1024,7 @@ class UserGroup extends Model
// Adding new relationships
if (!empty($new_items)) {
$courses = '';
foreach ($new_items as $course_id) {
$course_info = api_get_course_info_by_id($course_id);
if ($course_info) {
@ -1024,7 +1045,16 @@ class UserGroup extends Model
$params
);
}
}
$courses .= $course_id.',';
}
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_COURSE_SUBSCRIBED,
LOG_GROUP_PORTAL_ID,
'gid: '.$usergroup_id.' - cids: '.substr($courses, 0, -1),
api_get_utc_datetime(),
api_get_user_id()
);
}
}
@ -1037,6 +1067,7 @@ class UserGroup extends Model
// Deleting items.
if (!empty($delete_items)) {
$user_list = $this->get_users_by_usergroup($usergroup_id);
$courses = '';
foreach ($delete_items as $course_id) {
$course_info = api_get_course_info_by_id($course_id);
if ($course_info) {
@ -1058,8 +1089,17 @@ class UserGroup extends Model
],
]
);
$courses .= $course_id.',';
}
}
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_COURSE_UNSUBSCRIBED,
LOG_GROUP_PORTAL_ID,
'gid: '.$usergroup_id.' - cids: '.substr($courses, 0, -1),
api_get_utc_datetime(),
api_get_user_id()
);
}
}
@ -1459,6 +1499,14 @@ class UserGroup extends Model
$this->update($params);
}
}
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_CREATED,
LOG_GROUP_PORTAL_ID,
'id: '.$id,
api_get_utc_datetime(),
api_get_user_id()
);
return $id;
}
@ -1494,6 +1542,14 @@ class UserGroup extends Model
if (isset($values['delete_picture'])) {
$this->delete_group_picture($values['id']);
}
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_UPDATED,
LOG_GROUP_PORTAL_ID,
'id: '.$values['id'],
api_get_utc_datetime(),
api_get_user_id()
);
return true;
}
@ -1693,6 +1749,14 @@ class UserGroup extends Model
Database::query($sql);
parent::delete($id);
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_DELETED,
LOG_GROUP_PORTAL_ID,
'id: '.$id,
api_get_utc_datetime(),
api_get_user_id()
);
}
/**
@ -2170,6 +2234,7 @@ class UserGroup extends Model
if (is_array($user_list) && is_array($group_list)) {
foreach ($group_list as $group_id) {
$usersList = '';
foreach ($user_list as $user_id) {
$user_id = (int) $user_id;
$group_id = (int) $group_id;
@ -2189,7 +2254,16 @@ class UserGroup extends Model
$result_array[$group_id][$user_id] = 0;
}
}
$usersList .= $user_id.',';
}
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_USER_SUBSCRIBED,
LOG_GROUP_PORTAL_ID,
'gid: '.$group_id.' - uids: '.substr($usersList, 0, -1),
api_get_utc_datetime(),
api_get_user_id()
);
}
}
@ -2221,7 +2295,14 @@ class UserGroup extends Model
usergroup_id = $groupId";
$result = Database::query($sql);
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_USER_UNSUBSCRIBED,
LOG_GROUP_PORTAL_ID,
'gid: '.$groupId.' - uid: '.$userId,
api_get_utc_datetime(),
api_get_user_id()
);
return $result;
}
@ -2239,16 +2320,27 @@ class UserGroup extends Model
public function add_user_to_group($user_id, $group_id, $relation_type = GROUP_USER_PERMISSION_READER)
{
$table_url_rel_group = $this->usergroup_rel_user_table;
$user_id = (int) $user_id;
$group_id = (int) $group_id;
$relation_type = (int) $relation_type;
if (!empty($user_id) && !empty($group_id)) {
$role = $this->get_user_group_role($user_id, $group_id);
if ($role == 0) {
$sql = "INSERT INTO $table_url_rel_group
SET
user_id = ".intval($user_id).",
usergroup_id = ".intval($group_id).",
relation_type = ".intval($relation_type);
user_id = ".$user_id.",
usergroup_id = ".$group_id.",
relation_type = ".$relation_type;
Database::query($sql);
// Add event to system log
Event::addEvent(
LOG_GROUP_PORTAL_USER_SUBSCRIBED,
LOG_GROUP_PORTAL_ID,
'gid: '.$group_id.' - uid: '.$user_id,
api_get_utc_datetime(),
api_get_user_id()
);
} elseif ($role == GROUP_USER_PERMISSION_PENDING_INVITATION) {
//if somebody already invited me I can be added
self::update_user_role($user_id, $group_id, GROUP_USER_PERMISSION_READER);

Loading…
Cancel
Save