refactor: update license validation logic to ensure proper function calls

This commit is contained in:
wxg0103 2025-07-16 18:22:41 +08:00
parent 173cf52584
commit 8231ae66e4
4 changed files with 14 additions and 15 deletions

View File

@ -41,7 +41,7 @@ class ChatEmbedSerializer(serializers.Serializer):
show_guide = 'true'
float_icon = f"{self.data.get('protocol')}://{self.data.get('host')}{CONFIG.get_chat_path()}/MaxKB.gif"
is_license_valid = DatabaseModelManage.get_model('license_is_valid')
X_PACK_LICENSE_IS_VALID = is_license_valid if is_license_valid is not None else False
X_PACK_LICENSE_IS_VALID = is_license_valid() if is_license_valid() is not None else False
# 获取接入的query参数
query = self.get_query_api_input(application_access_token.application, params)
float_location = {"x": {"type": "right", "value": 0}, "y": {"type": "bottom", "value": 30}}

View File

@ -242,7 +242,7 @@ def valid_license(model=None, count=None, message=None):
def inner(func):
def run(*args, **kwargs):
is_license_valid = DatabaseModelManage.get_model('license_is_valid')
is_license_valid = is_license_valid if is_license_valid is not None else False
is_license_valid = is_license_valid() if is_license_valid() is not None else False
record_count = QuerySet(model).count()
if not is_license_valid and record_count >= count:

View File

@ -38,4 +38,4 @@ class SystemProfileSerializer(serializers.Serializer):
version = os.environ.get('MAXKB_VERSION')
license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False)
return {'version': version, 'edition': settings.edition,
'license_is_valid': license_is_valid if license_is_valid is not None else False}
'license_is_valid': license_is_valid() if license_is_valid() is not None else False}

View File

@ -569,23 +569,22 @@ def update_user_role(instance, user, user_id=None):
if workspace_user_role_mapping_model:
role_setting = instance.get('role_setting')
license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False)
license_is_valid = license_is_valid if license_is_valid is not None else False
if not license_is_valid and isinstance(role_setting, list) and len(role_setting) == 0:
workspace_user_role_mapping_model.objects.create(
id=uuid.uuid7(),
user_id=user.id,
role_id=RoleConstants.USER.name,
workspace_id='default'
)
license_is_valid = license_is_valid() if license_is_valid() is not None else False
if not role_setting or (len(role_setting) == 1
and role_setting[0].get('role_id') == ''
and len(role_setting[0].get('workspace_ids', [])) == 0):
if not license_is_valid:
workspace_user_role_mapping_model.objects.create(
id=uuid.uuid7(),
user_id=user.id,
role_id=RoleConstants.USER.name,
workspace_id='default'
)
return
is_admin = workspace_user_role_mapping_model.objects.filter(user_id=user_id,
role_id=RoleConstants.ADMIN.name).exists()
if not role_setting or (len(role_setting) == 1
and role_setting[0].get('role_id') == ''
and len(role_setting[0].get('workspace_ids', [])) == 0):
return
if str(user.id) == 'f0dd8f71-e4ee-11ee-8c84-a8a1595801ab':
# 需要判断当前角色的权限 不能删除系统管理员 空间管理员 普通管理员等角色
# role_setting是一个数组 结构式 [{role_id:1,workspace_ids:[1,2]}]