user_setting_pw.py 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. from .tool.func import *
  2. def user_setting_pw():
  3. with get_db_connect() as conn:
  4. curs = conn.cursor()
  5. if ban_check() == 1:
  6. return re_error('/ban')
  7. ip = ip_check()
  8. if ip_or_user(ip) != 0:
  9. return redirect('/login')
  10. if flask.request.method == 'POST':
  11. now_pw = flask.request.form.get('pw4', None)
  12. new_pw = flask.request.form.get('pw2', None)
  13. re_pw = flask.request.form.get('pw3', None)
  14. if now_pw and new_pw and re_pw:
  15. if new_pw != re_pw:
  16. return re_error('/error/20')
  17. curs.execute(db_change("" + \
  18. "select name, data from user_set " + \
  19. "where id = ? and (name = 'encode' or name = 'pw')" + \
  20. ""), [
  21. flask.session['id']
  22. ])
  23. sql_data = curs.fetchall()
  24. if not sql_data:
  25. return re_error('/error/2')
  26. else:
  27. user = {}
  28. for i in sql_data:
  29. user[i[0]] = i[1]
  30. if pw_check(
  31. now_pw,
  32. user['pw'],
  33. user['encode'],
  34. ip
  35. ) != 1:
  36. return re_error('/error/10')
  37. curs.execute(db_change(
  38. "update user_set set data = ? where id = ? and name = 'pw'"
  39. ), [
  40. pw_encode(new_pw),
  41. ip
  42. ])
  43. return redirect('/user')
  44. else:
  45. return easy_minify(flask.render_template(skin_check(),
  46. imp = [load_lang('password_change'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  47. data = '''
  48. <form method="post">
  49. <input placeholder="''' + load_lang('now_password') + '''" name="pw4" type="password">
  50. <hr class="main_hr">
  51. <input placeholder="''' + load_lang('new_password') + '''" name="pw2" type="password">
  52. <hr class="main_hr">
  53. <input placeholder="''' + load_lang('password_confirm') + '''" name="pw3" type="password">
  54. <hr class="main_hr">
  55. <button type="submit">''' + load_lang('save') + '''</button>
  56. </form>
  57. ''',
  58. menu = [['change', load_lang('return')]]
  59. ))