feat: 支持自定义短信认证(文件) (#11784)

* feat: 支持自定义短信认证(文件)

* perf: 翻译

* perf: 还原注释
This commit is contained in:
jiangweidong
2023-10-10 18:23:54 +08:00
committed by GitHub
parent 333746e7c4
commit 70f0f55ddb
12 changed files with 193 additions and 84 deletions

View File

@@ -2,6 +2,7 @@ import importlib
from collections import OrderedDict
from django.utils.translation import gettext_lazy as _
from django.conf import settings
from rest_framework import status
from rest_framework.exceptions import APIException
from rest_framework.generics import ListAPIView, GenericAPIView
@@ -28,7 +29,6 @@ class SMSBackendAPI(ListAPIView):
}
for b in BACKENDS.choices
]
return Response(data)
@@ -39,11 +39,16 @@ class SMSTestingAPI(GenericAPIView):
'huawei': serializers.HuaweiSMSSettingSerializer,
'cmpp2': serializers.CMPP2SMSSettingSerializer,
'custom': serializers.CustomSMSSettingSerializer,
'custom_file': serializers.BaseSMSSettingSerializer,
}
rbac_perms = {
'POST': 'settings.change_sms'
}
@property
def test_code(self):
return '6' * settings.SMS_CODE_LENGTH
@staticmethod
def get_or_from_setting(key, value=''):
if not value:
@@ -63,7 +68,7 @@ class SMSTestingAPI(GenericAPIView):
send_sms_params = {
'sign_name': data['ALIBABA_VERIFY_SIGN_NAME'],
'template_code': data['ALIBABA_VERIFY_TEMPLATE_CODE'],
'template_param': {'code': '666666'}
'template_param': {'code': self.test_code}
}
return init_params, send_sms_params
@@ -78,7 +83,7 @@ class SMSTestingAPI(GenericAPIView):
send_sms_params = {
'sign_name': data['TENCENT_VERIFY_SIGN_NAME'],
'template_code': data['TENCENT_VERIFY_TEMPLATE_CODE'],
'template_param': OrderedDict(code='666666')
'template_param': OrderedDict(code=self.test_code)
}
return init_params, send_sms_params
@@ -94,7 +99,7 @@ class SMSTestingAPI(GenericAPIView):
send_sms_params = {
'sign_name': data['HUAWEI_VERIFY_SIGN_NAME'],
'template_code': data['HUAWEI_VERIFY_TEMPLATE_CODE'],
'template_param': OrderedDict(code='666666')
'template_param': OrderedDict(code=self.test_code)
}
return init_params, send_sms_params
@@ -110,16 +115,18 @@ class SMSTestingAPI(GenericAPIView):
send_sms_params = {
'sign_name': data['CMPP2_VERIFY_SIGN_NAME'],
'template_code': data['CMPP2_VERIFY_TEMPLATE_CODE'],
'template_param': OrderedDict(code='666666')
'template_param': OrderedDict(code=self.test_code)
}
return init_params, send_sms_params
@staticmethod
def get_custom_params(data):
def get_custom_params(self, data):
init_params = {}
send_sms_params = {'template_param': OrderedDict(code='666666')}
send_sms_params = {'template_param': OrderedDict(code=self.test_code)}
return init_params, send_sms_params
def get_custom_file_params(self, data):
return self.get_custom_params(data)
def get_params_by_backend(self, backend, data):
"""
返回两部分参数