|
|
|
|
@ -40,69 +40,10 @@ if (isset($_POST['user_import'])) { |
|
|
|
|
exit(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
OC_Migrate::import( $to, 'user', 'newuser' ); |
|
|
|
|
die(); |
|
|
|
|
// Find folder |
|
|
|
|
$files = scandir( $importdir ); |
|
|
|
|
unset($files[0]); |
|
|
|
|
unset($files[1]); |
|
|
|
|
|
|
|
|
|
// Get the user |
|
|
|
|
if( count($files) != 1 ){ |
|
|
|
|
OC_Log::write('migration', 'Invalid import file', OC_Log::ERROR); |
|
|
|
|
die('invalid import, no user included'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$olduser = reset($files); |
|
|
|
|
|
|
|
|
|
// Check for dbexport.xml and export info and data dir |
|
|
|
|
$files = scandir( $importdir . '/' . $olduser ); |
|
|
|
|
|
|
|
|
|
$required = array( 'migration.db', 'export_info.json', 'files'); |
|
|
|
|
foreach($required as $require){ |
|
|
|
|
if( !in_array( $require, $files) ){ |
|
|
|
|
OC_Log::write('migration', 'Invlaid import file', OC_Log::ERROR); |
|
|
|
|
die('invalid import'); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$migrateinfo = $importdir . '/' . $olduser . '/export_info.json'; |
|
|
|
|
$migrateinfo = json_decode( file_get_contents( $migrateinfo ) ); |
|
|
|
|
|
|
|
|
|
// Check if uid is available |
|
|
|
|
if( OC_User::UserExists( $olduser ) ){ |
|
|
|
|
OC_Log::write('migration','Username exists', OC_Log::ERROR); |
|
|
|
|
die('user exists'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Create the user |
|
|
|
|
if( !OC_Migrate::createUser( $olduser, $migrateinfo->hash ) ){ |
|
|
|
|
OC_Log::write('migration', 'Failed to create the new user', OC_Log::ERROR); |
|
|
|
|
die('coundlt create new user'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
$datadir = OC_Config::getValue( 'datadirectory' ); |
|
|
|
|
// Make the new users data dir |
|
|
|
|
$path = $datadir . '/' . $olduser . '/files/'; |
|
|
|
|
if( !mkdir( $path, 0755, true ) ){ |
|
|
|
|
OC_Log::write('migration','Failed to create users data dir: '.$path, OC_Log::ERROR); |
|
|
|
|
die('failed to create users data dir'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Copy data |
|
|
|
|
if( !copy_r( $importdir . '/' . $olduser . '/files', $datadir . '/' . $olduser . '/files' ) ){ |
|
|
|
|
OC_Log::write('migration','Failed to copy user files to destination', OC_Log::ERROR); |
|
|
|
|
die('failed to copy user files'); |
|
|
|
|
if( !OC_Migrate::import( $to, 'user' ) ){ |
|
|
|
|
die( 'failed to to import' ); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// Import user data |
|
|
|
|
if( !OC_Migrate::importAppData( $importdir . '/' . $olduser . '/migration.db', $migrateinfo ) ){ |
|
|
|
|
OC_Log::write('migration','Failed to import user data', OC_Log::ERROR); |
|
|
|
|
die('failed to import user data'); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
// All done! |
|
|
|
|
die('done'); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
// fill template |
|
|
|
|
|