summaryrefslogtreecommitdiffstats
path: root/apps/user_migrate
diff options
context:
space:
mode:
authorTom Needham <needham.thomas@gmail.com>2012-06-15 23:14:40 +0000
committerTom Needham <needham.thomas@gmail.com>2012-06-15 23:14:40 +0000
commite37ef6dd473eaedcdf2814445ae12fb39786d585 (patch)
tree7513cfb664c4b32061b78b53cb11c71b73515568 /apps/user_migrate
parent03951ccc6b4d710e2e21d4344842a7c310453871 (diff)
downloadnextcloud-server-e37ef6dd473eaedcdf2814445ae12fb39786d585.tar.gz
nextcloud-server-e37ef6dd473eaedcdf2814445ae12fb39786d585.zip
Move user import to personal settings. Fix user migration between servers.
Diffstat (limited to 'apps/user_migrate')
-rw-r--r--apps/user_migrate/admin.php87
-rw-r--r--apps/user_migrate/settings.php66
-rw-r--r--apps/user_migrate/templates/admin.php13
-rw-r--r--apps/user_migrate/templates/settings.php13
4 files changed, 76 insertions, 103 deletions
diff --git a/apps/user_migrate/admin.php b/apps/user_migrate/admin.php
deleted file mode 100644
index df8bff01c8d..00000000000
--- a/apps/user_migrate/admin.php
+++ /dev/null
@@ -1,87 +0,0 @@
-<?php
-
-/**
- * ownCloud - user_migrate
- *
- * @author Tom Needham
- * @copyright 2012 Tom Needham tom@owncloud.com
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU AFFERO GENERAL PUBLIC LICENSE
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU AFFERO GENERAL PUBLIC LICENSE for more details.
- *
- * You should have received a copy of the GNU Affero General Public
- * License along with this library. If not, see <http://www.gnu.org/licenses/>.
- *
- */
-OCP\User::checkAdminUser();
-OCP\App::checkAppEnabled('user_migrate');
-
-// Import?
-if (isset($_POST['user_import'])) {
-
- $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', 'admin');
- $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', 'admin');
- $tmpl->assign('error',$error);
- return $tmpl->fetchPage();
- } else {
- // Check import status
- foreach( $response->data as $app => $status ){
- if( $status != 'true' ){
- // It failed for some reason
- if( $status == 'notsupported' ){
- $notsupported[] = $app;
- } else if( !$status ){
- $failed[] = $app;
- }
- }
- }
- // Any problems?
- if( isset( $notsupported ) || isset( $failed ) ){
- if( count( $failed ) > 0 ){
- $error = array('error'=>'Some app data failed to import','hint'=>'App data for: '.implode(', ', $failed).' failed to import.');
- $tmpl = new OCP\Template('user_migrate', 'admin');
- $tmpl->assign('error',$error);
- return $tmpl->fetchPage();
- } else if( count( $notsupported ) > 0 ){
- $error = array('error'=>'Some app data could not be imported, as the apps are not installed on this instance','hint'=>'App data for: '.implode(', ', $notsupported).' failed to import as they were not found. Please install the apps and try again');
- $tmpl = new OCP\Template('user_migrate', 'admin');
- $tmpl->assign('error',$error);
- return $tmpl->fetchPage();
- }
- } else {
- // Went swimmingly!
- $tmpl = new OCP\Template('user_migrate', 'admin');
- return $tmpl->fetchPage();
- }
- }
-
-} else {
-// fill template
- $tmpl = new OCP\Template('user_migrate', 'admin');
- return $tmpl->fetchPage();
-}
diff --git a/apps/user_migrate/settings.php b/apps/user_migrate/settings.php
index 8edd0353388..098927fa17d 100644
--- a/apps/user_migrate/settings.php
+++ b/apps/user_migrate/settings.php
@@ -23,7 +23,67 @@
*
*/
OCP\App::checkAppEnabled('user_migrate');
+if (isset($_POST['user_import'])) {
+ $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 ) ){
-// fill template
-$tmpl = new OCP\Template('user_migrate', 'settings');
-return $tmpl->fetchPage(); \ No newline at end of file
+ $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
+ foreach( $response->data as $app => $status ){
+ if( $status != 'true' ){
+ // It failed for some reason
+ if( $status == 'notsupported' ){
+ $notsupported[] = $app;
+ } else if( !$status ){
+ $failed[] = $app;
+ }
+ }
+ }
+ // Any problems?
+ if( isset( $notsupported ) || isset( $failed ) ){
+ if( count( $failed ) > 0 ){
+ $error = array('error'=>'Some app data failed to import','hint'=>'App data for: '.implode(', ', $failed).' failed to import.');
+ $tmpl = new OCP\Template('user_migrate', 'settings');
+ $tmpl->assign('error',$error);
+ //return $tmpl->fetchPage();
+ } else if( count( $notsupported ) > 0 ){
+ $error = array('error'=>'Some app data could not be imported, as the apps are not installed on this instance','hint'=>'App data for: '.implode(', ', $notsupported).' failed to import as they were not found. Please install the apps and try again');
+ $tmpl = new OCP\Template('user_migrate', 'settings');
+ $tmpl->assign('error',$error);
+ //return $tmpl->fetchPage();
+ }
+ } else {
+ // Went swimmingly!
+ $tmpl = new OCP\Template('user_migrate', 'settings');
+ //return $tmpl->fetchPage();
+ }
+
+ }
+
+} else {
+ // fill template
+ $tmpl = new OCP\Template('user_migrate', 'settings');
+ return $tmpl->fetchPage();
+} \ No newline at end of file
diff --git a/apps/user_migrate/templates/admin.php b/apps/user_migrate/templates/admin.php
deleted file mode 100644
index ff51f43ffde..00000000000
--- a/apps/user_migrate/templates/admin.php
+++ /dev/null
@@ -1,13 +0,0 @@
-<form id="import" action="#" method="post" enctype="multipart/form-data">
- <fieldset class="personalblock">
- <?php if(isset($_['error'])){ ?>
- <h3><?php echo $_['error']['error']; ?></h3>
- <p><?php echo $_['error']['hint']; ?></p>
- <?php } ?>
- <legend><strong><?php echo $l->t('Import user account');?></strong></legend>
- </p>
- <p><input type="file" id="owncloud_import" name="owncloud_import" style="width:180px;"><label for="owncloud_import"> <?php echo $l->t('ownCloud User Zip');?></label>
- </p>
- <input type="submit" name="user_import" value="<?php echo $l->t('Import'); ?>" />
- </fieldset>
-</form>
diff --git a/apps/user_migrate/templates/settings.php b/apps/user_migrate/templates/settings.php
index 8f1fe41df01..1718abe9e0f 100644
--- a/apps/user_migrate/templates/settings.php
+++ b/apps/user_migrate/templates/settings.php
@@ -4,3 +4,16 @@
</p>
<button id="exportbtn">Export<img style="display: none;" class="loading" src="<?php echo OCP\Util::linkTo('core', 'img/loading.gif'); ?>" /></button>
</fieldset>
+<form id="import" action="#" method="post" enctype="multipart/form-data">
+ <fieldset class="personalblock">
+ <?php if(isset($_['error'])){ ?>
+ <h3><?php echo $_['error']['error']; ?></h3>
+ <p><?php echo $_['error']['hint']; ?></p>
+ <?php } ?>
+ <legend><strong><?php echo $l->t('Import user account');?></strong></legend>
+ </p>
+ <p><input type="file" id="owncloud_import" name="owncloud_import" style="width:180px;"><label for="owncloud_import"> <?php echo $l->t('ownCloud User Zip');?></label>
+ </p>
+ <input type="submit" name="user_import" value="<?php echo $l->t('Import'); ?>" />
+ </fieldset>
+</form>