瀏覽代碼

[fix] Header for sms send request (#4417)

version-14
Nabin Hait 7 年之前
committed by GitHub
父節點
當前提交
010a32d95a
沒有發現已知的金鑰在資料庫的簽署中 GPG Key ID: 4AEE18F83AFDEB23
共有 4 個文件被更改,包括 24 次插入11 次删除
  1. +1
    -1
      frappe/core/doctype/sms_settings/sms_settings.json
  2. +20
    -7
      frappe/core/doctype/sms_settings/sms_settings.py
  3. +1
    -1
      frappe/core/doctype/user/user.py
  4. +2
    -2
      frappe/twofactor.py

+ 1
- 1
frappe/core/doctype/sms_settings/sms_settings.json 查看文件

@@ -202,7 +202,7 @@
"issingle": 1, "issingle": 1,
"istable": 0, "istable": 0,
"max_attachments": 0, "max_attachments": 0,
"modified": "2017-10-23 12:57:20.943845",
"modified": "2017-11-01 12:57:20.943845",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Core", "module": "Core",
"name": "SMS Settings", "name": "SMS Settings",


+ 20
- 7
frappe/core/doctype/sms_settings/sms_settings.py 查看文件

@@ -64,18 +64,17 @@ def send_sms(receiver_list, msg, sender_name = '', success_msg = True):


def send_via_gateway(arg): def send_via_gateway(arg):
ss = frappe.get_doc('SMS Settings', 'SMS Settings') ss = frappe.get_doc('SMS Settings', 'SMS Settings')
headers = get_headers(ss)

args = {ss.message_parameter: arg.get('message')} args = {ss.message_parameter: arg.get('message')}
headers={'Accept': "text/plain, text/html, */*"}
for d in ss.get("parameters"): for d in ss.get("parameters"):
if d.header == 1:
headers.update({d.parameter: d.value})
continue
args[d.parameter] = d.value
if not d.header:
args[d.parameter] = d.value


success_list = [] success_list = []
for d in arg.get('receiver_list'): for d in arg.get('receiver_list'):
args[ss.receiver_parameter] = d args[ss.receiver_parameter] = d
status = send_request(ss.sms_gateway_url, headers, args, ss.use_post)
status = send_request(ss.sms_gateway_url, args, headers, ss.use_post)


if 200 <= status < 300: if 200 <= status < 300:
success_list.append(d) success_list.append(d)
@@ -86,9 +85,23 @@ def send_via_gateway(arg):
if arg.get('success_msg'): if arg.get('success_msg'):
frappe.msgprint(_("SMS sent to following numbers: {0}").format("\n" + "\n".join(success_list))) frappe.msgprint(_("SMS sent to following numbers: {0}").format("\n" + "\n".join(success_list)))


def get_headers(sms_settings=None):
if not sms_settings:
sms_settings = frappe.get_doc('SMS Settings', 'SMS Settings')


def send_request(gateway_url, headers, params, use_post=False):
headers={'Accept': "text/plain, text/html, */*"}
for d in sms_settings.get("parameters"):
if d.header == 1:
headers.update({d.parameter: d.value})

return headers

def send_request(gateway_url, params, headers=None, use_post=False):
import requests import requests

if not headers:
headers = get_headers()

if use_post: if use_post:
response = requests.post(gateway_url, headers=headers, data=params) response = requests.post(gateway_url, headers=headers, data=params)
else: else:


+ 1
- 1
frappe/core/doctype/user/user.py 查看文件

@@ -930,7 +930,7 @@ def send_token_via_sms(tmp_id,phone_no=None,user=None):
return False return False


args[ss.receiver_parameter] = usr_phone args[ss.receiver_parameter] = usr_phone
status = send_request(ss.sms_gateway_url, args)
status = send_request(ss.sms_gateway_url, args, use_post=ss.use_post)


if 200 <= status < 300: if 200 <= status < 300:
frappe.cache().delete(tmp_id + '_token') frappe.cache().delete(tmp_id + '_token')


+ 2
- 2
frappe/twofactor.py 查看文件

@@ -255,7 +255,6 @@ def get_link_for_qrcode(user, totp_uri):


def send_token_via_sms(otpsecret, token=None, phone_no=None): def send_token_via_sms(otpsecret, token=None, phone_no=None):
'''Send token as sms to user.''' '''Send token as sms to user.'''
otp_issuer = frappe.db.get_value('System Settings', 'System Settings', 'otp_issuer_name')
try: try:
from frappe.core.doctype.sms_settings.sms_settings import send_request from frappe.core.doctype.sms_settings.sms_settings import send_request
except: except:
@@ -280,7 +279,8 @@ def send_token_via_sms(otpsecret, token=None, phone_no=None):


sms_args = { sms_args = {
'params': args, 'params': args,
'gateway_url': ss.sms_gateway_url
'gateway_url': ss.sms_gateway_url,
'use_post': ss.use_post
} }
enqueue(method=send_request, queue='short', timeout=300, event=None, enqueue(method=send_request, queue='short', timeout=300, event=None,
async=True, job_name=None, now=False, **sms_args) async=True, job_name=None, now=False, **sms_args)


Loading…
取消
儲存