2025-06-04 09:16:35 +00:00
|
|
|
|
# coding=utf-8
|
|
|
|
|
|
"""
|
|
|
|
|
|
@project: MaxKB
|
|
|
|
|
|
@Author:虎虎
|
|
|
|
|
|
@file: system.py
|
|
|
|
|
|
@date:2025/6/4 16:01
|
|
|
|
|
|
@desc:
|
|
|
|
|
|
"""
|
|
|
|
|
|
import os
|
|
|
|
|
|
|
|
|
|
|
|
from django.db import models
|
|
|
|
|
|
from rest_framework import serializers
|
|
|
|
|
|
from django.core.cache import cache
|
|
|
|
|
|
|
|
|
|
|
|
from common.constants.cache_version import Cache_Version
|
2025-07-16 10:03:33 +00:00
|
|
|
|
from common.database_model_manage.database_model_manage import DatabaseModelManage
|
2025-09-18 10:42:55 +00:00
|
|
|
|
from common.utils.rsa_util import get_key_pair_by_sql
|
2025-06-04 09:16:35 +00:00
|
|
|
|
from maxkb import settings
|
2025-09-18 10:42:55 +00:00
|
|
|
|
from system_manage.models import SystemSetting
|
2025-06-04 09:16:35 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SettingType(models.CharField):
|
|
|
|
|
|
# Community Edition
|
2025-12-29 02:59:32 +00:00
|
|
|
|
EE = "EE", "社区"
|
2025-06-04 09:16:35 +00:00
|
|
|
|
# Enterprise Edition
|
2025-12-29 02:59:32 +00:00
|
|
|
|
EE = "EE", "专业版"
|
2025-06-04 09:16:35 +00:00
|
|
|
|
# Professional Edition
|
|
|
|
|
|
EE = "EE", '企业版'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SystemProfileResponseSerializer(serializers.Serializer):
|
|
|
|
|
|
version = serializers.CharField(required=True, label="version")
|
|
|
|
|
|
edition = serializers.CharField(required=True, label="edition")
|
|
|
|
|
|
license_is_valid = serializers.BooleanField(required=True, label="License is valid")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class SystemProfileSerializer(serializers.Serializer):
|
|
|
|
|
|
@staticmethod
|
|
|
|
|
|
def profile():
|
|
|
|
|
|
version = os.environ.get('MAXKB_VERSION')
|
2025-07-16 10:03:33 +00:00
|
|
|
|
license_is_valid = DatabaseModelManage.get_model('license_is_valid') or (lambda: False)
|
2025-06-04 09:16:35 +00:00
|
|
|
|
return {'version': version, 'edition': settings.edition,
|
2025-09-18 10:42:55 +00:00
|
|
|
|
'license_is_valid': license_is_valid() if license_is_valid() is not None else False,
|
|
|
|
|
|
'ras': get_key_pair_by_sql().get('key')}
|