Exemplo n.º 1
0
 /**
  * Unsubscribe one or more users from a course
  *
  * @param   mixed   user_id or an array with user ids
  * @param   string  course code
  * @param   int     session id
  * @assert ('', '') === false
  *
  */
 public static function unsubscribe_user($user_id, $course_code, $session_id = 0)
 {
     if (!is_array($user_id)) {
         $user_id = array($user_id);
     }
     if (count($user_id) == 0) {
         return;
     }
     if (!empty($session_id)) {
         $session_id = intval($session_id);
     } else {
         $session_id = api_get_session_id();
     }
     $user_list = array();
     // Cleaning the $user_id variable
     if (is_array($user_id)) {
         $new_user_id_list = array();
         foreach ($user_id as $my_user_id) {
             $new_user_id_list[] = intval($my_user_id);
         }
         $new_user_id_list = array_filter($new_user_id_list);
         $user_list = $new_user_id_list;
         $user_ids = implode(',', $new_user_id_list);
     } else {
         $user_ids = intval($user_id);
         $user_list[] = $user_id;
     }
     $course_info = api_get_course_info($course_code);
     $course_id = $course_info['real_id'];
     // Unsubscribe user from all groups in the course.
     $sql = "DELETE FROM " . Database::get_course_table(TABLE_GROUP_USER) . "\n                WHERE c_id = {$course_id} AND user_id IN (" . $user_ids . ")";
     Database::query($sql);
     $sql = "DELETE FROM " . Database::get_course_table(TABLE_GROUP_TUTOR) . "\n                WHERE c_id = {$course_id} AND user_id IN (" . $user_ids . ")";
     Database::query($sql);
     // Erase user student publications (works) in the course - by André Boivin
     if (!empty($user_list)) {
         require_once api_get_path(SYS_CODE_PATH) . 'work/work.lib.php';
         foreach ($user_list as $userId) {
             // Getting all work from user
             $workList = getWorkPerUser($userId);
             if (!empty($workList)) {
                 foreach ($workList as $work) {
                     $work = $work['work'];
                     // Getting user results
                     if (!empty($work->user_results)) {
                         foreach ($work->user_results as $workSent) {
                             deleteWorkItem($workSent['id'], $course_info);
                         }
                     }
                 }
             }
         }
     }
     // Unsubscribe user from all blogs in the course.
     Database::query("DELETE FROM " . Database::get_course_table(TABLE_BLOGS_REL_USER) . " WHERE c_id = {$course_id} AND  user_id IN (" . $user_ids . ")");
     Database::query("DELETE FROM " . Database::get_course_table(TABLE_BLOGS_TASKS_REL_USER) . " WHERE c_id = {$course_id} AND  user_id IN (" . $user_ids . ")");
     // Deleting users in forum_notification and mailqueue course tables
     $sql = "DELETE FROM  " . Database::get_course_table(TABLE_FORUM_NOTIFICATION) . "\n                WHERE c_id = {$course_id} AND user_id IN (" . $user_ids . ")";
     Database::query($sql);
     $sql = "DELETE FROM " . Database::get_course_table(TABLE_FORUM_MAIL_QUEUE) . "\n                WHERE c_id = {$course_id} AND user_id IN (" . $user_ids . ")";
     Database::query($sql);
     // Unsubscribe user from the course.
     if (!empty($session_id)) {
         // Delete in table session_rel_course_rel_user
         $sql = "DELETE FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . "\n                    WHERE\n                        session_id ='" . $session_id . "' AND\n                        c_id = '" . $course_id . "' AND\n                        user_id IN ({$user_ids})";
         Database::query($sql);
         foreach ($user_list as $uid) {
             // check if a user is register in the session with other course
             $sql = "SELECT user_id FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . "\n                        WHERE session_id='{$session_id}' AND user_id='{$uid}'";
             $rs = Database::query($sql);
             if (Database::num_rows($rs) == 0) {
                 // Delete in table session_rel_user
                 $sql = "DELETE FROM " . Database::get_main_table(TABLE_MAIN_SESSION_USER) . "\n                            WHERE\n                                session_id ='" . $session_id . "' AND\n                                user_id = '{$uid}' AND\n                                relation_type<>" . SESSION_RELATION_TYPE_RRHH . "";
                 Database::query($sql);
             }
         }
         // Update the table session
         $sql = "SELECT COUNT(*) FROM " . Database::get_main_table(TABLE_MAIN_SESSION_USER) . "\n                    WHERE session_id = '" . $session_id . "' AND relation_type <> " . SESSION_RELATION_TYPE_RRHH;
         $row = Database::fetch_array(Database::query($sql));
         $count = $row[0];
         // number of users by session
         $sql = "UPDATE " . Database::get_main_table(TABLE_MAIN_SESSION) . " SET nbr_users = '{$count}'\n                    WHERE id = '" . $session_id . "'";
         Database::query($sql);
         // Update the table session_rel_course
         $sql = "SELECT COUNT(*) FROM " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE_USER) . "\n                    WHERE session_id = '{$session_id}' AND c_id = '{$course_id}' AND status<>2";
         $row = Database::fetch_array(@Database::query($sql));
         $count = $row[0];
         // number of users by session and course
         $sql = "UPDATE " . Database::get_main_table(TABLE_MAIN_SESSION_COURSE) . "\n                    SET nbr_users = '{$count}'\n                    WHERE session_id = '{$session_id}' AND c_id = '{$course_id}'";
         Database::query($sql);
     } else {
         $sql = "DELETE FROM " . Database::get_main_table(TABLE_MAIN_COURSE_USER) . "\n                    WHERE\n                        user_id IN (" . $user_ids . ") AND\n                        relation_type<>" . COURSE_RELATION_TYPE_RRHH . " AND\n                        c_id = '" . $course_id . "'";
         Database::query($sql);
         // add event to system log
         $user_id = api_get_user_id();
         Event::addEvent(LOG_UNSUBSCRIBE_USER_FROM_COURSE, LOG_COURSE_CODE, $course_code, api_get_utc_datetime(), $user_id);
         foreach ($user_list as $userId) {
             $userInfo = api_get_user_info($userId);
             Event::addEvent(LOG_UNSUBSCRIBE_USER_FROM_COURSE, LOG_USER_OBJECT, $userInfo, api_get_utc_datetime(), $user_id);
         }
     }
 }
Exemplo n.º 2
0
$error_message = Session::read('error_message');
if (!empty($error_message)) {
    echo $error_message;
    Session::erase('error_message');
}

if (!empty($my_folder_data['description'])) {
    echo '<p><div><strong>'.get_lang('Description').':</strong><p>'.Security::remove_XSS($my_folder_data['description']).'</p></div></p>';
}

$action = isset($_REQUEST['action']) ? $_REQUEST['action'] : null;
$item_id = isset($_REQUEST['item_id']) ? intval($_REQUEST['item_id']) : null;

switch ($action) {
    case 'delete':
        $fileDeleted = deleteWorkItem($item_id, $courseInfo);

        if (!$fileDeleted) {
            Display::display_error_message(get_lang('YouAreNotAllowedToDeleteThisDocument'));
        } else {
            Display::display_confirmation_message(get_lang('TheDocumentHasBeenDeleted'));
        }
        break;
}

$result = getWorkDateValidationStatus($work_data);
echo $result['message'];
$check_qualification = intval($my_folder_data['qualification']);

if (!empty($work_data['enable_qualification']) && !empty($check_qualification)) {
    $type = 'simple';
Exemplo n.º 3
0
/**
 * Delete all work by student
 * @param int $userId
 * @param array $courseInfo
 * @return array return deleted items
 */
function deleteAllWorkPerUser($userId, $courseInfo)
{
    $deletedItems = array();
    $workPerUser = getWorkPerUser($userId);
    if (!empty($workPerUser)) {
        foreach ($workPerUser as $work) {
            $work = $work['work'];
            foreach ($work->user_results as $userResult) {
                $result = deleteWorkItem($userResult['id'], $courseInfo);
                if ($result) {
                    $deletedItems[] = $userResult;
                }
            }
        }
    }
    return $deletedItems;
}