enhance: include workspace name in create-tenant command (#7834)

This commit is contained in:
Zhi 2024-08-30 15:53:50 +08:00 committed by GitHub
parent dc015c380a
commit ceb2b150ff
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 10 additions and 4 deletions

View File

@ -559,8 +559,9 @@ def add_qdrant_doc_id_index(field: str):
@click.command("create-tenant", help="Create account and tenant.") @click.command("create-tenant", help="Create account and tenant.")
@click.option("--email", prompt=True, help="The email address of the tenant account.") @click.option("--email", prompt=True, help="The email address of the tenant account.")
@click.option("--name", prompt=True, help="The workspace name of the tenant account.")
@click.option("--language", prompt=True, help="Account language, default: en-US.") @click.option("--language", prompt=True, help="Account language, default: en-US.")
def create_tenant(email: str, language: Optional[str] = None): def create_tenant(email: str, language: Optional[str] = None, name: Optional[str] = None):
""" """
Create tenant account Create tenant account
""" """
@ -580,13 +581,15 @@ def create_tenant(email: str, language: Optional[str] = None):
if language not in languages: if language not in languages:
language = "en-US" language = "en-US"
name = name.strip()
# generate random password # generate random password
new_password = secrets.token_urlsafe(16) new_password = secrets.token_urlsafe(16)
# register account # register account
account = RegisterService.register(email=email, name=account_name, password=new_password, language=language) account = RegisterService.register(email=email, name=account_name, password=new_password, language=language)
TenantService.create_owner_tenant_if_not_exist(account) TenantService.create_owner_tenant_if_not_exist(account, name)
click.echo( click.echo(
click.style( click.style(

View File

@ -265,7 +265,7 @@ class TenantService:
return tenant return tenant
@staticmethod @staticmethod
def create_owner_tenant_if_not_exist(account: Account): def create_owner_tenant_if_not_exist(account: Account, name: Optional[str] = None):
"""Create owner tenant if not exist""" """Create owner tenant if not exist"""
available_ta = ( available_ta = (
TenantAccountJoin.query.filter_by(account_id=account.id).order_by(TenantAccountJoin.id.asc()).first() TenantAccountJoin.query.filter_by(account_id=account.id).order_by(TenantAccountJoin.id.asc()).first()
@ -274,6 +274,9 @@ class TenantService:
if available_ta: if available_ta:
return return
if name:
tenant = TenantService.create_tenant(name)
else:
tenant = TenantService.create_tenant(f"{account.name}'s Workspace") tenant = TenantService.create_tenant(f"{account.name}'s Workspace")
TenantService.create_tenant_member(tenant, account, role="owner") TenantService.create_tenant_member(tenant, account, role="owner")
account.current_tenant = tenant account.current_tenant = tenant