2012-03-17 17:30:58 +04:00
< ? php
/**
2012-03-17 17:53:00 +04:00
* ownCloud - user_migrate
2012-03-17 17:30:58 +04:00
*
* @ 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 />.
*
*/
2012-05-02 00:59:38 +04:00
OCP\User :: checkAdminUser ();
2012-05-02 21:08:37 +04:00
OCP\App :: checkAppEnabled ( 'user_migrate' );
2012-03-17 17:30:58 +04:00
// Import?
2012-03-17 17:53:00 +04:00
if ( isset ( $_POST [ 'user_import' ])) {
2012-03-17 17:30:58 +04:00
$root = OC :: $SERVERROOT . " / " ;
$importname = " owncloud_import_ " . date ( " y-m-d_H-i-s " );
// Save data dir for later
2012-05-02 15:28:56 +04:00
$datadir = OCP\Config :: getSystemValue ( 'datadirectory' );
2012-03-17 17:30:58 +04:00
// Copy the uploaded file
$from = $_FILES [ 'owncloud_import' ][ 'tmp_name' ];
$to = get_temp_dir () . '/' . $importname . '.zip' ;
if ( ! move_uploaded_file ( $from , $to ) ){
2012-04-07 20:13:18 +04:00
$error = array ( 'error' => 'Failed to move the uploaded file' , 'hint' => 'Try checking the permissions of the ' . get_temp_dir () . ' dir.' );
2012-05-01 19:38:27 +04:00
OCP\Util :: writeLog ( 'user_migrate' , " Failed to copy the uploaded file " , OCP\Util :: ERROR );
2012-05-07 01:00:36 +04:00
$tmpl = new OCP\Template ( 'user_migrate' , 'admin' );
2012-04-07 20:13:18 +04:00
$tmpl -> assign ( 'error' , $error );
return $tmpl -> fetchPage ();
2012-03-17 17:30:58 +04:00
}
2012-04-08 01:55:16 +04:00
$response = json_decode ( OC_Migrate :: import ( $to , 'user' ) );
if ( ! $response -> success ){
2012-04-07 20:13:18 +04:00
$error = array ( 'error' => 'There was an error while importing the user!' , 'hint' => 'Please check the logs for a more detailed explaination' );
2012-05-07 01:00:36 +04:00
$tmpl = new OCP\Template ( 'user_migrate' , 'admin' );
2012-04-07 20:13:18 +04:00
$tmpl -> assign ( 'error' , $error );
return $tmpl -> fetchPage ();
2012-03-28 01:21:14 +04:00
} else {
// Check import status
2012-04-08 01:55:16 +04:00
foreach ( $response -> data as $app => $status ){
2012-03-28 01:21:14 +04:00
if ( $status != 'true' ){
// It failed for some reason
if ( $status == 'notsupported' ){
$notsupported [] = $app ;
} else if ( ! $status ){
$failed [] = $app ;
}
}
}
2012-03-28 01:35:29 +04:00
// Any problems?
if ( isset ( $notsupported ) || isset ( $failed ) ){
if ( count ( $failed ) > 0 ){
2012-04-07 20:13:18 +04:00
$error = array ( 'error' => 'Some app data failed to import' , 'hint' => 'App data for: ' . implode ( ', ' , $failed ) . ' failed to import.' );
2012-05-07 01:00:36 +04:00
$tmpl = new OCP\Template ( 'user_migrate' , 'admin' );
2012-04-07 20:13:18 +04:00
$tmpl -> assign ( 'error' , $error );
return $tmpl -> fetchPage ();
2012-03-28 01:35:29 +04:00
} else if ( count ( $notsupported ) > 0 ){
2012-04-07 20:13:18 +04:00
$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' );
2012-05-07 01:00:36 +04:00
$tmpl = new OCP\Template ( 'user_migrate' , 'admin' );
2012-04-07 20:13:18 +04:00
$tmpl -> assign ( 'error' , $error );
return $tmpl -> fetchPage ();
2012-03-28 01:35:29 +04:00
}
2012-04-07 00:52:41 +04:00
} else {
// Went swimmingly!
2012-05-07 01:00:36 +04:00
$tmpl = new OCP\Template ( 'user_migrate' , 'admin' );
2012-04-07 00:52:41 +04:00
return $tmpl -> fetchPage ();
2012-03-28 01:35:29 +04:00
}
2012-03-17 17:30:58 +04:00
}
2012-03-21 00:32:01 +04:00
2012-03-17 17:30:58 +04:00
} else {
// fill template
2012-05-07 01:00:36 +04:00
$tmpl = new OCP\Template ( 'user_migrate' , 'admin' );
2012-03-17 17:30:58 +04:00
return $tmpl -> fetchPage ();
2012-05-01 16:29:34 +04:00
}