mirror of https://github.com/zulip/zulip.git
import: Fix handling of recipient IDs for welcome bot.
If any user had sent the reply to the welcome bot recommended by our tutorial, then the Zulip export/import process didn't work properly, because we weren't including (and then remapping) the recipient ID for sending PMs to the cross-realm bots. This commit fixes that gap, by recording the necessary data on the export side, and doing the appropriate remapping on the import side.
This commit is contained in:
parent
c9189439de
commit
e2bd03365e
|
@ -786,15 +786,22 @@ def fetch_user_profile(response: TableData, config: Config, context: Context) ->
|
|||
|
||||
def fetch_user_profile_cross_realm(response: TableData, config: Config, context: Context) -> None:
|
||||
realm = context['realm']
|
||||
response['zerver_userprofile_crossrealm'] = []
|
||||
|
||||
if realm.string_id == settings.SYSTEM_BOT_REALM:
|
||||
response['zerver_userprofile_crossrealm'] = []
|
||||
else:
|
||||
response['zerver_userprofile_crossrealm'] = [dict(email=x.email, id=x.id) for x in [
|
||||
return
|
||||
|
||||
for bot_user in [
|
||||
get_system_bot(settings.NOTIFICATION_BOT),
|
||||
get_system_bot(settings.EMAIL_GATEWAY_BOT),
|
||||
get_system_bot(settings.WELCOME_BOT),
|
||||
]]
|
||||
]:
|
||||
recipient_id = Recipient.objects.get(type_id=bot_user.id, type=Recipient.PERSONAL).id
|
||||
response['zerver_userprofile_crossrealm'].append(dict(
|
||||
email=bot_user.email,
|
||||
id=bot_user.id,
|
||||
recipient_id=recipient_id,
|
||||
))
|
||||
|
||||
def fetch_attachment_data(response: TableData, realm_id: int, message_ids: Set[int]) -> None:
|
||||
filter_args = {'realm_id': realm_id}
|
||||
|
|
|
@ -665,6 +665,8 @@ def do_import_realm(import_dir: Path, subdomain: str) -> Realm:
|
|||
logging.info("Adding to ID map: %s %s" % (item['id'], get_system_bot(item['email']).id))
|
||||
new_user_id = get_system_bot(item['email']).id
|
||||
update_id_map(table='user_profile', old_id=item['id'], new_id=new_user_id)
|
||||
new_recipient_id = Recipient.objects.get(type=Recipient.PERSONAL, type_id=new_user_id).id
|
||||
update_id_map(table='recipient', old_id=item['recipient_id'], new_id=new_recipient_id)
|
||||
|
||||
# Merge in zerver_userprofile_mirrordummy
|
||||
data['zerver_userprofile'] = data['zerver_userprofile'] + data['zerver_userprofile_mirrordummy']
|
||||
|
|
Loading…
Reference in New Issue