feat: update register invite member logic
This commit is contained in:
parent
78b1aabb67
commit
187d932420
@ -604,6 +604,7 @@ class RegisterService:
|
|||||||
provider: Optional[str] = None,
|
provider: Optional[str] = None,
|
||||||
language: Optional[str] = None,
|
language: Optional[str] = None,
|
||||||
status: Optional[AccountStatus] = None,
|
status: Optional[AccountStatus] = None,
|
||||||
|
is_invite_member: Optional[bool] = False,
|
||||||
) -> Account:
|
) -> Account:
|
||||||
db.session.begin_nested()
|
db.session.begin_nested()
|
||||||
"""Register account"""
|
"""Register account"""
|
||||||
@ -617,12 +618,15 @@ class RegisterService:
|
|||||||
if open_id is not None or provider is not None:
|
if open_id is not None or provider is not None:
|
||||||
AccountService.link_account_integrate(provider, open_id, account)
|
AccountService.link_account_integrate(provider, open_id, account)
|
||||||
if dify_config.EDITION != "SELF_HOSTED":
|
if dify_config.EDITION != "SELF_HOSTED":
|
||||||
tenant = TenantService.create_tenant(f"{account.name}'s Workspace")
|
should_create_workspace = not is_invite_member or (
|
||||||
|
is_invite_member and dify_config.ALLOW_CREATE_WORKSPACE
|
||||||
|
)
|
||||||
|
|
||||||
TenantService.create_tenant_member(tenant, account, role="owner")
|
if should_create_workspace:
|
||||||
account.current_tenant = tenant
|
tenant = TenantService.create_tenant(f"{account.name}'s Workspace")
|
||||||
|
TenantService.create_tenant_member(tenant, account, role="owner")
|
||||||
tenant_was_created.send(tenant)
|
account.current_tenant = tenant
|
||||||
|
tenant_was_created.send(tenant)
|
||||||
|
|
||||||
db.session.commit()
|
db.session.commit()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
@ -643,7 +647,9 @@ class RegisterService:
|
|||||||
TenantService.check_member_permission(tenant, inviter, None, "add")
|
TenantService.check_member_permission(tenant, inviter, None, "add")
|
||||||
name = email.split("@")[0]
|
name = email.split("@")[0]
|
||||||
|
|
||||||
account = cls.register(email=email, name=name, language=language, status=AccountStatus.PENDING)
|
account = cls.register(
|
||||||
|
email=email, name=name, language=language, status=AccountStatus.PENDING, is_invite_member=True
|
||||||
|
)
|
||||||
# Create new tenant member for invited tenant
|
# Create new tenant member for invited tenant
|
||||||
TenantService.create_tenant_member(tenant, account, role)
|
TenantService.create_tenant_member(tenant, account, role)
|
||||||
TenantService.switch_tenant(account, tenant.id)
|
TenantService.switch_tenant(account, tenant.id)
|
||||||
|
Loading…
Reference in New Issue
Block a user