feat: handle workspace creation limits in login process

pull/17683/head
zhangx1n 1 year ago
parent 95062dd9c6
commit 3afc8ebf72

@ -11,7 +11,6 @@ from controllers.console.error import (
AccountInFreezeError,
AccountNotFound,
EmailSendIpLimitError,
WorkspacesLimitExceeded,
)
from controllers.console.wraps import setup_required
from events.tenant_event import tenant_was_created
@ -133,7 +132,7 @@ class ForgotPasswordResetApi(Resource):
except AccountRegisterError as are:
raise AccountInFreezeError()
except WorkspacesLimitExceededError:
raise WorkspacesLimitExceeded()
pass
return {"result": "success"}

@ -88,6 +88,15 @@ class LoginApi(Resource):
# SELF_HOSTED only have one workspace
tenants = TenantService.get_join_tenants(account)
if len(tenants) == 0:
system_features = FeatureService.get_system_features()
if (
system_features.is_allow_create_workspace
and system_features.license.workspaces.limit != 0
and system_features.license.workspaces.limit - system_features.license.workspaces.size <= 0
):
raise WorkspacesLimitExceeded()
else:
return {
"result": "fail",
"data": "workspace not found, please contact system admin to invite you to join in a workspace",

@ -54,6 +54,7 @@ from services.feature_service import FeatureService
from tasks.delete_account_task import delete_account_task
from tasks.mail_account_deletion_task import send_account_deletion_verification_code
from tasks.mail_invite_member_task import send_invite_member_mail_task
from tasks.mail_reset_password_task import send_reset_password_mail_task
class TokenPair(BaseModel):

Loading…
Cancel
Save