Fixing bug when relating users to sessions

skala
Julio Montoya 15 years ago
parent d8bf65ea82
commit d6c7c3de43
  1. 6
      main/admin/add_users_to_session.php
  2. 34
      main/inc/lib/sessionmanager.lib.php

@ -88,9 +88,9 @@ function search_users($needle, $type) {
$order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username';
$cond_user_id = '';
if (!empty($id_session)) {
$id_session = Database::escape_string($id_session);
$id_session = intval($id_session);
// check id_user from session_rel_user table
$sql = 'SELECT id_user FROM '.$tbl_session_rel_user.' WHERE id_session ="'.(int)$id_session.'" AND relation_type<>'.SESSION_RELATION_TYPE_RRHH.' ';
$sql = 'SELECT id_user FROM '.$tbl_session_rel_user.' WHERE id_session ="'.$id_session.'" AND relation_type<>'.SESSION_RELATION_TYPE_RRHH.' ';
$res = Database::query($sql);
$user_ids = array();
if (Database::num_rows($res) > 0) {
@ -229,7 +229,7 @@ if($_POST['form_sent']) {
if ($form_sent == 1) {
//added a parameter to send emails when registering a user
SessionManager::suscribe_users_to_session($id_session,$UserList,true,true);
SessionManager::suscribe_users_to_session($id_session, $UserList, null, true);
//adding the session to the access_url_rel_session table

@ -401,7 +401,7 @@ class SessionManager {
* @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,$user_list, $visibility=SESSION_VISIBLE_READ_ONLY, $empty_users=true,$send_email=false) {
public static function suscribe_users_to_session($id_session, $user_list, $session_visibility = SESSION_VISIBLE_READ_ONLY, $empty_users=true, $send_email=false) {
if ($id_session!= strval(intval($id_session))) return false;
foreach($user_list as $intUser){
@ -416,15 +416,17 @@ class SessionManager {
$session_name = $session_info['name'];
//from function parameter
$session_visibility = $visibility;
if (empty($session_visibility)) {
$session_visivility = $session_info['visibility']; //loaded from DB
$session_visibility = $session_info['visibility']; //loaded from DB
//default status loaded if empty
if (empty($session_visivility))
if (empty($session_visibility))
$session_visibility = SESSION_VISIBLE_READ_ONLY; // by default readonly 1
} else {
if (!in_array($session_visibility, array(SESSION_VISIBLE_READ_ONLY, SESSION_VISIBLE, SESSION_INVISIBLE))) {
$session_visibility = SESSION_VISIBLE_READ_ONLY;
}
}
//$sql = "SELECT id_user FROM $tbl_session_rel_user WHERE id_session='$id_session' AND relation_type<>".SESSION_RELATION_TYPE_RRHH."";
$sql = "SELECT id_user FROM $tbl_session_rel_course_rel_user WHERE id_session = '$id_session' ";
$result = Database::query($sql);
@ -442,7 +444,7 @@ class SessionManager {
if ($send_email) {
global $_configuration;
//global $_configuration;
//sending emails only
if(is_array($user_list) && count($user_list)>0) {
foreach($user_list as $enreg_user) {
@ -461,15 +463,15 @@ class SessionManager {
$emailheaders = 'From: '.get_setting('administratorName').' '.get_setting('administratorSurname').' <'.get_setting('emailAdministrator').">\n";
$emailheaders .= 'Reply-To: '.get_setting('emailAdministrator');
if ($_configuration['multiple_access_urls']) {
/*if (api_get_multiple_access_url()) {
$access_url_id = api_get_current_access_url_id();
if ($access_url_id != -1 ){
if ($access_url_id){
$url = api_get_access_url($access_url_id);
$emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".sprintf(get_lang('YouAreRegisterToSessionX'),$session_name) ." \n\n" .get_lang('Address') ." ". get_setting('siteName') ." ". get_lang('Is') ." : ". $url['url'] ."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".get_setting('administratorName')." ".get_setting('administratorSurname')."\n". get_lang('Manager'). " ".get_setting('siteName')."\nT. ".get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".get_setting('emailAdministrator');
}
} else {
$emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".sprintf(get_lang('YouAreRegisterToSessionX'),$session_name) ." \n\n" .get_lang('Address') ." ". get_setting('siteName') ." ". get_lang('Is') ." : ". $_configuration['root_web'] ."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".get_setting('administratorName')." ".get_setting('administratorSurname')."\n". get_lang('Manager'). " ".get_setting('siteName')."\nT. ".get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".get_setting('emailAdministrator');
}
} else {*/
$emailbody = get_lang('Dear')." ".stripslashes(api_get_person_name($firstname, $lastname)).",\n\n".sprintf(get_lang('YouAreRegisterToSessionX'), $session_name) ." \n\n" .get_lang('Address') ." ". get_setting('siteName') ." ". get_lang('Is') ." : ". api_get_path(WEB_PATH) ."\n\n". get_lang('Problem'). "\n\n". get_lang('Formula').",\n\n".get_setting('administratorName')." ".get_setting('administratorSurname')."\n". get_lang('Manager'). " ".get_setting('siteName')."\nT. ".get_setting('administratorTelephone')."\n" .get_lang('Email') ." : ".get_setting('emailAdministrator');
//}
@api_send_mail($emailto, $emailsubject, $emailbody, $emailheaders);
@ -483,10 +485,10 @@ class SessionManager {
$nbr_users=0;
$enreg_course = Database::escape_string($enreg_course);
// delete existing users
if ($empty_users!==false) {
if ($empty_users) {
foreach ($existingUsers as $existing_user) {
if (!in_array($existing_user, $user_list)) {
$sql = "DELETE FROM $tbl_session_rel_course_rel_user WHERE id_session='$id_session' AND course_code='$enreg_course' AND id_user='$existing_user' AND status != 2 ";
$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);
if (Database::affected_rows()) {
$nbr_users--;
@ -494,11 +496,12 @@ class SessionManager {
}
}
}
// 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);
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,course_code,id_user,visibility) VALUES('$id_session','$enreg_course','$enreg_user','$session_visivility')";
$insert_sql = "INSERT IGNORE INTO $tbl_session_rel_course_rel_user(id_session,course_code,id_user,visibility) VALUES('$id_session','$enreg_course','$enreg_user','$session_visibility')";
Database::query($insert_sql);
if(Database::affected_rows()) {
$nbr_users++;
@ -1542,7 +1545,8 @@ class SessionManager {
}
}
$users = null;
$res = self::suscribe_users_to_session($sid, $short_users, 1, true, false);
//Subscribing in read only mode
$res = self::suscribe_users_to_session($sid, $short_users, SESSION_VISIBLE_READ_ONLY, true, false);
$short_users = null;
}
return $sid;

Loading…
Cancel
Save