$coaches_course_session = array();
    if (Database::num_rows($rs_coaches) > 0) {
        while ($row_coaches = Database::fetch_row($rs_coaches)) {
            $coaches_course_session[] = $row_coaches[0];
        }
    }
    $id_coaches = $_POST['id_coach'];
    if (is_array($id_coaches) && count($id_coaches) > 0) {
        foreach ($id_coaches as $id_coach) {
            $id_coach = intval($id_coach);
            $rs1 = SessionManager::set_coach_to_course_session($id_coach, $id_session, $courseId);
        }
        // set status to 0 other tutors from multiple list
        $array_intersect = array_diff($coaches_course_session, $id_coaches);
        foreach ($array_intersect as $no_coach_user_id) {
            $rs2 = SessionManager::set_coach_to_course_session($no_coach_user_id, $id_session, $courseId, true);
        }
        header('Location: ' . Security::remove_XSS($_GET['page']) . '?id_session=' . $id_session);
        exit;
    }
} else {
    $sql = "SELECT user_id\n\t        FROM {$tbl_session_rel_course_rel_user}\n\t        WHERE\n                session_id = '{$id_session}' AND\n                c_id = '" . $courseId . "' AND\n                status = 2 ";
    $rs = Database::query($sql);
    if (Database::num_rows($rs) > 0) {
        while ($infos = Database::fetch_array($rs)) {
            $arr_infos[] = $infos['user_id'];
        }
    }
}
$order_clause = api_sort_by_first_name() ? ' ORDER BY firstname, lastname, username' : ' ORDER BY lastname, firstname, username';
if (api_is_multiple_url_enabled()) {
                }
            }
        }
        unset($_SESSION['session_user_id']);
        unset($_SESSION['session_user_name']);
    }
}
if (isset($_POST['action'])) {
    switch ($_POST['action']) {
        case 'subscribe':
            if (is_array($_POST['user'])) {
                foreach ($_POST['user'] as $index => $user_id) {
                    $user_id = intval($user_id);
                    if (isset($_REQUEST['type']) && $_REQUEST['type'] == 'teacher') {
                        if (!empty($current_session_id)) {
                            $is_suscribe[] = SessionManager::set_coach_to_course_session($user_id, $current_session_id, $_course['sysCode']);
                        } else {
                            $is_suscribe[] = CourseManager::subscribe_user($user_id, $_course['sysCode'], COURSEMANAGER);
                        }
                    } else {
                        $is_suscribe[] = CourseManager::subscribe_user($user_id, $_course['sysCode']);
                    }
                    $is_suscribe_user_id[] = $user_id;
                }
            }
            $user_id_temp = $_SESSION['session_user_id'];
            $user_name_temp = $_SESSION['session_user_name'];
            unset($_SESSION['session_user_id']);
            unset($_SESSION['session_user_name']);
            $counter = 0;
            $is_suscribe_counter = count($is_suscribe_user_id);
Example #3
0
 /**
  * @param string $file
  */
 private function importSubscribeStatic($file)
 {
     $data = Import::csv_reader($file);
     if (!empty($data)) {
         $this->logger->addInfo(count($data) . " records found.");
         foreach ($data as $row) {
             $chamiloUserName = $row['UserName'];
             $chamiloCourseCode = $row['CourseCode'];
             $chamiloSessionId = $row['SessionID'];
             $type = $row['Type'];
             $sessionInfo = api_get_session_info($chamiloSessionId);
             if (empty($sessionInfo)) {
                 $this->logger->addError('Session does not exists: ' . $chamiloSessionId);
                 continue;
             }
             $courseInfo = api_get_course_info($chamiloCourseCode);
             if (empty($courseInfo)) {
                 $this->logger->addError('Course does not exists: ' . $courseInfo);
                 continue;
             }
             $userId = Usermanager::get_user_id_from_username($chamiloUserName);
             if (empty($userId)) {
                 $this->logger->addError('User does not exists: ' . $chamiloUserName);
                 continue;
             }
             $status = null;
             switch ($type) {
                 case 'student':
                     SessionManager::subscribe_users_to_session_course(array($userId), $chamiloSessionId, $courseInfo['code'], null, false);
                     break;
                 case 'teacher':
                     SessionManager::set_coach_to_course_session($userId, $chamiloSessionId, $courseInfo['real_id']);
                     break;
             }
             $this->logger->addError("User '{$chamiloUserName}' with status {$type} was added to session: #{$chamiloSessionId} - Course: " . $courseInfo['code']);
         }
     }
 }
Example #4
0
 /**
  * @param int $courseId
  * @param array $teachers
  * @param bool $deleteTeachersNotInList
  * @param bool $editTeacherInSessions
  * @param bool $deleteSessionTeacherNotInList
  * @return bool
  */
 public static function updateTeachers($courseId, $teachers, $deleteTeachersNotInList = true, $editTeacherInSessions = false, $deleteSessionTeacherNotInList = false, $teacherBackup = array())
 {
     if (empty($teachers)) {
         return false;
     }
     if (!is_array($teachers)) {
         $teachers = array($teachers);
     }
     $courseId = intval($courseId);
     $courseInfo = api_get_course_info_by_id($courseId);
     $course_code = $courseInfo['code'];
     $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
     $alreadyAddedTeachers = CourseManager::getTeacherListFromCourse($course_code);
     if ($deleteTeachersNotInList) {
         // Delete only teacher relations that doesn't match the selected teachers
         $cond = null;
         if (count($teachers) > 0) {
             foreach ($teachers as $key) {
                 $key = Database::escape_string($key);
                 $cond .= " AND user_id <> '" . $key . "'";
             }
         }
         $sql = 'DELETE FROM ' . $course_user_table . '
                 WHERE c_id ="' . $courseId . '" AND status="1" AND relation_type = 0 ' . $cond;
         Database::query($sql);
     }
     if (count($teachers) > 0) {
         foreach ($teachers as $userId) {
             $userId = intval($userId);
             // We check if the teacher is already subscribed in this course
             $sql = 'SELECT 1 FROM ' . $course_user_table . '
                     WHERE user_id = "' . $userId . '" AND c_id = "' . $courseId . '" ';
             $result = Database::query($sql);
             if (Database::num_rows($result)) {
                 $sql = 'UPDATE ' . $course_user_table . ' SET status = "1"
                         WHERE c_id = "' . $courseId . '" AND user_id = "' . $userId . '"  ';
             } else {
                 $userCourseCategory = '0';
                 if (isset($teacherBackup[$userId]) && isset($teacherBackup[$userId][$course_code])) {
                     $courseUserData = $teacherBackup[$userId][$course_code];
                     $userCourseCategory = $courseUserData['user_course_cat'];
                 }
                 $sql = "INSERT INTO " . $course_user_table . " SET\n                            c_id = " . $courseId . ",\n                            user_id = " . $userId . ",\n                            status = '1',\n                            is_tutor = '0',\n                            sort = '0',\n                            relation_type = '0',\n                            user_course_cat = '{$userCourseCategory}'\n                    ";
             }
             Database::query($sql);
         }
     }
     if ($editTeacherInSessions) {
         $sessions = SessionManager::get_session_by_course($courseId);
         if (!empty($sessions)) {
             foreach ($sessions as $session) {
                 // Remove old and add new
                 if ($deleteSessionTeacherNotInList) {
                     foreach ($teachers as $userId) {
                         SessionManager::set_coach_to_course_session($userId, $session['id'], $courseId);
                     }
                     $teachersToDelete = array();
                     if (!empty($alreadyAddedTeachers)) {
                         $teachersToDelete = array_diff(array_keys($alreadyAddedTeachers), $teachers);
                     }
                     if (!empty($teachersToDelete)) {
                         foreach ($teachersToDelete as $userId) {
                             SessionManager::set_coach_to_course_session($userId, $session['id'], $courseId, true);
                         }
                     }
                 } else {
                     // Add new teachers only
                     foreach ($teachers as $userId) {
                         SessionManager::set_coach_to_course_session($userId, $session['id'], $courseId);
                     }
                 }
             }
         }
     }
 }
Example #5
0
        }
        unset($_SESSION['session_user_id']);
        unset($_SESSION['session_user_name']);
    }
    header('Location:' . api_get_path(WEB_CODE_PATH) . 'user/user.php?' . api_get_cidreq() . '&type=' . $type);
    exit;
}
if (isset($_POST['action'])) {
    switch ($_POST['action']) {
        case 'subscribe':
            if (is_array($_POST['user'])) {
                foreach ($_POST['user'] as $index => $user_id) {
                    $user_id = intval($user_id);
                    if ($type == COURSEMANAGER) {
                        if (!empty($current_session_id)) {
                            $is_suscribe[] = SessionManager::set_coach_to_course_session($user_id, $current_session_id, $courseInfo['code']);
                        } else {
                            $is_suscribe[] = CourseManager::subscribe_user($user_id, $courseInfo['code'], COURSEMANAGER);
                        }
                    } else {
                        $is_suscribe[] = CourseManager::subscribe_user($user_id, $courseInfo['code']);
                    }
                    $is_suscribe_user_id[] = $user_id;
                }
            }
            $user_id_temp = $_SESSION['session_user_id'];
            $user_name_temp = $_SESSION['session_user_name'];
            unset($_SESSION['session_user_id']);
            unset($_SESSION['session_user_name']);
            $counter = 0;
            $is_suscribe_counter = count($is_suscribe_user_id);
/**
 * Subscribe teacher to a session course
 *
 * @param array $params - WSFunction parameters (include VerifyKey)
 * @return bool|null|soap_fault A simple boolean (true if teacher successful subscribed, false otherwise)
 */
function WSSubscribeTeacherToSessionCourse($params)
{
    global $debug;
    if ($debug) {
        error_log('WSSubscribeTeacherToSessionCourse');
    }
    if ($debug) {
        error_log('Params ' . print_r($params, 1));
    }
    if (!WSHelperVerifyKey($params)) {
        return return_error(WS_ERROR_SECRET_KEY);
    }
    $userId = $params['userId'];
    // Chamilo user Id
    $sessionId = $params['sessionId'];
    // Current Session course ID
    $courseId = $params['courseId'];
    // Course Real Id
    return SessionManager::set_coach_to_course_session($userId, $sessionId, $courseId);
}
 static function transaction_4($data)
 {
     $uidIdPersona = $data['item_id'];
     $uidIdPrograma = $data['orig_id'];
     $uidIdProgramaDestination = $data['dest_id'];
     $status = !empty($data['info']) ? $data['info'] : null;
     global $data_list;
     $user_id = self::get_user_id_by_persona_id($uidIdPersona, $data_list);
     if (empty($user_id)) {
         return array('message' => "User does not exists in DB: {$uidIdPersona}", 'status_id' => self::TRANSACTION_STATUS_FAILED);
     }
     //Move A to B
     if (!empty($uidIdPrograma) && !empty($uidIdProgramaDestination)) {
         $session_id = self::get_session_id_by_programa_id($uidIdPrograma, $data_list);
         $destination_session_id = self::get_session_id_by_programa_id($uidIdProgramaDestination, $data_list);
         if (!empty($session_id) && !empty($destination_session_id)) {
             $before1 = SessionManager::get_user_status_in_session($session_id, $user_id);
             $before2 = SessionManager::get_user_status_in_session($destination_session_id, $user_id);
             /*
               These constants are defined in sessionmanager but are not
               usable directly from here
               SESSION_CHANGE_USER_REASON_SCHEDULE = 1;
               SESSION_CHANGE_USER_REASON_CLASSROOM = 2;
               SESSION_CHANGE_USER_REASON_LOCATION = 3;
               SESSION_CHANGE_USER_REASON_ENROLLMENT_ANNULATION = 4;
             */
             $reason_id = 1;
             SessionManager::change_user_session($user_id, $session_id, $destination_session_id, $reason_id);
             $befores = array($before1, $before2);
             $message = "Move Session A to Session B";
             return self::check_if_user_is_subscribe_to_session($user_id, $destination_session_id, $message, $befores);
         } else {
             return array('message' => "Session ids were not correctly setup session_id 1: {$session_id} Session id 2 {$uidIdProgramaDestination} - Move Session A to Session B", 'status_id' => self::TRANSACTION_STATUS_FAILED);
         }
     }
     //Move A to empty
     if (!empty($uidIdPrograma) && empty($uidIdProgramaDestination)) {
         $session_id = self::get_session_id_by_programa_id($uidIdPrograma, $data_list);
         if (!empty($session_id)) {
             $before = SessionManager::get_user_status_in_session($session_id, $user_id);
             //SessionManager::suscribe_users_to_session($session_id, array($user_id), SESSION_VISIBLE_READ_ONLY, false, false);
             SessionManager::unsubscribe_user_from_session($session_id, $user_id);
             $message = "Move Session to empty";
             return self::check_if_user_is_subscribe_to_session($user_id, $session_id, $message, $before);
         } else {
             return array('message' => "Session does not exists in DB {$uidIdPrograma}  - Move Session to empty", 'status_id' => self::TRANSACTION_STATUS_FAILED);
         }
     }
     //Move empty to A
     if (empty($uidIdPrograma) && !empty($uidIdProgramaDestination)) {
         $session_id = self::get_session_id_by_programa_id($uidIdProgramaDestination, $data_list);
         if (!empty($session_id)) {
             $before = SessionManager::get_user_status_in_session($session_id, $user_id);
             if (isset($status) && $status == 1) {
                 $course_list = SessionManager::get_course_list_by_session_id($session_id);
                 if (!empty($course_list)) {
                     $course_data = current($course_list);
                     SessionManager::set_coach_to_course_session($user_id, $session_id, $course_data['code']);
                 } else {
                     return array('message' => 'Could not subscribe to course: no course in session ' . $uidIdProgramaDestination, 'status_id' => self::TRANSACTION_STATUS_FAILED);
                 }
             } else {
                 SessionManager::suscribe_users_to_session($session_id, array($user_id), SESSION_VISIBLE_READ_ONLY, false, false);
             }
             $message = 'Move empty to Session';
             return self::check_if_user_is_subscribe_to_session($user_id, $session_id, $message, $before);
         } else {
             return array('message' => "Session does not exists in DB {$uidIdProgramaDestination} - Move empty to Session", 'status_id' => self::TRANSACTION_STATUS_FAILED);
         }
     }
 }
/**
 * Subscribe teacher to a session course
 *
 * @param array $params - WSFunction parameters (include VerifyKey)
 * @return bool|null|soap_fault A simple boolean (true if teacher successful subscribed, false otherwise)
 */
function WSSubscribeTeacherToSessionCourse($params)
{
    global $debug;
    if ($debug) {
        error_log('WSSubscribeTeacherToSessionCourse');
    }
    if (!WSHelperVerifyKey($params)) {
        return returnError(WS_ERROR_SECRET_KEY);
    }
    if ($debug) {
        error_log('Params ' . print_r($params, 1));
    }
    $params = parseCourseSessionUserParams($params);
    $userId = $params['user_id'];
    $courseId = $params['course_id'];
    $sessionId = $params['session_id'];
    SessionManager::set_coach_to_course_session($userId, $sessionId, $courseId);
    $coaches = SessionManager::getCoachesByCourseSession($sessionId, $courseId);
    $result = 0;
    if (!empty($coaches)) {
        if ($debug) {
            error_log('Coaches:  ' . print_r($coaches, 1));
        }
        if (in_array($userId, $coaches)) {
            $result = 1;
        }
    }
    if ($debug) {
        error_log('Result:  ' . $result);
    }
    return $result;
}
Example #9
0
/**
 * Subscribe teacher to a session course
 *
 * @param array $params - WSFunction parameters (include VerifyKey)
 * @return bool|null|soap_fault A simple boolean (true if teacher successful subscribed, false otherwise)
 */
function WSSubscribeTeacherToSessionCourse($params)
{
    global $debug;
    if ($debug) {
        error_log('WSSubscribeTeacherToSessionCourse');
    }
    if ($debug) {
        error_log('Params ' . print_r($params, 1));
    }
    if (!WSHelperVerifyKey($params)) {
        return return_error(WS_ERROR_SECRET_KEY);
    }
    $params = parseCourseSessionUserParams($params);
    $userId = $params['user_id'];
    $courseId = $params['course_id'];
    $sessionId = $params['session_id'];
    return intval(SessionManager::set_coach_to_course_session($userId, $sessionId, $courseId));
}
Example #10
0
 /**
  * @param string $course_code
  * @param array $teachers
  * @param bool $deleteTeachersNotInList
  * @param bool $editTeacherInSessions
  * @param bool $deleteSessionTeacherNotInList
  * @return bool
  */
 public static function updateTeachers($course_code, $teachers, $deleteTeachersNotInList = true, $editTeacherInSessions = false, $deleteSessionTeacherNotInList = false)
 {
     if (empty($teachers)) {
         return false;
     }
     if (!is_array($teachers)) {
         $teachers = array($teachers);
     }
     $course_user_table = Database::get_main_table(TABLE_MAIN_COURSE_USER);
     $alreadyAddedTeachers = CourseManager::get_teacher_list_from_course_code($course_code);
     if ($deleteTeachersNotInList) {
         // Delete only teacher relations that doesn't match the selected teachers
         $cond = null;
         if (count($teachers) > 0) {
             foreach ($teachers as $key) {
                 $key = Database::escape_string($key);
                 $cond .= " AND user_id <> '" . $key . "'";
             }
         }
         $sql = 'DELETE FROM ' . $course_user_table . '
                 WHERE course_code="' . Database::escape_string($course_code) . '" AND status="1"' . $cond;
         Database::query($sql);
     }
     if (count($teachers) > 0) {
         foreach ($teachers as $userId) {
             $userId = intval($userId);
             // We check if the teacher is already subscribed in this course
             $sql = 'SELECT 1 FROM ' . $course_user_table . '
                     HERE user_id = "' . $userId . '" AND course_code = "' . $course_code . '" ';
             $result = Database::query($sql);
             if (Database::num_rows($result)) {
                 $sql = 'UPDATE ' . $course_user_table . ' SET status = "1"
                         WHERE course_code = "' . $course_code . '" AND user_id = "' . $userId . '"  ';
             } else {
                 $sql = "INSERT INTO " . $course_user_table . " SET\n                        course_code = '" . Database::escape_string($course_code) . "',\n                        user_id = '" . $userId . "',\n                        status = '1',\n                        role = '',\n                        tutor_id = '0',\n                        sort = '0',\n                        user_course_cat='0'";
             }
             Database::query($sql);
         }
     }
     if ($editTeacherInSessions) {
         $sessions = SessionManager::get_session_by_course($course_code);
         if (!empty($sessions)) {
             foreach ($sessions as $session) {
                 // Remove old and add new
                 if ($deleteSessionTeacherNotInList) {
                     foreach ($teachers as $userId) {
                         SessionManager::set_coach_to_course_session($userId, $session['id'], $course_code);
                     }
                     $teachersToDelete = array();
                     if (!empty($alreadyAddedTeachers)) {
                         $teachersToDelete = array_diff(array_keys($alreadyAddedTeachers), $teachers);
                     }
                     if (!empty($teachersToDelete)) {
                         foreach ($teachersToDelete as $userId) {
                             SessionManager::set_coach_to_course_session($userId, $session['id'], $course_code, true);
                         }
                     }
                 } else {
                     // Add new teachers only
                     foreach ($teachers as $userId) {
                         SessionManager::set_coach_to_course_session($userId, $session['id'], $course_code);
                     }
                 }
             }
         }
     }
 }
 /**
  * Change Teacher subscription (helper method)
  *
  * @param string User id field name
  * @param string User id value
  * @param string Session id field name
  * @param string Session id value
  * @param string Course id field name
  * @param string Course id value
  * @param int State (1 to subscribe, 0 to unsubscribe)
  * @return mixed True on success, WSError otherwise
  */
 protected function changeTeacherSubscription($user_id_field_name, $user_id_value, $session_id_field_name, $session_id_value, $course_id_field_name, $course_id_value, $state)
 {
     $session_id = $this->getSessionId($session_id_field_name, $session_id_value);
     if ($session_id instanceof WSError) {
         return $session_id;
     } else {
         $user_id = $this->getUserId($user_id_field_name, $user_id_value);
         if ($user_id instanceof WSError) {
             return $user_id;
         } else {
             $course_id = $this->getCourseId($course_id_field_name, $course_id_value);
             if ($course_id instanceof WSError) {
                 return $course_id;
             } else {
                 if ($state == 1) {
                     SessionManager::set_coach_to_course_session($user_id, $session_id, $course_id);
                 } else {
                     $user_id = array(0 => $user_id);
                     $result = SessionManager::removeUsersFromCourseSession($user_id, $session_id, $course_id);
                     if (!$result) {
                         return new WSError(303, 'There was an error unsubscribing this Teacher from the session');
                     }
                 }
                 return true;
             }
         }
     }
 }
Example #12
0
        // role is a string
        if (isset ($_REQUEST['role']))
        {
            $role=$_REQUEST['role'];
            $userProperties['role'] = $role;
        }
        */

        //get information about one user - task #3009


        if ($current_session_id) {

            $nocoach = isset($_POST['promoteTutor'])?false:true;
            $res = SessionManager::set_coach_to_course_session($userIdViewed, $current_session_id, $courseCode, $nocoach);

        } else {
            if (!empty($_POST['promoteCourseAdmin']) && $_POST['promoteCourseAdmin']){
                $userProperties['status'] = 1;
            } else{
                $userProperties['status'] = 5;
            }
            if (!empty($_POST['promoteTutor']) && $_POST['promoteTutor']){
                $userProperties['tutor'] = 1;
            } else{
                $userProperties['tutor'] = 0;
            }

            $userProperties['role'] = $_POST['role'];
            update_user_course_properties($userIdViewed, $courseCode, $userProperties);