### Eclipse Workspace Patch 1.0 #P CVS Index: backup/backuplib.php =================================================================== RCS file: /cvsroot/moodle/moodle/backup/backuplib.php,v retrieving revision 1.206 diff -u -r1.206 backuplib.php --- backup/backuplib.php 19 Apr 2008 22:41:48 -0000 1.206 +++ backup/backuplib.php 25 Apr 2008 04:26:18 -0000 @@ -2386,7 +2357,7 @@ return $result; } - //This function copies all the needed files under the "users" directory to the "user_files" + //This function copies all the needed files under the "user" directory to the "user_files" //directory under temp/backup function backup_copy_user_files ($preferences) { @@ -2394,24 +2365,19 @@ $status = true; - //First we check to "user_files" exists and create it as necessary + //First we check that "user_files" exists and create it if necessary //in temp/backup/$backup_code dir $status = check_and_create_user_files_dir($preferences->backup_unique_code); - - //Now iterate over directories under "user" to check if that user must be copied to backup - - // Method to get a list of userid=>array(basedir => $basedir, userfolder => $userfolder) - $userlist = get_user_directories(); - - foreach ($userlist as $userid => $userinfo) { - //Look for dir like username in backup_ids - $data = count_records("backup_ids","backup_code",$preferences->backup_unique_code, "table_name","user", "old_id",$userid); - - //If exists, copy it - if ($data) { - $parts = explode('/', $userinfo['userfolder']); + //now get a list of users that we need for this backup. + $backup_users = get_records_select_menu("backup_ids", + "backup_code='$preferences->backup_unique_code' AND table_name='user'", "", "id, old_id"); + + foreach ($backup_users as $userid => $userinfo) { + //If this user's directory exists, copy it + if ($userdir = make_user_directory($userid, true)) { + //first remove dirroot so we can split out the folders. + $parts = explode('/', str_replace($CFG->dataroot.'/user/', '', $userdir)); $status = true; - if (is_array($parts)) { $group = $parts[0]; $userid = $parts[1]; @@ -2420,8 +2386,8 @@ $status = check_dir_exists("$CFG->dataroot/temp/backup/$preferences->backup_unique_code/user_files/". $group, true); } - $status = $status && backup_copy_file($userinfo['basedir'] . '/' . $userinfo['userfolder'], - "$CFG->dataroot/temp/backup/$preferences->backup_unique_code/user_files/{$userinfo['userfolder']}"); + $status = $status && backup_copy_file($userdir, + "$CFG->dataroot/temp/backup/$preferences->backup_unique_code/user_files/$group/$userid"); } }