new feature (post 3.4): allow a different username to be used when importing.

This commit is contained in:
zotlabs 2018-05-01 20:29:07 -07:00
parent cd200ee706
commit 7a55ead97d
3 changed files with 24 additions and 2 deletions

View File

@ -6,6 +6,7 @@ require_once('include/zot.php');
require_once('include/channel.php'); require_once('include/channel.php');
require_once('include/import.php'); require_once('include/import.php');
require_once('include/perm_upgrade.php'); require_once('include/perm_upgrade.php');
require_once('library/urlify/URLify.php');
/** /**
@ -38,6 +39,7 @@ class Import extends \Zotlabs\Web\Controller {
$filename = basename($_FILES['filename']['name']); $filename = basename($_FILES['filename']['name']);
$filesize = intval($_FILES['filename']['size']); $filesize = intval($_FILES['filename']['size']);
$filetype = $_FILES['filename']['type']; $filetype = $_FILES['filename']['type'];
$newname = trim(strtolower($_REQUEST['newname']));
// import channel from file // import channel from file
if($src) { if($src) {
@ -146,7 +148,20 @@ class Import extends \Zotlabs\Web\Controller {
} }
} }
$channel = import_channel($data['channel'], $account_id, $seize); if($newname) {
$x = false;
if(get_config('system','unicode_usernames')) {
$x = punify(mb_strtolower($newname));
}
if((! $x) || strlen($x) > 64) {
$x = strtolower(\URLify::transliterate($newname));
}
$newname = $x;
}
$channel = import_channel($data['channel'], $account_id, $seize, $newname);
} }
else { else {
$moving = false; $moving = false;
@ -542,6 +557,7 @@ class Import extends \Zotlabs\Web\Controller {
'$make_primary' => [ 'make_primary', t('Make this hub my primary location'), false, '', [ t('No'), t('Yes') ] ], '$make_primary' => [ 'make_primary', t('Make this hub my primary location'), false, '', [ t('No'), t('Yes') ] ],
'$moving' => [ 'moving', t('Move this channel (disable all previous locations)'), false, '', [ t('No'), t('Yes') ] ], '$moving' => [ 'moving', t('Move this channel (disable all previous locations)'), false, '', [ t('No'), t('Yes') ] ],
'$newname' => [ 'newname', t('Use this channel nickname instead of the one provided'), '', t('Leave blank to keep your existing channel nickname. You will be randomly assigned a similar nickname if either name is already allocated on this site.')],
'$pleasewait' => t('This process may take several minutes to complete. Please submit the form only once and leave this page open until finished.'), '$pleasewait' => t('This process may take several minutes to complete. Please submit the form only once and leave this page open until finished.'),

View File

@ -14,7 +14,7 @@ require_once('include/perm_upgrade.php');
* @param int $seize * @param int $seize
* @return boolean|array * @return boolean|array
*/ */
function import_channel($channel, $account_id, $seize) { function import_channel($channel, $account_id, $seize, $newname = '') {
if(! array_key_exists('channel_system',$channel)) { if(! array_key_exists('channel_system',$channel)) {
$channel['channel_system'] = (($channel['channel_pageflags'] & 0x1000) ? 1 : 0); $channel['channel_system'] = (($channel['channel_pageflags'] & 0x1000) ? 1 : 0);
@ -30,6 +30,11 @@ function import_channel($channel, $account_id, $seize) {
$channel['channel_hash'] = make_xchan_hash($channel['channel_guid'],$channel['channel_guid_sig']); $channel['channel_hash'] = make_xchan_hash($channel['channel_guid'],$channel['channel_guid_sig']);
if($newname) {
$channel['channel_address'] = $newname;
}
// Check for duplicate channels // Check for duplicate channels
$r = q("select * from channel where (channel_guid = '%s' or channel_hash = '%s' or channel_address = '%s' ) limit 1", $r = q("select * from channel where (channel_guid = '%s' or channel_hash = '%s' or channel_address = '%s' ) limit 1",

View File

@ -24,6 +24,7 @@
{{include file="field_checkbox.tpl" field=$make_primary}} {{include file="field_checkbox.tpl" field=$make_primary}}
{{include file="field_checkbox.tpl" field=$moving}} {{include file="field_checkbox.tpl" field=$moving}}
{{include file="field_input.tpl" field=$newname}}
<div id="import-common-desc" class="section-content-info-wrapper">{{$pleasewait}}</div> <div id="import-common-desc" class="section-content-info-wrapper">{{$pleasewait}}</div>