user_setting.py 6.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. from .tool.func import *
  2. def user_setting_2(conn, server_init):
  3. curs = conn.cursor()
  4. support_language = ['default'] + server_init.server_set_var['language']['list']
  5. ip = ip_check()
  6. if ban_check() == 1:
  7. return re_error('/ban')
  8. if ip_or_user(ip) == 0:
  9. if flask.request.method == 'POST':
  10. pass_list = ['2fa']
  11. auto_list = ['skin', 'lang'] + pass_list + ['2fa_pw', '2fa_pw_encode']
  12. for auto_data in auto_list:
  13. if auto_data == '2fa_pw':
  14. if flask.request.form.get('2fa_pw', '') != '':
  15. get_data = pw_encode(flask.request.form.get(auto_data, ''))
  16. else:
  17. get_data = ''
  18. elif auto_data == '2fa_pw_encode':
  19. if flask.request.form.get('2fa_pw', '') != '':
  20. curs.execute(db_change("select encode from user where id = ?"), [ip])
  21. get_data = curs.fetchall()[0][0]
  22. else:
  23. get_data = ''
  24. else:
  25. get_data = flask.request.form.get(auto_data, '')
  26. if auto_data in pass_list or get_data != '':
  27. curs.execute(db_change('select data from user_set where name = ? and id = ?'), [auto_data, ip])
  28. if curs.fetchall():
  29. curs.execute(db_change("update user_set set data = ? where name = ? and id = ?"), [get_data, auto_data, ip])
  30. else:
  31. curs.execute(db_change("insert into user_set (name, id, data) values (?, ?, ?)"), [auto_data, ip, get_data])
  32. conn.commit()
  33. return redirect('/change')
  34. else:
  35. curs.execute(db_change('select data from user_set where name = "email" and id = ?'), [ip])
  36. data = curs.fetchall()
  37. email = data[0][0] if data else '-'
  38. div2 = load_skin('', 0, 1)
  39. div3 = ''
  40. curs.execute(db_change('select data from user_set where name = "lang" and id = ?'), [ip_check()])
  41. data = curs.fetchall()
  42. data = [['default']] if not data else data
  43. for lang_data in support_language:
  44. see_data = lang_data if lang_data != 'default' else load_lang('default')
  45. if data and data[0][0] == lang_data:
  46. div3 = '<option value="' + lang_data + '">' + see_data + '</option>' + div3
  47. else:
  48. div3 += '<option value="' + lang_data + '">' + see_data + '</option>'
  49. curs.execute(db_change('select data from user_set where name = "2fa" and id = ?'), [ip])
  50. fa_data = curs.fetchall()
  51. fa_data = 'checked' if fa_data and fa_data[0][0] != '' else ''
  52. curs.execute(db_change('select data from user_set where name = "2fa_pw" and id = ?'), [ip])
  53. fa_data_pw = curs.fetchall()
  54. fa_data_pw = load_lang('2fa_password_change') if fa_data_pw else load_lang('2fa_password')
  55. return easy_minify(flask.render_template(skin_check(),
  56. imp = [load_lang('user_setting'), wiki_set(), custom(), other2([0, 0])],
  57. data = '''
  58. <form method="post">
  59. <span>''' + load_lang('id') + ''' : ''' + ip_pas(ip) + '''</span>
  60. <hr class="main_hr">
  61. <a href="/pw_change">(''' + load_lang('password_change') + ''')</a>
  62. <hr class="main_hr">
  63. <span>''' + load_lang('email') + ''' : ''' + email + '''</span> <a href="/email_change">(''' + load_lang('email_change') + ''')</a>
  64. <h2>''' + load_lang('main') + '''</h2>
  65. <span>''' + load_lang('skin') + '''</span>
  66. <hr class="main_hr">
  67. <select name="skin">''' + div2 + '''</select>
  68. <hr class="main_hr">
  69. <span>''' + load_lang('language') + '''</span>
  70. <hr class="main_hr">
  71. <select name="lang">''' + div3 + '''</select>
  72. <h2>''' + load_lang('2fa') + '''</h2>
  73. <input type="checkbox" name="2fa" value="on" ''' + fa_data + '''> ''' + load_lang('on') + '''
  74. <hr class="main_hr">
  75. <input type="password" name="2fa_pw" placeholder="''' + fa_data_pw + '''">
  76. <hr class="main_hr">
  77. <button type="submit">''' + load_lang('save') + '''</button>
  78. ''' + http_warring() + '''
  79. </form>
  80. ''',
  81. menu = [['user', load_lang('return')]]
  82. ))
  83. else:
  84. if flask.request.method == 'POST':
  85. flask.session['skin'] = flask.request.form.get('skin', '')
  86. flask.session['lang'] = flask.request.form.get('lang', '')
  87. return redirect('/change')
  88. else:
  89. div2 = load_skin(('' if not 'skin' in flask.session else flask.session['skin']), 0, 1)
  90. div3 = ''
  91. data = [['default']] if not 'lang' in flask.session else [[flask.session['lang']]]
  92. for lang_data in support_language:
  93. see_data = lang_data if lang_data != 'default' else load_lang('default')
  94. if data and data[0][0] == lang_data:
  95. div3 = '<option value="' + lang_data + '">' + see_data + '</option>' + div3
  96. else:
  97. div3 += '<option value="' + lang_data + '">' + see_data + '</option>'
  98. return easy_minify(flask.render_template(skin_check(),
  99. imp = [load_lang('user_setting'), wiki_set(), custom(), other2([0, 0])],
  100. data = '''
  101. <form method="post">
  102. <span>''' + load_lang('id') + ''' : ''' + ip_pas(ip) + '''</span>
  103. <hr class="main_hr">
  104. <h2>''' + load_lang('main') + '''</h2>
  105. <span>''' + load_lang('skin') + '''</span>
  106. <hr class="main_hr">
  107. <select name="skin">''' + div2 + '''</select>
  108. <hr class="main_hr">
  109. <span>''' + load_lang('language') + '''</span>
  110. <hr class="main_hr">
  111. <select name="lang">''' + div3 + '''</select>
  112. <hr class="main_hr">
  113. <button type="submit">''' + load_lang('save') + '''</button>
  114. ''' + http_warring() + '''
  115. <hr class="main_hr">
  116. <span>''' + load_lang('user_head_warring') + '''</span>
  117. </form>
  118. ''',
  119. menu = [['user', load_lang('return')]]
  120. ))