]> source.dussan.org Git - nextcloud-server.git/commitdiff
Move user import to the admin
authorTom Needham <needham.thomas@gmail.com>
Sat, 17 Mar 2012 13:30:58 +0000 (13:30 +0000)
committerTom Needham <needham.thomas@gmail.com>
Sat, 17 Mar 2012 13:30:58 +0000 (13:30 +0000)
apps/user_migrate/admin.php [new file with mode: 0644]
apps/user_migrate/appinfo/app.php
apps/user_migrate/settings.php
apps/user_migrate/templates/admin.php [new file with mode: 0644]
apps/user_migrate/templates/settings.php

diff --git a/apps/user_migrate/admin.php b/apps/user_migrate/admin.php
new file mode 100644 (file)
index 0000000..56fe887
--- /dev/null
@@ -0,0 +1,118 @@
+<?php
+
+/**
+ * ownCloud - admin export
+ *
+ * @author Thomas Schmidt
+ * @copyright 2011 Thomas Schmidt tom@opensuse.org
+ * @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/>.
+ *
+ */
+OC_Util::checkAdminUser();
+OC_Util::checkAppEnabled('user_migrate');
+
+// Import?
+if (isset($_POST['userimport'])) {
+       
+       $root = OC::$SERVERROOT . "/";
+       $importname = "owncloud_import_" . date("y-m-d_H-i-s");
+       
+       // Save data dir for later
+       $datadir = OC_Config::getValue( 'datadirectory' );
+       
+       // Copy the uploaded file
+       $from = $_FILES['owncloud_import']['tmp_name'];
+       $to = get_temp_dir().'/'.$importname.'.zip';
+       if( !move_uploaded_file( $from, $to ) ){
+               OC_Log::write('admin_export',"Failed to copy the uploaded file",OC_Log::INFO);
+               exit();         
+       }
+       
+       // Extract zip
+       $zip = new ZipArchive();
+       if ($zip->open(get_temp_dir().'/'.$importname.'.zip') != TRUE) {
+               OC_Log::write('admin_export',"Failed to open zip file",OC_Log::INFO);
+               exit();
+       }
+       $zip->extractTo(get_temp_dir().'/'.$importname.'/');
+       $zip->close();
+       
+       $importdir = get_temp_dir() . '/' . $importname;
+       
+       // Delete uploaded file
+       unlink( $importdir . '.zip' );
+       
+       // 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');  
+       }
+       
+       $user = reset($files);
+       
+       // Check for dbexport.xml and export info and data dir
+       $files = scandir( $importdir . '/' . $user );
+       $required = array( 'migration.db', 'exportinfo.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 . '/' . $user . '/exportinfo.json';
+       $migrateinfo = json_decode( file_get_contents( $migrateinfo ) );
+       $olduid = $migrateinfo->migrateinfo->uid;
+       
+       // Check if uid is available
+       if( OC_User::UserExists( $olduid ) ){
+               OC_Log::write('migration','Username exists', OC_Log::ERROR);    
+               die('user exists');
+       }
+       
+       // Create the user
+       if( !OC_Migrate::createUser( $olduid, $migrateinfo->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' );
+       // Copy data
+       if( !copy_r( $importdir . '/files', $datadir . '/' ) ){
+               OC_Log::write('migration','Failed to copy user files to destination', OC_Log::ERROR);
+               die('failed to copy user files');       
+       }
+       
+       // Import user data
+       if( !OC_Migrate::importUser( $importdir . '/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
+    $tmpl = new OC_Template('user_migrate', 'admin');
+    return $tmpl->fetchPage();
+}
\ No newline at end of file
index 4a795a5474109ce2bff0772f0cf7ae17ecddf81e..18b97b93df1c0de86f343cf95265de5fe62f9194 100644 (file)
 */
 
 OC_APP::registerPersonal('user_migrate','settings');
+OC_APP::registerAdmin('user_migrate','admin');
 
+// add settings page to navigation
+$entry = array(
+       'id' => "user_migrate_settings",
+       'order'=>1,
+       'href' => OC_Helper::linkTo( "user_migrate", "admin.php" ),
+       'name' => 'Import'
+);
 ?>
\ No newline at end of file
index 3efe9228a130fc3836d6e93b441f103fa5b2c21c..62f5e3f20d7ec90868d12cff9a79482db3640427 100644 (file)
@@ -38,129 +38,8 @@ if (isset($_POST['user_export'])) {
                readfile($path);
                unlink( $path );                
        }
-} if( isset( $_POST['user_import'] ) ){
-       // TODO
-       $root = OC::$SERVERROOT . "/";
-       $importname = "owncloud_import_" . date("y-m-d_H-i-s");
-       
-       // Save data dir for later
-       $datadir = OC_Config::getValue( 'datadirectory' );
-       
-       // Copy the uploaded file
-       $from = $_FILES['owncloud_import']['tmp_name'];
-       $to = get_temp_dir().'/'.$importname.'.zip';
-       if( !move_uploaded_file( $from, $to ) ){
-               OC_Log::write('admin_export',"Failed to copy the uploaded file",OC_Log::INFO);
-               exit();         
-       }
-       
-       // Extract zip
-       $zip = new ZipArchive();
-       if ($zip->open(get_temp_dir().'/'.$importname.'.zip') != TRUE) {
-               OC_Log::write('admin_export',"Failed to open zip file",OC_Log::INFO);
-               exit();
-       }
-       $zip->extractTo(get_temp_dir().'/'.$importname.'/');
-       $zip->close();
-       
-       $importdir = get_temp_dir() . '/' . $importname;
-       
-       // Delete uploaded file
-       unlink( $importdir . '.zip' );
-       
-       // 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');  
-       }
-       
-       $user = reset($files);
-       
-       // Check for dbexport.xml and export info and data dir
-       $files = scandir( $importdir . '/' . $user );
-       $required = array( 'migration.db', 'exportinfo.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 . '/' . $user . '/exportinfo.json';
-       $migrateinfo = json_decode( file_get_contents( $migrateinfo ) );
-       $olduid = $migrateinfo->migrateinfo->uid;
-       
-       // Check if uid is available
-       if( OC_User::UserExists( $olduid ) ){
-               OC_Log::write('migration','Username exists', OC_Log::ERROR);    
-               die('user exists');
-       }
-       
-       // Create the user
-       if( !OC_Migrate::createUser( $olduid, $migrateinfo->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' );
-       // Copy data
-       if( !copy_r( $importdir . '/files', $datadir . '/' ) ){
-               OC_Log::write('migration','Failed to copy user files to destination', OC_Log::ERROR);
-               die('failed to copy user files');       
-       }
-       
-       // Import user data
-       if( !OC_Migrate::importUser( $importdir . '/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
        $tmpl = new OC_Template('user_migrate', 'settings');
        return $tmpl->fetchPage();
-}
-
-function copy_r( $path, $dest )
-    {
-        if( is_dir($path) )
-        {
-            @mkdir( $dest );
-            $objects = scandir($path);
-            if( sizeof($objects) > 0 )
-            {
-                foreach( $objects as $file )
-                {
-                    if( $file == "." || $file == ".." )
-                        continue;
-                    // go on
-                    if( is_dir( $path.DS.$file ) )
-                    {
-                        copy_r( $path.DS.$file, $dest.DS.$file );
-                    }
-                    else
-                    {
-                        copy( $path.DS.$file, $dest.DS.$file );
-                    }
-                }
-            }
-            return true;
-        }
-        elseif( is_file($path) )
-        {
-            return copy($path, $dest);
-        }
-        else
-        {
-            return false;
-        }
-    }
-
+}
\ No newline at end of file
diff --git a/apps/user_migrate/templates/admin.php b/apps/user_migrate/templates/admin.php
new file mode 100644 (file)
index 0000000..b5a9951
--- /dev/null
@@ -0,0 +1,9 @@
+<form id="import" action="#" method="post" enctype="multipart/form-data">
+    <fieldset class="personalblock">
+        <legend><strong><?php echo $l->t('Import user account');?></strong></legend>
+        </p>
+        <p><input type="file" id="owncloud_import" name="owncloud_import"><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>
index 59a27a926d88f9154189c948d4b268334f44666a..389de563a6fc5258bb4155614d386fbcb9c04a64 100644 (file)
@@ -5,13 +5,4 @@
         </p>
         <input type="submit" name="user_export" value="Export" />
     </fieldset>
-</form>
-<form id="import" action="#" method="post" enctype="multipart/form-data">
-    <fieldset class="personalblock">
-        <legend><strong><?php echo $l->t('Import user account');?></strong></legend>
-        </p>
-        <p><input type="file" id="owncloud_import" name="owncloud_import"><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>
+</form>
\ No newline at end of file