File tree Expand file tree Collapse file tree 7 files changed +98
-1
lines changed
Expand file tree Collapse file tree 7 files changed +98
-1
lines changed Original file line number Diff line number Diff line change @@ -20,8 +20,10 @@ class Cache_Version(Enum):
2020 ROLE_LIST = "ROLE:LIST" , lambda user_id : user_id
2121 # 当前用户所有权限
2222 PERMISSION_LIST = "PERMISSION:LIST" , lambda user_id : user_id
23-
23+ # 验证码
2424 CAPTCHA = "CAPTCHA" , lambda captcha : captcha
25+ # 系统
26+ SYSTEM = "SYSTEM" , lambda key : key
2527
2628 def get_version (self ):
2729 return self .value [0 ]
Original file line number Diff line number Diff line change 155155# https://docs.djangoproject.com/en/4.2/ref/settings/#default-auto-field
156156
157157DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
158+
159+ edition = 'CE'
Original file line number Diff line number Diff line change 1+ # coding=utf-8
2+ """
3+ @project: MaxKB
4+ @Author:虎虎
5+ @file: system_setting.py
6+ @date:2025/6/4 16:34
7+ @desc:
8+ """
9+ from common .mixins .api_mixin import APIMixin
10+ from common .result import ResultSerializer
11+ from system_manage .serializers .system import SystemProfileResponseSerializer
12+
13+
14+ class SystemProfileResult (ResultSerializer ):
15+ def get_data (self ):
16+ return SystemProfileResponseSerializer ()
17+
18+
19+ class SystemProfileAPI (APIMixin ):
20+ @staticmethod
21+ def get_response ():
22+ return SystemProfileResult
Original file line number Diff line number Diff line change 1+ # coding=utf-8
2+ """
3+ @project: MaxKB
4+ @Author:虎虎
5+ @file: system.py
6+ @date:2025/6/4 16:01
7+ @desc:
8+ """
9+ import os
10+
11+ from django .db import models
12+ from rest_framework import serializers
13+ from django .core .cache import cache
14+
15+ from common .constants .cache_version import Cache_Version
16+ from maxkb import settings
17+
18+
19+ class SettingType (models .CharField ):
20+ # Community Edition
21+ CE = "CE" , "社区"
22+ # Enterprise Edition
23+ PE = "PE" , "专业版"
24+ # Professional Edition
25+ EE = "EE" , '企业版'
26+
27+
28+ class SystemProfileResponseSerializer (serializers .Serializer ):
29+ version = serializers .CharField (required = True , label = "version" )
30+ edition = serializers .CharField (required = True , label = "edition" )
31+ license_is_valid = serializers .BooleanField (required = True , label = "License is valid" )
32+
33+
34+ class SystemProfileSerializer (serializers .Serializer ):
35+ @staticmethod
36+ def profile ():
37+ version = os .environ .get ('MAXKB_VERSION' )
38+ license_is_valid = cache .get (Cache_Version .SYSTEM .get_key (key = 'license_is_valid' ),
39+ version = Cache_Version .SYSTEM .get_version ())
40+ return {'version' : version , 'edition' : settings .edition ,
41+ 'license_is_valid' : license_is_valid if license_is_valid is not None else False }
Original file line number Diff line number Diff line change 77 path ('workspace/<str:workspace_id>/user_resource_permission/user/<str:user_id>' ,
88 views .WorkSpaceUserResourcePermissionView .as_view ()),
99 path ('email_setting' , views .SystemSetting .Email .as_view ()),
10+ path ('profile' , views .SystemProfile .as_view ())
1011]
Original file line number Diff line number Diff line change 88"""
99from .user_resource_permission import *
1010from .email_setting import *
11+ from .system_profile import *
Original file line number Diff line number Diff line change 1+ # coding=utf-8
2+ """
3+ @project: MaxKB
4+ @Author:虎虎
5+ @file: system_profile.py
6+ @date:2025/6/4 15:59
7+ @desc:
8+ """
9+ from django .utils .translation import gettext_lazy as _
10+ from drf_spectacular .utils import extend_schema
11+ from rest_framework .request import Request
12+ from rest_framework .views import APIView
13+
14+ from common import result
15+ from system_manage .api .system import SystemProfileAPI
16+ from system_manage .serializers .system import SystemProfileSerializer
17+
18+
19+ class SystemProfile (APIView ):
20+ @extend_schema (
21+ methods = ['GET' ],
22+ description = _ ('Get MaxKB related information' ),
23+ operation_id = _ ('Get MaxKB related information' ), # type: ignore
24+ responses = SystemProfileAPI .get_response (),
25+ tags = [_ ('System parameters' )] # type: ignore
26+ )
27+ def get (self , request : Request ):
28+ return result .success (SystemProfileSerializer .profile ())
You can’t perform that action at this time.
0 commit comments