Fixing add users, courses and sessions see BT#2021

skala
Julio Montoya 15 years ago
parent f50dcc6390
commit 25b68c938e
  1. 1
      main/admin/add_courses_to_usergroup.php
  2. 1
      main/inc/lib/text.lib.php
  3. 108
      main/inc/lib/usergroup.lib.php

@ -89,7 +89,6 @@ if($_POST['form_sent']) {
$elements_posted=array();
}
if ($form_sent == 1) {
//added a parameter to send emails when registering a user
$usergroup->subscribe_courses_to_usergroup($id, $elements_posted);
header('Location: usergroups.php');
exit;

@ -582,6 +582,7 @@ function float_format($number, $flag = 1) {
if (!$number) {
$result = ($flag == 2 ? '0.00' : '0');
} else {
if (floor($number) == $number) {
$result = number_format($number, ($flag == 2 ? 2 : 0));
} else {

@ -8,6 +8,7 @@
*/
require_once 'model.lib.php';
require_once api_get_path(LIBRARY_PATH).'sessionmanager.lib.php';
class UserGroup extends Model {
@ -125,13 +126,16 @@ class UserGroup extends Model {
//Deleting items
if (!empty($delete_items)) {
foreach($delete_items as $session_id) {
foreach($user_list as $user_id) {
SessionManager::unsubscribe_user_from_session($session_id, $user_id);
/*foreach ($course_list as $course_data) {
foreach($user_list as $user_id) {
CourseManager::subscribe_user($user_id, $course_data['code'], $session_id);
}
}*/
if (!empty($user_list)) {
foreach($user_list as $user_id) {
SessionManager::unsubscribe_user_from_session($session_id, $user_id);
/*foreach ($course_list as $course_data) {
foreach($user_list as $user_id) {
CourseManager::subscribe_user($user_id, $course_data['code'], $session_id);
}
}*/
}
}
Database::delete($this->usergroup_rel_session_table, array('usergroup_id = ? AND session_id = ?'=>array($usergroup_id, $session_id)));
}
@ -139,10 +143,13 @@ class UserGroup extends Model {
//Addding new relationships
if (!empty($new_items)) {
foreach($new_items as $id) {
$params = array('session_id'=>$id, 'usergroup_id'=>$usergroup_id);
Database::insert($this->usergroup_rel_session_table, $params);
SessionManager::suscribe_users_to_session($session_id, $user_list);
foreach($new_items as $session_id) {
$params = array('session_id'=>$session_id, 'usergroup_id'=>$usergroup_id);
Database::insert($this->usergroup_rel_session_table, $params);
if (!empty($user_list)) {
SessionManager::suscribe_users_to_session($session_id, $user_list);
}
/*
$course_list = SessionManager::get_course_list_by_session_id($id);
foreach ($course_list as $course_data) {
@ -185,8 +192,10 @@ class UserGroup extends Model {
if (!empty($delete_items)) {
foreach($delete_items as $course_id) {
$course_info = api_get_course_info_by_id($course_id);
foreach($user_list as $user_id) {
CourseManager::unsubscribe_user($user_id, $course_info['code']);
if (!empty($user_list)) {
foreach($user_list as $user_id) {
CourseManager::unsubscribe_user($user_id, $course_info['code']);
}
}
Database::delete($this->usergroup_rel_course_table, array('usergroup_id = ? AND course_id = ?'=>array($usergroup_id, $course_id)));
}
@ -196,12 +205,13 @@ class UserGroup extends Model {
if (!empty($new_items)) {
foreach($new_items as $course_id) {
$course_info = api_get_course_info_by_id($course_id);
foreach($user_list as $user_id) {
CourseManager::subscribe_user($user_id, $course_info['code']);
if (!empty($user_list)) {
foreach($user_list as $user_id) {
CourseManager::subscribe_user($user_id, $course_info['code']);
}
}
$params = array('course_id'=>$id, 'usergroup_id'=>$usergroup_id);
$params = array('course_id'=>$course_id, 'usergroup_id'=>$usergroup_id);
Database::insert($this->usergroup_rel_course_table, $params);
}
}
@ -213,15 +223,65 @@ class UserGroup extends Model {
* @param array list of user ids
*/
function subscribe_users_to_usergroup($usergroup_id, $list) {
$user_list = self::get_users_by_usergroup($usergroup_id);
$current_list = self::get_users_by_usergroup($usergroup_id);
$course_list = self::get_courses_by_usergroup($usergroup_id);
$session_list = self::get_sessions_by_usergroup($usergroup_id);
$delete_items = $new_items = array();
if (!empty($list)) {
foreach ($list as $user_id) {
if (!in_array($user_id, $current_list)) {
$new_items[] = $user_id;
}
}
}
if (!empty($current_list)) {
foreach($current_list as $user_id) {
if (!in_array($user_id, $list)) {
$delete_items[] = $user_id;
}
}
}
//Deleting items
if (!empty($delete_items)) {
foreach($delete_items as $user_id) {
//Removing courses
if (!empty($course_list)) {
foreach($course_list as $course_id) {
$course_info = api_get_course_info_by_id($course_id);
CourseManager::unsubscribe_user($user_id, $course_info['code']);
}
}
//Removing sessions
if (!empty($session_list)) {
foreach($session_list as $session_id) {
SessionManager::unsubscribe_user_from_session($session_id, $user_id);
}
}
//Deleting relationships
Database::delete($this->usergroup_rel_user_table, array('usergroup_id = ?'=>$usergroup_id));
Database::delete($this->usergroup_rel_user_table, array('usergroup_id = ? AND user_id = ?'=>array($usergroup_id, $user_id)));
}
}
//Adding new relationships
if (!empty($list)) {
foreach($list as $id) {
$params = array('user_id'=>$id, 'usergroup_id'=>$usergroup_id);
//Addding new relationships
if (!empty($new_items)) {
//Adding sessions
if (!empty($session_list)) {
foreach($session_list as $session_id) {
SessionManager::suscribe_users_to_session($session_id, $new_items);
}
}
foreach($new_items as $user_id) {
//Adding courses
if (!empty($course_list)) {
foreach($course_list as $course_id) {
$course_info = api_get_course_info_by_id($course_id);
CourseManager::subscribe_user($user_id, $course_info['code']);
}
}
$params = array('user_id'=>$user_id, 'usergroup_id'=>$usergroup_id);
Database::insert($this->usergroup_rel_user_table, $params);
}
}

Loading…
Cancel
Save