X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=include%2Fuimport.php;h=0d9ffc35fca2f001fcf6df23db1f03a1e8fd8da5;hb=c2213760412f6d178d77451d69ae467534042457;hp=4fd91f80a7400ce396134f472aadb8633825480f;hpb=03c489150c9b56695bd8233a7aba2c6a29b15a67;p=friendica.git diff --git a/include/uimport.php b/include/uimport.php index 4fd91f80a7..0d9ffc35fc 100644 --- a/include/uimport.php +++ b/include/uimport.php @@ -28,7 +28,7 @@ function last_error() { /** * Remove columns from array $arr that aren't in table $table - * + * * @param string $table Table name * @param array &$arr Column=>Value array from json (by ref) */ @@ -51,7 +51,7 @@ function check_cols($table, &$arr) { /** * Import data into table $table - * + * * @param string $table Table name * @param array $arr Column=>Value array from json */ @@ -116,16 +116,30 @@ function import_account(&$a, $file) { notice(t('Error! Cannot check nickname')); return; } - if (count($r) > 0) { + if (dbm::is_result($r) > 0) { + notice(sprintf(t("User '%s' already exists on this server!"), $account['user']['nickname'])); + return; + } + // 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); + notice(t('Error! Cannot check nickname')); + return; + } + if (dbm::is_result($r) > 0) { notice(sprintf(t("User '%s' already exists on this server!"), $account['user']['nickname'])); return; } $oldbaseurl = $account['baseurl']; - $newbaseurl = $a->get_baseurl(); + $newbaseurl = App::get_baseurl(); $olduid = $account['user']['uid']; - unset($account['user']['uid']); + unset($account['user']['uid']); + unset($account['user']['account_expired']); + unset($account['user']['account_expires_on']); + unset($account['user']['expire_notification_sent']); foreach ($account['user'] as $k => &$v) { $v = str_replace($oldbaseurl, $newbaseurl, $v); } @@ -142,13 +156,15 @@ function import_account(&$a, $file) { $newuid = last_insert_id(); //~ $newuid = 1; - + // 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); foreach (array("profile", "avatar") as $k) - $v = str_replace($newbaseurl . "/photo/" . $k . "/" . $olduid . ".jpg", $newbaseurl . "/photo/" . $k . "/" . $newuid . ".jpg", $v); + $v = str_replace($oldbaseurl . "/photo/" . $k . "/" . $olduid . ".jpg", $newbaseurl . "/photo/" . $k . "/" . $newuid . ".jpg", $v); } $profile['uid'] = $newuid; $r = db_import_assoc('profile', $profile); @@ -166,19 +182,23 @@ function import_account(&$a, $file) { foreach ($contact as $k => &$v) { $v = str_replace($oldbaseurl, $newbaseurl, $v); foreach (array("profile", "avatar", "micro") as $k) - $v = str_replace($newbaseurl . "/photo/" . $k . "/" . $olduid . ".jpg", $newbaseurl . "/photo/" . $k . "/" . $newuid . ".jpg", $v); + $v = str_replace($oldbaseurl . "/photo/" . $k . "/" . $olduid . ".jpg", $newbaseurl . "/photo/" . $k . "/" . $newuid . ".jpg", $v); } } if ($contact['uid'] == $olduid && $contact['self'] == '0') { + // set contacts 'avatar-date' to "0000-00-00 00:00:00" to let poller to update urls + $contact["avatar-date"] = "0000-00-00 00:00:00" ; + + switch ($contact['network']) { case NETWORK_DFRN: // send relocate message (below) break; case NETWORK_ZOT: - // TODO handle zot network + /// @TODO handle zot network break; case NETWORK_MAIL2: - // TODO ? + /// @TODO ? break; case NETWORK_FEED: case NETWORK_MAIL: @@ -267,8 +287,8 @@ function import_account(&$a, $file) { } // send relocate messages - proc_run('php', 'include/notifier.php', 'relocate', $newuid); + proc_run(PRIORITY_HIGH, 'include/notifier.php', 'relocate', $newuid); info(t("Done. You can now login with your username and password")); - goaway($a->get_baseurl() . "/login"); + goaway(App::get_baseurl() . "/login"); }