Move code into a function in order to centralize code

New function added SessionManager::unSubscribeUserFromCourseSession
Also add a log when removing a user to a course-session
pull/2858/head
Julio Montoya 7 years ago
parent 27e9567223
commit debd83e01c
  1. 74
      main/inc/lib/sessionmanager.lib.php
  2. 35
      main/session/session_course_user_list.php

@ -2422,8 +2422,6 @@ class SessionManager
$session_id = (int) $session_id;
$user_id = (int) $user_id;
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
@ -2441,39 +2439,65 @@ class SessionManager
WHERE id = $session_id ";
Database::query($sql);
Event::addEvent(
LOG_SESSION_DELETE_USER,
LOG_USER_ID,
$user_id,
api_get_utc_datetime(),
api_get_user_id(),
null,
$session_id
);
// Get the list of courses related to this session
$course_list = self::get_course_list_by_session_id($session_id);
if (!empty($course_list)) {
foreach ($course_list as $course) {
$courseId = $course['id'];
// Delete user from course
$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
WHERE session_id = $session_id AND c_id = $courseId";
Database::query($sql);
}
self::unSubscribeUserFromCourseSession($user_id, $course['id'], $session_id);
}
}
return true;
}
/**
* @param int $user_id
* @param int $courseId
* @param int $session_id
*/
public static function unSubscribeUserFromCourseSession($user_id, $courseId, $session_id)
{
$user_id = (int) $user_id;
$courseId = (int) $courseId;
$session_id = (int) $session_id;
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
// Delete user from course
$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
WHERE session_id = $session_id AND c_id = $courseId";
Database::query($sql);
}
}
/**
* Subscribes courses to the given session and optionally (default)
* unsubscribe previous users.

@ -64,17 +64,11 @@ if (!list($session_name, $course_title) = Database::fetch_row($result)) {
switch ($action) {
case 'delete':
if (is_array($idChecked) && count($idChecked) > 0) {
array_map('intval', $idChecked);
$idChecked = implode(',', $idChecked);
}
if (!empty($idChecked)) {
$sql = "DELETE FROM $tbl_session_rel_course_rel_user
WHERE session_id='$id_session' AND c_id='".$courseId."' AND user_id IN($idChecked)";
$result = Database::query($sql);
$nbr_affected_rows = Database::affected_rows($result);
$sql = "UPDATE $tbl_session_rel_course SET nbr_users=nbr_users-$nbr_affected_rows
WHERE session_id='$id_session' AND c_id='".$courseId."'";
Database::query($sql);
foreach ($idChecked as $userId) {
SessionManager::unSubscribeUserFromCourseSession($userId, $courseId, $id_session);
}
} else {
SessionManager::unSubscribeUserFromCourseSession($idChecked, $courseId, $id_session);
}
header('Location: '.api_get_self()
.'?id_session='.$id_session.'&course_code='.urlencode($course_code).'&sort='.$sort);
@ -116,10 +110,10 @@ $nbr_results = sizeof($users);
$tool_name = get_lang('Session').': '.$session_name.' - '.get_lang('Course').': '.$course_title;
$interbreadcrumb[] = ["url" => "session_list.php", "name" => get_lang('SessionList')];
$interbreadcrumb[] = ['url' => 'session_list.php', 'name' => get_lang('SessionList')];
$interbreadcrumb[] = [
'url' => "resume_session.php?id_session=".$id_session,
"name" => get_lang('SessionOverview'),
'name' => get_lang('SessionOverview'),
];
Display::display_header($tool_name);
@ -158,24 +152,29 @@ echo Display::page_header($tool_name);
<?php if ($is_western_name_order) {
?>
<th>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=firstname&direction=<?php echo urlencode($direction); ?>"><?php echo get_lang('FirstName'); ?></a>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=firstname&direction=<?php echo urlencode($direction); ?>">
<?php echo get_lang('FirstName'); ?></a>
</th>
<th>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=lastname&direction=<?php echo urlencode($direction); ?>"><?php echo get_lang('LastName'); ?></a>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=lastname&direction=<?php echo urlencode($direction); ?>">
<?php echo get_lang('LastName'); ?></a>
</th>
<?php
} else {
?>
<th>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=lastname&direction=<?php echo urlencode($direction); ?>"><?php echo get_lang('LastName'); ?></a>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=lastname&direction=<?php echo urlencode($direction); ?>">
<?php echo get_lang('LastName'); ?></a>
</th>
<th>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=firstname&direction=<?php echo urlencode($direction); ?>"><?php echo get_lang('FirstName'); ?></a>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=firstname&direction=<?php echo urlencode($direction); ?>">
<?php echo get_lang('FirstName'); ?></a>
</th>
<?php
} ?>
<th>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=username&direction=<?php echo urlencode($direction); ?>"><?php echo get_lang('Login'); ?></a>
<a href="<?php echo api_get_self(); ?>?id_session=<?php echo $id_session; ?>&course_code=<?php echo urlencode($course_code); ?>&sort=username&direction=<?php echo urlencode($direction); ?>">
<?php echo get_lang('Login'); ?></a>
</th>
<th><?php echo get_lang('Actions'); ?></th>
</tr>

Loading…
Cancel
Save