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) {