X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fuimport.php;h=442df94460777cb5ef555982929d4c80786ed9bc;hb=aa284a2ae60cca7f2f80013801999ad8a6596d84;hp=eb971387fde449c0afaf4592172884d3878df376;hpb=2bbcbdc7041843bf1e0f116b0d59b371e670daf9;p=friendica.git diff --git a/include/uimport.php b/include/uimport.php index eb971387fd..442df94460 100644 --- a/include/uimport.php +++ b/include/uimport.php @@ -1,23 +1,18 @@ insert_id(); -} - -function last_error() { - global $db; - return $db->error; + return dba::lastInsertId(); } /** @@ -63,16 +58,6 @@ function db_import_assoc($table, $arr) { return q($query); } -function import_cleanup($newuid) { - q("DELETE FROM `user` WHERE uid = %d", $newuid); - q("DELETE FROM `contact` WHERE uid = %d", $newuid); - q("DELETE FROM `profile` WHERE uid = %d", $newuid); - q("DELETE FROM `photo` WHERE uid = %d", $newuid); - q("DELETE FROM `group` WHERE uid = %d", $newuid); - q("DELETE FROM `group_member` WHERE uid = %d", $newuid); - q("DELETE FROM `pconfig` WHERE uid = %d", $newuid); -} - /** * @brief Import account file exported from mod/uexport * @@ -114,7 +99,7 @@ function import_account(App $a, $file) { // check for username $r = q("SELECT uid FROM user WHERE nickname='%s'", $account['user']['nickname']); if ($r === false) { - logger("uimport:check nickname : ERROR : " . last_error(), LOGGER_NORMAL); + logger("uimport:check nickname : ERROR : " . dba::errorMessage(), LOGGER_NORMAL); notice(t('Error! Cannot check nickname')); return; } @@ -125,7 +110,7 @@ function import_account(App $a, $file) { // check if username matches deleted account $r = q("SELECT id FROM userd WHERE username='%s'", $account['user']['nickname']); if ($r === false) { - logger("uimport:check nickname : ERROR : " . last_error(), LOGGER_NORMAL); + logger("uimport:check nickname : ERROR : " . dba::errorMessage(), LOGGER_NORMAL); notice(t('Error! Cannot check nickname')); return; } @@ -135,7 +120,17 @@ function import_account(App $a, $file) { } $oldbaseurl = $account['baseurl']; - $newbaseurl = App::get_baseurl(); + $newbaseurl = System::baseUrl(); + + $oldaddr = str_replace('http://', '@', normalise_link($oldbaseurl)); + $newaddr = str_replace('http://', '@', normalise_link($newbaseurl)); + + if (!empty($account['profile']['addr'])) { + $old_handle = $account['profile']['addr']; + } else { + $old_handle = $account['user']['nickname'].$oldaddr; + } + $olduid = $account['user']['uid']; unset($account['user']['uid']); @@ -144,27 +139,29 @@ function import_account(App $a, $file) { unset($account['user']['expire_notification_sent']); foreach ($account['user'] as $k => &$v) { - $v = str_replace($oldbaseurl, $newbaseurl, $v); + $v = str_replace(array($oldbaseurl, $oldaddr), array($newbaseurl, $newaddr), $v); } // import user $r = db_import_assoc('user', $account['user']); if ($r === false) { //echo "
"; var_dump($r, $query, mysql_error()); killme();
-		logger("uimport:insert user : ERROR : " . last_error(), LOGGER_NORMAL);
+		logger("uimport:insert user : ERROR : " . dba::errorMessage(), LOGGER_NORMAL);
 		notice(t("User creation error"));
 		return;
 	}
 	$newuid = last_insert_id();
 	//~ $newuid = 1;
 
+	PConfig::set($newuid, 'system', 'previous_addr', $old_handle);
+
 	// Generate a new guid for the account. Otherwise there will be problems with diaspora
 	q("UPDATE `user` SET `guid` = '%s' WHERE `uid` = %d",
 		dbesc(generate_user_guid()), intval($newuid));
 
 	foreach ($account['profile'] as &$profile) {
 		foreach ($profile as $k => &$v) {
-			$v = str_replace($oldbaseurl, $newbaseurl, $v);
+			$v = str_replace(array($oldbaseurl, $oldaddr), array($newbaseurl, $newaddr), $v);
 			foreach (array("profile", "avatar") as $k) {
 				$v = str_replace($oldbaseurl . "/photo/" . $k . "/" . $olduid . ".jpg", $newbaseurl . "/photo/" . $k . "/" . $newuid . ".jpg", $v);
 			}
@@ -172,9 +169,9 @@ function import_account(App $a, $file) {
 		$profile['uid'] = $newuid;
 		$r = db_import_assoc('profile', $profile);
 		if ($r === false) {
-			logger("uimport:insert profile " . $profile['profile-name'] . " : ERROR : " . last_error(), LOGGER_NORMAL);
+			logger("uimport:insert profile " . $profile['profile-name'] . " : ERROR : " . dba::errorMessage(), LOGGER_NORMAL);
 			info(t("User profile creation error"));
-			import_cleanup($newuid);
+			dba::delete('user', array('uid' => $newuid));
 			return;
 		}
 	}
@@ -183,7 +180,7 @@ function import_account(App $a, $file) {
 	foreach ($account['contact'] as &$contact) {
 		if ($contact['uid'] == $olduid && $contact['self'] == '1') {
 			foreach ($contact as $k => &$v) {
-				$v = str_replace($oldbaseurl, $newbaseurl, $v);
+				$v = str_replace(array($oldbaseurl, $oldaddr), array($newbaseurl, $newaddr), $v);
 				foreach (array("profile", "avatar", "micro") as $k) {
 					$v = str_replace($oldbaseurl . "/photo/" . $k . "/" . $olduid . ".jpg", $newbaseurl . "/photo/" . $k . "/" . $newuid . ".jpg", $v);
 				}
@@ -195,6 +192,7 @@ function import_account(App $a, $file) {
 
 			switch ($contact['network']) {
 				case NETWORK_DFRN:
+				case NETWORK_DIASPORA:
 					//  send relocate message (below)
 					break;
 				case NETWORK_ZOT:
@@ -215,7 +213,7 @@ function import_account(App $a, $file) {
 		$contact['uid'] = $newuid;
 		$r = db_import_assoc('contact', $contact);
 		if ($r === false) {
-			logger("uimport:insert contact " . $contact['nick'] . "," . $contact['network'] . " : ERROR : " . last_error(), LOGGER_NORMAL);
+			logger("uimport:insert contact " . $contact['nick'] . "," . $contact['network'] . " : ERROR : " . dba::errorMessage(), LOGGER_NORMAL);
 			$errorcount++;
 		} else {
 			$contact['newid'] = last_insert_id();
@@ -229,7 +227,7 @@ function import_account(App $a, $file) {
 		$group['uid'] = $newuid;
 		$r = db_import_assoc('group', $group);
 		if ($r === false) {
-			logger("uimport:insert group " . $group['name'] . " : ERROR : " . last_error(), LOGGER_NORMAL);
+			logger("uimport:insert group " . $group['name'] . " : ERROR : " . dba::errorMessage(), LOGGER_NORMAL);
 		} else {
 			$group['newid'] = last_insert_id();
 		}
@@ -256,7 +254,7 @@ function import_account(App $a, $file) {
 		if ($import == 2) {
 			$r = db_import_assoc('group_member', $group_member);
 			if ($r === false) {
-				logger("uimport:insert group member " . $group_member['id'] . " : ERROR : " . last_error(), LOGGER_NORMAL);
+				logger("uimport:insert group member " . $group_member['id'] . " : ERROR : " . dba::errorMessage(), LOGGER_NORMAL);
 			}
 		}
 	}
@@ -273,7 +271,7 @@ function import_account(App $a, $file) {
 		);
 
 		if ($r === false) {
-			logger("uimport:insert photo " . $photo['resource-id'] . "," . $photo['scale'] . " : ERROR : " . last_error(), LOGGER_NORMAL);
+			logger("uimport:insert photo " . $photo['resource-id'] . "," . $photo['scale'] . " : ERROR : " . dba::errorMessage(), LOGGER_NORMAL);
 		}
 	}
 
@@ -281,7 +279,7 @@ function import_account(App $a, $file) {
 		$pconfig['uid'] = $newuid;
 		$r = db_import_assoc('pconfig', $pconfig);
 		if ($r === false) {
-			logger("uimport:insert pconfig " . $pconfig['id'] . " : ERROR : " . last_error(), LOGGER_NORMAL);
+			logger("uimport:insert pconfig " . $pconfig['id'] . " : ERROR : " . dba::errorMessage(), LOGGER_NORMAL);
 		}
 	}
 
@@ -289,5 +287,5 @@ function import_account(App $a, $file) {
 	proc_run(PRIORITY_HIGH, 'include/notifier.php', 'relocate', $newuid);
 
 	info(t("Done. You can now login with your username and password"));
-	goaway(App::get_baseurl() . "/login");
+	goaway(System::baseUrl() . "/login");
 }