|
|
|
|
@ -1,3 +1,5 @@
|
|
|
|
|
from enum import Enum
|
|
|
|
|
|
|
|
|
|
from pydantic import BaseModel, ConfigDict
|
|
|
|
|
|
|
|
|
|
from configs import dify_config
|
|
|
|
|
@ -20,6 +22,20 @@ class LimitationModel(BaseModel):
|
|
|
|
|
limit: int = 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LicenseStatus(str, Enum):
|
|
|
|
|
NONE = "none"
|
|
|
|
|
INACTIVE = "inactive"
|
|
|
|
|
ACTIVE = "active"
|
|
|
|
|
EXPIRING = "expiring"
|
|
|
|
|
EXPIRED = "expired"
|
|
|
|
|
LOST = "lost"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class LicenseModel(BaseModel):
|
|
|
|
|
status: LicenseStatus = LicenseStatus.NONE
|
|
|
|
|
expired_at: str = ""
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FeatureModel(BaseModel):
|
|
|
|
|
billing: BillingModel = BillingModel()
|
|
|
|
|
members: LimitationModel = LimitationModel(size=0, limit=1)
|
|
|
|
|
@ -47,6 +63,7 @@ class SystemFeatureModel(BaseModel):
|
|
|
|
|
enable_social_oauth_login: bool = False
|
|
|
|
|
is_allow_register: bool = False
|
|
|
|
|
is_allow_create_workspace: bool = False
|
|
|
|
|
license: LicenseModel = LicenseModel()
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class FeatureService:
|
|
|
|
|
@ -131,17 +148,31 @@ class FeatureService:
|
|
|
|
|
|
|
|
|
|
if "sso_enforced_for_signin" in enterprise_info:
|
|
|
|
|
features.sso_enforced_for_signin = enterprise_info["sso_enforced_for_signin"]
|
|
|
|
|
|
|
|
|
|
if "sso_enforced_for_signin_protocol" in enterprise_info:
|
|
|
|
|
features.sso_enforced_for_signin_protocol = enterprise_info["sso_enforced_for_signin_protocol"]
|
|
|
|
|
|
|
|
|
|
if "sso_enforced_for_web" in enterprise_info:
|
|
|
|
|
features.sso_enforced_for_web = enterprise_info["sso_enforced_for_web"]
|
|
|
|
|
|
|
|
|
|
if "sso_enforced_for_web_protocol" in enterprise_info:
|
|
|
|
|
features.sso_enforced_for_web_protocol = enterprise_info["sso_enforced_for_web_protocol"]
|
|
|
|
|
|
|
|
|
|
if "enable_email_code_login" in enterprise_info:
|
|
|
|
|
features.enable_email_code_login = enterprise_info["enable_email_code_login"]
|
|
|
|
|
|
|
|
|
|
if "enable_email_password_login" in enterprise_info:
|
|
|
|
|
features.enable_email_password_login = enterprise_info["enable_email_password_login"]
|
|
|
|
|
|
|
|
|
|
if "is_allow_register" in enterprise_info:
|
|
|
|
|
features.is_allow_register = enterprise_info["is_allow_register"]
|
|
|
|
|
|
|
|
|
|
if "is_allow_create_workspace" in enterprise_info:
|
|
|
|
|
features.is_allow_create_workspace = enterprise_info["is_allow_create_workspace"]
|
|
|
|
|
|
|
|
|
|
if "license" in enterprise_info:
|
|
|
|
|
if "status" in enterprise_info["license"]:
|
|
|
|
|
features.license.status = enterprise_info["license"]["status"]
|
|
|
|
|
|
|
|
|
|
if "expired_at" in enterprise_info["license"]:
|
|
|
|
|
features.license.expired_at = enterprise_info["license"]["expired_at"]
|
|
|
|
|
|