diff --git a/apps/chat/serializers/chat_embed_serializers.py b/apps/chat/serializers/chat_embed_serializers.py index 9c185f273..6ded90e71 100644 --- a/apps/chat/serializers/chat_embed_serializers.py +++ b/apps/chat/serializers/chat_embed_serializers.py @@ -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}} diff --git a/apps/common/utils/common.py b/apps/common/utils/common.py index 18765d1fd..f124b9f12 100644 --- a/apps/common/utils/common.py +++ b/apps/common/utils/common.py @@ -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: diff --git a/apps/system_manage/serializers/system.py b/apps/system_manage/serializers/system.py index b1d1baa71..61536edd1 100644 --- a/apps/system_manage/serializers/system.py +++ b/apps/system_manage/serializers/system.py @@ -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} diff --git a/apps/users/serializers/user.py b/apps/users/serializers/user.py index b37409bd6..b21bd5e5e 100644 --- a/apps/users/serializers/user.py +++ b/apps/users/serializers/user.py @@ -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]}]