Example #1
0
/**
 * This function calculates the users to be added to backup based in the
 * settings defined at backup. All the resulting user ids are sent to
 * backup_ids for later usage.
 * @param int $courseid id of the course to backup
 * @param int $backup_unique_code unique code of the backup being executed
 * @param int $backup_unique_code setting specifying what users to export (0=all, 1=needed, 2=none)
 * @param int $backup_messages flag (true/false) defining if messages must be
 *                             considered to extract needed users
 * @param int $backup_blogs flag (true/false) defining if blogs must be
 *                          considered to extract needed users
 * @return array one array (key, value) sumarizing the result of the function (number of users)
 */
function user_check_backup($courseid, $backup_unique_code, $backup_users, $backup_messages, $backup_blogs)
{
    global $DB;
    $context = get_context_instance(CONTEXT_COURSE, $courseid);
    $count_users = 0;
    $backupable_users = array();
    if ($backup_users == 0) {
        /// All users
        $backupable_users = backup_get_all_users();
    } else {
        if ($backup_users == 1) {
            /// Needed users
            /// Calculate needed users (calling every xxxx_get_participants function + scales users
            /// + messages users + blogs users)
            $needed_users = backup_get_needed_users($courseid, $backup_messages, $backup_blogs);
            /// Calculate enrolled users (having course:view cap)
            $enrolled_users = backup_get_enrolled_users($courseid);
            /// Calculate backupable users (needed + enrolled)
            /// First, needed
            $backupable_users = $needed_users;
            /// Now, enrolled
            if ($enrolled_users) {
                foreach ($enrolled_users as $enrolled_user) {
                    $backupable_users[$enrolled_user->id]->id = $enrolled_user->id;
                }
            }
        }
    }
    /// If we have backupable users
    if ($backupable_users) {
        /// Iterate over users putting their roles
        foreach ($backupable_users as $backupable_user) {
            $backupable_user->info = "";
            /// Is needed user or enrolled user, mark it as needed
            if (isset($needed_users[$backupable_user->id]) || isset($enrolled_users[$backupable_user->id])) {
                $backupable_user->info .= "needed";
            }
            ///  Yu: also needed because they can view course
            /// might need another variable
            /// Now create the backup_id record
            $backupids_rec->backup_code = $backup_unique_code;
            $backupids_rec->table_name = "user";
            $backupids_rec->old_id = $backupable_user->id;
            $backupids_rec->info = $backupable_user->info;
            /// TODO: Change this call inserting to a standard backup_putid() call
            /// And read data acordingly with backup_getid() when needed.
            /// TODO: Also analyse it the "needed" info is really needed for anything. Drop if not.
            /// Insert the user to the backup_ids table. backup_user_info() will use that info
            $status = $DB->insert_record('backup_ids', $backupids_rec, false);
            $count_users++;
        }
        /// Do some output
        backup_flush(30);
    }
    /// Prepare Info
    /// Gets the user data
    $info[0][0] = get_string("users");
    $info[0][1] = $count_users;
    return $info;
}
function user_check_backup($course, $backup_unique_code, $backup_users, $backup_messages)
{
    //$backup_users=0-->all
    //              1-->course (needed + enrolled)
    //              2-->none
    global $db, $CFG;
    $context = get_context_instance(CONTEXT_COURSE, $course);
    $count_users = 0;
    //If we've selected none, simply return 0
    if ($backup_users == 0 or $backup_users == 1) {
        //Now, depending of parameters, create $backupable_users
        if ($backup_users == 0) {
            //Calculate all users (every record in users table)
            $all_users = backup_get_all_users();
            $backupable_users = $all_users;
        } else {
            //Calculate needed users (calling every xxxx_get_participants function + scales users)
            $needed_users = backup_get_needed_users($course, $backup_messages);
            //Calculate enrolled users (students + teachers)
            $enrolled_users = backup_get_enrolled_users($course);
            //Calculate course users (needed + enrolled)
            //First, needed
            $course_users = $needed_users;
            //Now, enrolled
            if ($enrolled_users) {
                foreach ($enrolled_users as $enrolled_user) {
                    $course_users[$enrolled_user->id]->id = $enrolled_user->id;
                }
            }
            $backupable_users = $course_users;
        }
        //If we have backupable users
        if ($backupable_users) {
            //Iterate over users putting their roles
            foreach ($backupable_users as $backupable_user) {
                $backupable_user->info = "";
                //Is needed user (exists in needed_users)
                if (isset($needed_users[$backupable_user->id])) {
                    $backupable_user->info .= "needed";
                } else {
                    if (isset($course_users[$backupable_user->id])) {
                        $backupable_user->info .= "needed";
                    }
                }
                // Yu: also needed because they can view course
                // might need another variable
                //Now create the backup_id record
                $backupids_rec = new stdClass();
                $backupids_rec->backup_code = $backup_unique_code;
                $backupids_rec->table_name = "user";
                $backupids_rec->old_id = $backupable_user->id;
                $backupids_rec->info = $backupable_user->info;
                //Insert the record id. backup_users decide it.
                //When all users
                $status = insert_record('backup_ids', $backupids_rec, false);
                $count_users++;
            }
            //Do some output
            backup_flush(30);
        }
    }
    //Prepare Info
    //Gets the user data
    $info[0][0] = get_string("users");
    $info[0][1] = $count_users;
    return $info;
}