user_setting.py 9.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. from .tool.func import *
  2. def user_setting():
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. support_language = ['default'] + get_init_set_list()['language']['list']
  6. ip = ip_check()
  7. if ban_check() == 1:
  8. return re_error('/ban')
  9. if ip_or_user(ip) == 0:
  10. if flask.request.method == 'POST':
  11. auto_list = [
  12. ['skin', flask.request.form.get('skin', '')],
  13. ['lang', flask.request.form.get('lang', '')],
  14. ['user_title', flask.request.form.get('user_title', '')]
  15. ]
  16. twofa_turn_on = 0
  17. twofa_on = flask.request.form.get('2fa', '')
  18. if twofa_on != '':
  19. twofa_turn_on = 1
  20. twofa_pw = flask.request.form.get('2fa_pw', '')
  21. if twofa_pw != '':
  22. twofa_pw = pw_encode(twofa_pw)
  23. curs.execute(db_change("select data from user_set where id = ? and name = 'encode'"), [ip])
  24. twofa_encode = curs.fetchall()[0][0]
  25. auto_list += [['2fa', 'on'], ['2fa_pw', twofa_pw], ['2fa_pw_encode', twofa_encode]]
  26. else:
  27. auto_list += [['2fa', 'on']]
  28. else:
  29. auto_list += [['2fa', '']]
  30. for auto_data in auto_list:
  31. curs.execute(db_change('select data from user_set where name = ? and id = ?'), [auto_data[0], ip])
  32. if curs.fetchall():
  33. curs.execute(db_change("update user_set set data = ? where name = ? and id = ?"), [auto_data[1], auto_data[0], ip])
  34. else:
  35. curs.execute(db_change("insert into user_set (name, id, data) values (?, ?, ?)"), [auto_data[0], ip, auto_data[1]])
  36. conn.commit()
  37. return redirect('/change')
  38. else:
  39. curs.execute(db_change('select data from user_set where name = "email" and id = ?'), [ip])
  40. data = curs.fetchall()
  41. email = data[0][0] if data and data[0][0] != '' else '-'
  42. curs.execute(db_change('select data from user_set where name = "random_key" and id = ?'), [ip])
  43. data = curs.fetchall()
  44. ramdom_key = data[0][0] if data and data[0][0] != '' else '-'
  45. curs.execute(db_change('select data from user_set where name = "skin" and id = ?'), [ip])
  46. data = curs.fetchall()
  47. div2 = load_skin(data[0][0] if data else '', 0, 1)
  48. curs.execute(db_change('select data from user_set where name = "lang" and id = ?'), [ip])
  49. data = curs.fetchall()
  50. data = [['default']] if not data else data
  51. div3 = ''
  52. for lang_data in support_language:
  53. see_data = lang_data if lang_data != 'default' else load_lang('default')
  54. if data and data[0][0] == lang_data:
  55. div3 = '<option value="' + lang_data + '">' + see_data + '</option>' + div3
  56. else:
  57. div3 += '<option value="' + lang_data + '">' + see_data + '</option>'
  58. # 여기 잘못 짬
  59. curs.execute(db_change('select data from user_set where name = "user_title" and id = ?'), [ip])
  60. data = curs.fetchall()
  61. data = [['']] if not data else data
  62. user_title_list = get_user_title_list()
  63. div4 = ''
  64. for user_title in user_title_list:
  65. if data and data[0][0] == user_title:
  66. div4 = '<option value="' + user_title + '">' + user_title_list[user_title] + '</option>' + div4
  67. else:
  68. div4 += '<option value="' + user_title + '">' + user_title_list[user_title] + '</option>'
  69. curs.execute(db_change('select data from user_set where name = "2fa" and id = ?'), [ip])
  70. fa_data = curs.fetchall()
  71. fa_data = fa_data[0][0] if fa_data and fa_data[0][0] != '' else ''
  72. fa_data_select = ''
  73. fa_data_sp_list = [['off', ''], ['pw', 'on']]
  74. for fa_data_get in fa_data_sp_list:
  75. fa_data_selected = ''
  76. if fa_data == fa_data_get[1]:
  77. fa_data_selected = 'selected'
  78. fa_data_select += '<option ' + fa_data_selected + ' value="' + fa_data_get[1] + '">' + fa_data_get[0] + '</option>'
  79. curs.execute(db_change('select data from user_set where name = "2fa_pw" and id = ?'), [ip])
  80. fa_data_pw = curs.fetchall()
  81. fa_data_pw = load_lang('2fa_password_change') if fa_data_pw else load_lang('2fa_password')
  82. return easy_minify(flask.render_template(skin_check(),
  83. imp = [load_lang('user_setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  84. data = '''
  85. <form method="post">
  86. <div id="get_user_info"></div>
  87. <script>load_user_info("''' + ip + '''");</script>
  88. <hr class="main_hr">
  89. <a href="/change/pw">(''' + load_lang('password_change') + ''')</a>
  90. <hr class="main_hr">
  91. <span>''' + load_lang('email') + ''' : ''' + email + '''</span> <a href="/change/email">(''' + load_lang('email_change') + ''')</a> <a href="/change/email/delete">(''' + load_lang('email_delete') + ''')</a>
  92. <hr class="main_hr">
  93. <span>''' + load_lang('password_instead_key') + ''' : ''' + ramdom_key + ''' <a href="/change/key">(''' + load_lang('key_change') + ''')</a> <a href="/change/key/delete">(''' + load_lang('key_delete') + ''')</a></span>
  94. <h2>''' + load_lang('main') + '''</h2>
  95. <span>''' + load_lang('skin') + '''</span>
  96. <hr class="main_hr">
  97. <select name="skin">''' + div2 + '''</select>
  98. <hr class="main_hr">
  99. <span>''' + load_lang('language') + '''</span>
  100. <hr class="main_hr">
  101. <select name="lang">''' + div3 + '''</select>
  102. <hr class="main_hr">
  103. <span>''' + load_lang('user_title') + '''</span>
  104. <hr class="main_hr">
  105. <select name="user_title">''' + div4 + '''</select>
  106. <h2>''' + load_lang('2fa') + '''</h2>
  107. <select name="2fa"
  108. id="twofa_check_input"
  109. onchange="do_twofa_check(0);">''' + fa_data_select + '''</select>
  110. <div id="fa_plus_content">
  111. <hr class="main_hr">
  112. <input type="password" name="2fa_pw" placeholder="''' + fa_data_pw + '''">
  113. </div>
  114. <hr class="main_hr">
  115. <button type="submit">''' + load_lang('save') + '''</button>
  116. ''' + http_warning() + '''
  117. <script>do_twofa_check(1);</script>
  118. </form>
  119. ''',
  120. menu = [['user', load_lang('return')]]
  121. ))
  122. else:
  123. if flask.request.method == 'POST':
  124. flask.session['skin'] = flask.request.form.get('skin', '')
  125. flask.session['lang'] = flask.request.form.get('lang', '')
  126. return redirect('/change')
  127. else:
  128. div2 = load_skin(
  129. ('' if not 'skin' in flask.session else flask.session['skin']),
  130. 0,
  131. 1
  132. )
  133. data = [['default']] if not 'lang' in flask.session else [[flask.session['lang']]]
  134. div3 = ''
  135. for lang_data in support_language:
  136. see_data = lang_data if lang_data != 'default' else load_lang('default')
  137. if data and data[0][0] == lang_data:
  138. div3 = '<option value="' + lang_data + '">' + see_data + '</option>' + div3
  139. else:
  140. div3 += '<option value="' + lang_data + '">' + see_data + '</option>'
  141. return easy_minify(flask.render_template(skin_check(),
  142. imp = [load_lang('user_setting'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  143. data = '''
  144. <form method="post">
  145. <div id="get_user_info"></div>
  146. <script>load_user_info("''' + ip + '''");</script>
  147. <hr class="main_hr">
  148. <h2>''' + load_lang('main') + '''</h2>
  149. <span>''' + load_lang('skin') + '''</span>
  150. <hr class="main_hr">
  151. <select name="skin">''' + div2 + '''</select>
  152. <hr class="main_hr">
  153. <span>''' + load_lang('language') + '''</span>
  154. <hr class="main_hr">
  155. <select name="lang">''' + div3 + '''</select>
  156. <hr class="main_hr">
  157. <button type="submit">''' + load_lang('save') + '''</button>
  158. ''' + http_warning() + '''
  159. <hr class="main_hr">
  160. <span>''' + load_lang('user_head_warning') + '''</span>
  161. </form>
  162. ''',
  163. menu = [['user', load_lang('return')]]
  164. ))