Merge v4 to dev

This commit is contained in:
Bai
2024-06-24 15:43:40 +08:00
741 changed files with 27595 additions and 34433 deletions

View File

@@ -3,6 +3,7 @@ from .dingtalk import *
from .email import *
from .feishu import *
from .lark import *
from .i18n import *
from .ldap import *
from .public import *
from .security import *

View File

@@ -8,8 +8,8 @@ from django.core.mail import send_mail
from django.utils.translation import gettext_lazy as _
from rest_framework.views import Response, APIView
from common.utils import get_logger
from common.tasks import get_email_connection as get_connection
from common.utils import get_logger
from .. import serializers
logger = get_logger(__file__)
@@ -44,7 +44,7 @@ class MailTestingAPI(APIView):
# setattr(settings, k, v)
try:
subject = settings.EMAIL_SUBJECT_PREFIX or '' + "Test"
message = "Test smtp setting"
message = _("Test smtp setting")
email_from = email_from or email_host_user
email_recipient = email_recipient or email_from
connection = get_connection(

37
apps/settings/api/i18n.py Normal file
View File

@@ -0,0 +1,37 @@
import json
import os
from django.conf import settings
from django.utils._os import safe_join
from rest_framework.generics import RetrieveAPIView
from rest_framework.permissions import AllowAny
from rest_framework.response import Response
class ComponentI18nApi(RetrieveAPIView):
base_path = 'locale'
permission_classes = [AllowAny]
def retrieve(self, request, *args, **kwargs):
name = kwargs.get('name')
component_dir = safe_join(settings.APPS_DIR, 'i18n', name)
lang = request.query_params.get('lang')
if os.path.exists(component_dir):
files = os.listdir(component_dir)
else:
files = []
data = {}
for file in files:
if not file.endswith('.json'):
continue
_lang = file.split('.')[0]
with open(safe_join(component_dir, file), 'r') as f:
data[_lang] = json.load(f)
if lang:
data = data.get(lang) or {}
flat = request.query_params.get('flat', '1')
if flat == '0':
data = {lang: data}
return Response(data)

View File

@@ -65,10 +65,12 @@ class SettingsApi(generics.RetrieveUpdateAPIView):
'ticket': serializers.TicketSettingSerializer,
'ops': serializers.OpsSettingSerializer,
'virtualapp': serializers.VirtualAppSerializer,
'tool': serializers.ToolSerializer,
}
rbac_category_permissions = {
'basic': 'settings.view_setting',
'tool': 'settings.view_setting',
'terminal': 'settings.change_terminal',
'ops': 'settings.change_ops',
'ticket': 'settings.change_ticket',
@@ -81,24 +83,30 @@ class SettingsApi(generics.RetrieveUpdateAPIView):
'security_password': 'settings.change_security',
'security_login_limit': 'settings.change_security',
'ldap': 'settings.change_auth',
'email': 'settings.change_email',
'email_content': 'settings.change_email',
'cas': 'settings.change_auth',
'oidc': 'settings.change_auth',
'saml2': 'settings.change_auth',
'oauth2': 'settings.change_auth',
'wecom': 'settings.change_auth',
'dingtalk': 'settings.change_auth',
'feishu': 'settings.change_auth',
'lark': 'settings.change_auth',
'slack': 'settings.change_auth',
'auth': 'settings.change_auth',
'oidc': 'settings.change_auth',
'passkey': 'settings.change_auth',
'keycloak': 'settings.change_auth',
'radius': 'settings.change_auth',
'cas': 'settings.change_auth',
'sso': 'settings.change_auth',
'saml2': 'settings.change_auth',
'oauth2': 'settings.change_auth',
'clean': 'settings.change_clean',
'other': 'settings.change_other',
'chat': 'settings.change_chatai',
'email': 'settings.change_email',
'email_content': 'settings.change_email',
'sms': 'settings.change_sms',
'alibaba': 'settings.change_sms',
'tencent': 'settings.change_sms',
'huawei': 'settings.change_sms',
'cmpp2': 'settings.change_sms',
'vault': 'settings.change_vault',
}