2
0

user_setting_pw_change.py 2.2 KB

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