suscribe_users_to_session() function already defined in sessionmanager.lib.php

skala
Julio Montoya 15 years ago
parent 2e9dddf4be
commit 25a65810ea
  1. 90
      main/inc/lib/usermanager.lib.php

@ -2065,95 +2065,7 @@ class UserManager
$row = Database::fetch_array($res, 'ASSOC');
return $row['id'];
}
/**
* Subscribes users to the given session and optionally (default) unsubscribes previous users
* @param int Session ID
* @param array List of user IDs
* @param bool Whether to unsubscribe existing users (true, default) or not (false)
* @return void Nothing, or false on error
*/
public static function suscribe_users_to_session($id_session, $UserList, $empty_users = true) {
if ($id_session != strval(intval($id_session))) return false;
foreach ($UserList as $intUser) {
if ($intUser != strval(intval($intUser))) return false;
}
$tbl_session_rel_course = Database::get_main_table(TABLE_MAIN_SESSION_COURSE);
$tbl_session_rel_course_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER);
$tbl_session_rel_user = Database::get_main_table(TABLE_MAIN_SESSION_USER);
$tbl_session = Database::get_main_table(TABLE_MAIN_SESSION);
$sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session'";
$result = Database::query($sql, __FILE__, __LINE__);
$existingUsers = array();
while($row = Database::fetch_array($result)) {
$existingUsers[] = $row['id_user'];
}
$sql = "SELECT course_code FROM $tbl_session_rel_course WHERE id_session='$id_session'";
$result = Database::query($sql, __FILE__, __LINE__);
$CourseList = array();
while($row = Database::fetch_array($result)) {
$CourseList[] = $row['course_code'];
}
foreach ($CourseList as $enreg_course) {
// for each course in the session
$nbr_users = 0;
$enreg_course = Database::escape_string($enreg_course);
// delete existing users
if ($empty_users !== false) {
foreach ($existingUsers as $existing_user) {
if(!in_array($existing_user, $UserList)) {
$sql = "DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code='$enreg_course' AND id_user='$existing_user'";
Database::query($sql, __FILE__, __LINE__);
if (Database::affected_rows()) {
$nbr_users--;
}
}
}
}
// insert new users into session_rel_course_rel_user and ignore if they already exist
foreach ($UserList as $enreg_user) {
if (!in_array($enreg_user, $existingUsers)) {
$enreg_user = Database::escape_string($enreg_user);
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,course_code,id_user) VALUES('$id_session','$enreg_course','$enreg_user')";
Database::query($insert_sql, __FILE__, __LINE__);
if (Database::affected_rows()) {
$nbr_users++;
}
}
}
// count users in this session-course relation
$sql = "SELECT COUNT(id_user) as nbUsers FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code='$enreg_course'";
$rs = Database::query($sql, __FILE__, __LINE__);
list($nbr_users) = Database::fetch_array($rs);
// update the session-course relation to add the users total
$update_sql = "UPDATE $tbl_session_rel_course SET nbr_users=$nbr_users WHERE id_session='$id_session' AND course_code='$enreg_course'";
Database::query($update_sql, __FILE__, __LINE__);
}
// delete users from the session
if ($empty_users !== false) {
Database::query("DELETE FROM $tbl_session_rel_user WHERE id_session = $id_session", __FILE__, __LINE__);
}
// insert missing users into session
$nbr_users = 0;
foreach ($UserList as $enreg_user) {
$enreg_user = Database::escape_string($enreg_user);
$nbr_users++;
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_user(id_session, id_user) VALUES('$id_session','$enreg_user')";
Database::query($insert_sql, __FILE__, __LINE__);
}
// update number of users in the session
$nbr_users = count($UserList);
$update_sql = "UPDATE $tbl_session SET nbr_users= $nbr_users WHERE id='$id_session' ";
Database::query($update_sql, __FILE__, __LINE__);
}
/**
* Checks if a user_id is platform admin
* @param int user ID

Loading…
Cancel
Save