mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-08-05 16:20:48 +08:00
feat(license): add license checks for workspace and team member limits
This commit is contained in:
parent
1045f6db7a
commit
3603418bc6
@ -54,6 +54,13 @@ class MemberInviteEmailApi(Resource):
|
|||||||
inviter = current_user
|
inviter = current_user
|
||||||
invitation_results = []
|
invitation_results = []
|
||||||
console_web_url = dify_config.CONSOLE_WEB_URL
|
console_web_url = dify_config.CONSOLE_WEB_URL
|
||||||
|
if (FeatureService.get_system_features().license.product_id == "DIFY_ENTERPRISE_STANDARD" and
|
||||||
|
len(invitee_emails) > FeatureService.get_system_features().available_team_members):
|
||||||
|
return {
|
||||||
|
"code": "limit-exceeded",
|
||||||
|
"message": "Limit exceeded",
|
||||||
|
}, 400
|
||||||
|
|
||||||
for invitee_email in invitee_emails:
|
for invitee_email in invitee_emails:
|
||||||
try:
|
try:
|
||||||
token = RegisterService.invite_new_member(
|
token = RegisterService.invite_new_member(
|
||||||
|
@ -585,6 +585,9 @@ class TenantService:
|
|||||||
if not FeatureService.get_system_features().is_allow_create_workspace and not is_setup:
|
if not FeatureService.get_system_features().is_allow_create_workspace and not is_setup:
|
||||||
raise WorkSpaceNotAllowedCreateError()
|
raise WorkSpaceNotAllowedCreateError()
|
||||||
|
|
||||||
|
if FeatureService.get_system_features().license.product_id == "DIFY_ENTERPRISE_STANDARD" and FeatureService.get_system_features().available_workspaces == 0:
|
||||||
|
raise WorkSpaceNotAllowedCreateError()
|
||||||
|
|
||||||
if name:
|
if name:
|
||||||
tenant = TenantService.create_tenant(name=name, is_setup=is_setup)
|
tenant = TenantService.create_tenant(name=name, is_setup=is_setup)
|
||||||
else:
|
else:
|
||||||
|
@ -34,6 +34,9 @@ class LicenseStatus(StrEnum):
|
|||||||
class LicenseModel(BaseModel):
|
class LicenseModel(BaseModel):
|
||||||
status: LicenseStatus = LicenseStatus.NONE
|
status: LicenseStatus = LicenseStatus.NONE
|
||||||
expired_at: str = ""
|
expired_at: str = ""
|
||||||
|
product_id: str = ""
|
||||||
|
available_team_members: int = 0
|
||||||
|
available_workspaces: int = 0
|
||||||
|
|
||||||
|
|
||||||
class BrandingModel(BaseModel):
|
class BrandingModel(BaseModel):
|
||||||
@ -202,3 +205,12 @@ class FeatureService:
|
|||||||
|
|
||||||
if "expiredAt" in license_info:
|
if "expiredAt" in license_info:
|
||||||
features.license.expired_at = license_info["expiredAt"]
|
features.license.expired_at = license_info["expiredAt"]
|
||||||
|
|
||||||
|
if "productId" in license_info:
|
||||||
|
features.license.product_id = license_info["productId"]
|
||||||
|
|
||||||
|
if "availableTeamMembers" in license_info:
|
||||||
|
features.license.available_team_members = license_info["availableTeamMembers"]
|
||||||
|
|
||||||
|
if "availableWorkspaces" in license_info:
|
||||||
|
features.license.available_workspaces = license_info["availableWorkspaces"]
|
||||||
|
Loading…
x
Reference in New Issue
Block a user