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 />.
*
*/
OC_Util :: checkAdminUser ();
OC_Util :: checkAppEnabled ( 'user_migrate' );
// 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
$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 ) ){
2012-04-07 00:52:41 +04:00
$errors [] = array ( 'error' => 'Failed to move the uploaded file' , 'hint' => 'Try checking the permissions of the ' . get_temp_dir () . ' dir.' );
2012-03-21 00:19:21 +04:00
OC_Log :: write ( 'user_migrate' , " Failed to copy the uploaded file " , OC_Log :: ERROR );
2012-04-07 00:52:41 +04:00
$t = new OC_Template ( '' , 'error' , 'user' );
$t -> assign ( 'errors' , $errors );
$t -> fetchPage ();
2012-03-17 17:30:58 +04:00
}
2012-03-28 01:21:14 +04:00
if ( ! $appsstatus = OC_Migrate :: import ( $to , 'user' ) ){
2012-04-07 00:52:41 +04:00
$errors [] = array ( 'error' => 'There was an error while importing the user!' , 'hint' => 'Please check the logs for a more detailed explaination' );
$t = new OC_Template ( '' , 'error' , 'user' );
$t -> assign ( 'errors' , $errors );
$t -> fetchPage ();
2012-03-28 01:21:14 +04:00
} else {
// Check import status
foreach ( $appsstatus as $app => $status ){
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 00:52:41 +04:00
$errors [] = array ( 'error' => 'Some app data failed to import' , 'hint' => 'App data for: ' . implode ( ', ' , $failed ) . ' failed to import.' );
$t = new OC_Template ( '' , 'error' , 'user' );
$t -> assign ( 'errors' , $errors );
$t -> fetchPage ();
2012-03-28 01:35:29 +04:00
} else if ( count ( $notsupported ) > 0 ){
2012-04-07 00:52:41 +04:00
$errors [] = 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' );
$t = new OC_Template ( '' , 'error' , 'user' );
$t -> assign ( 'errors' , $errors );
$t -> fetchPage ();
2012-03-28 01:35:29 +04:00
}
2012-04-07 00:52:41 +04:00
} else {
// Went swimmingly!
$tmpl = new OC_Template ( 'user_migrate' , 'admin' );
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
$tmpl = new OC_Template ( 'user_migrate' , 'admin' );
return $tmpl -> fetchPage ();
}