setting_oauth.py 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. from .tool.func import *
  2. def setting_oauth_2(conn):
  3. curs = conn.cursor()
  4. if admin_check(None, 'oauth setting') != 1:
  5. return re_error('/error/3')
  6. if flask.request.method == 'POST':
  7. try:
  8. facebook_client_id = flask.request.form['facebook_client_id']
  9. facebook_client_secret = flask.request.form['facebook_client_secret']
  10. naver_client_id = flask.request.form['naver_client_id']
  11. naver_client_secret = flask.request.form['naver_client_secret']
  12. except:
  13. return easy_minify(flask.render_template(skin_check(),
  14. imp = [load_lang('inter_error'), wiki_set(), custom(), other2([0, 0])],
  15. data = '<h2>ie_no_data_required</h2>' + load_lang('ie_no_data_required'),
  16. menu = [['other', load_lang('return')]]
  17. ))
  18. with open(app_var['path_oauth_setting'], 'r', encoding='utf-8') as f:
  19. legacy = json.loads(f.read())
  20. with open(app_var['path_oauth_setting'], 'w', encoding='utf-8') as f:
  21. f.write('''
  22. {
  23. "_README" : {
  24. "en" : "''' + legacy['_README']['en'] + '''",
  25. "ko" : "''' + legacy['_README']['ko'] + '''",
  26. "support" : ''' + str(legacy['_README']['support']).replace("'", '"') + '''
  27. },
  28. "publish_url" : "''' + legacy['publish_url'] + '''",
  29. "facebook" : {
  30. "client_id" : "''' + facebook_client_id + '''",
  31. "client_secret" : "''' + facebook_client_secret + '''"
  32. },
  33. "naver" : {
  34. "client_id" : "''' + naver_client_id + '''",
  35. "client_secret" : "''' + naver_client_secret + '''"
  36. }
  37. }
  38. ''')
  39. return flask.redirect('/oauth_setting')
  40. oauth_supported = load_oauth('_README')['support']
  41. body_content = ''
  42. body_content += '''
  43. <script>
  44. function check_value (target) {
  45. target_box = document.getElementById(target.id + "_box");
  46. if (target.value !== "") {
  47. target_box.checked = true;
  48. } else {
  49. target_box.checked = false;
  50. }
  51. }
  52. </script>
  53. '''
  54. init_js = ''
  55. body_content += '<form method="post">'
  56. for i in range(len(oauth_supported)):
  57. oauth_data = load_oauth(oauth_supported[i])
  58. for j in range(2):
  59. if j == 0:
  60. load_target = 'id'
  61. elif j == 1:
  62. load_target = 'secret'
  63. init_js += 'check_value(document.getElementById("{}_client_{}"));'.format(oauth_supported[i], load_target)
  64. body_content += '''
  65. <input id="{}_client_{}_box" type="checkbox" disabled>
  66. <input placeholder="{}_client_{}" id="{}_client_{}" name="{}_client_{}" value="{}" type="text" onChange="check_value(this)" style="width: 80%;">
  67. <hr>
  68. '''.format(
  69. oauth_supported[i],
  70. load_target,
  71. oauth_supported[i],
  72. load_target,
  73. oauth_supported[i],
  74. load_target,
  75. oauth_supported[i],
  76. load_target,
  77. oauth_data['client_{}'.format(load_target)]
  78. )
  79. body_content += '<button id="save" type="submit">' + load_lang('save') + '</button></form>'
  80. body_content += '<script>' + init_js + '</script>'
  81. return easy_minify(flask.render_template(skin_check(),
  82. imp = [load_lang('oauth_setting'), wiki_set(), custom(), other2([0, 0])],
  83. data = body_content,
  84. menu = [['other', load_lang('return')]]
  85. ))