OCP\App::checkAppEnabled('admin_migrate'); // Export? if (isset($_POST['admin_export'])) { // Create the export zip $response = json_decode(OC_Migrate::export(null, $_POST['export_type'])); if (!$response->success) { // Error die('error'); } else { $path = $response->data; // Download it header("Content-Type: application/zip"); header("Content-Disposition: attachment; filename=" . basename($path)); header("Content-Length: " . filesize($path)); @ob_end_clean(); readfile($path); unlink($path); } // Import? } else { if (isset($_POST['admin_import'])) { $from = $_FILES['owncloud_import']['tmp_name']; if (!OC_Migrate::import($from, 'instance')) { die('failed'); } } else { // fill template $tmpl = new OCP\Template('admin_migrate', 'settings'); return $tmpl->fetchPage(); } }
OCP\JSON::callCheck(); $root = OC::$SERVERROOT . "/"; $importname = "owncloud_import_" . date("y-m-d_H-i-s"); // Save data dir for later $datadir = OCP\Config::getSystemValue('datadirectory'); // Copy the uploaded file $from = $_FILES['owncloud_import']['tmp_name']; $to = get_temp_dir() . '/' . $importname . '.zip'; if (!move_uploaded_file($from, $to)) { $error = array('error' => 'Failed to move the uploaded file', 'hint' => 'Try checking the permissions of the ' . get_temp_dir() . ' dir.'); OCP\Util::writeLog('user_migrate', "Failed to copy the uploaded file", OCP\Util::ERROR); $tmpl = new OCP\Template('user_migrate', 'settings'); $tmpl->assign('error', $error); return $tmpl->fetchPage(); } $response = json_decode(OC_Migrate::import($to, 'user')); if (!$response->success) { $error = array('error' => 'There was an error while importing the user!', 'hint' => 'Please check the logs for a more detailed explaination'); $tmpl = new OCP\Template('user_migrate', 'settings'); $tmpl->assign('error', $error); return $tmpl->fetchPage(); } else { // Check import status if (!is_null($response->data)) { foreach ($response->data as $app => $status) { if ($status != 'true') { // It failed for some reason if ($status == 'notsupported') { $notsupported[] = $app; } else { if (!$status) {