mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 14:03:30 +00:00
This replaces the "API" client, which isn't used by any real clients, with the "ZulipMobile" and "ZulipElectron" client strings, which are.
47 lines
1.9 KiB
Python
47 lines
1.9 KiB
Python
from django.conf import settings
|
|
|
|
from zerver.lib.bulk_create import bulk_create_users
|
|
from zerver.models import Realm, UserProfile, email_to_username, get_client, \
|
|
get_system_bot
|
|
|
|
from typing import Iterable, Optional, Tuple
|
|
|
|
def server_initialized() -> bool:
|
|
return Realm.objects.exists()
|
|
|
|
def create_internal_realm() -> None:
|
|
from zerver.lib.actions import do_change_is_admin
|
|
|
|
realm = Realm.objects.create(string_id=settings.SYSTEM_BOT_REALM)
|
|
|
|
# Create some client objects for common requests. Not required;
|
|
# just ensures these get low IDs in production, and in development
|
|
# avoids an extra database write for the first HTTP requset in
|
|
# most tests.
|
|
get_client("website")
|
|
get_client("ZulipMobile")
|
|
get_client("ZulipElectron")
|
|
|
|
internal_bots = [(bot['name'], bot['email_template'] % (settings.INTERNAL_BOT_DOMAIN,))
|
|
for bot in settings.INTERNAL_BOTS]
|
|
create_users(realm, internal_bots, bot_type=UserProfile.DEFAULT_BOT)
|
|
# Set the owners for these bots to the bots themselves
|
|
bots = UserProfile.objects.filter(email__in=[bot_info[1] for bot_info in internal_bots])
|
|
for bot in bots:
|
|
bot.bot_owner = bot
|
|
bot.save()
|
|
|
|
# Initialize the email gateway bot as an API Super User
|
|
email_gateway_bot = get_system_bot(settings.EMAIL_GATEWAY_BOT)
|
|
do_change_is_admin(email_gateway_bot, True, permission="api_super_user")
|
|
|
|
def create_users(realm: Realm, name_list: Iterable[Tuple[str, str]],
|
|
tos_version: Optional[str]=None,
|
|
bot_type: Optional[int]=None,
|
|
bot_owner: Optional[UserProfile]=None) -> None:
|
|
user_set = set()
|
|
for full_name, email in name_list:
|
|
short_name = email_to_username(email)
|
|
user_set.add((email, full_name, short_name, True))
|
|
bulk_create_users(realm, user_set, bot_type=bot_type, bot_owner=bot_owner, tos_version=tos_version)
|