user_setting_pw.py 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  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. user_pw_now = flask.request.form.get('password_now', '')
  12. user_pw = flask.request.form.get('password_new', '')
  13. user_repeat = flask.request.form.get('password_new_repeat', '')
  14. # PW 검증
  15. if user_pw == '':
  16. return re_error('/error/27')
  17. if user_pw != user_repeat:
  18. return re_error('/error/20')
  19. # PW 길이 제한
  20. curs.execute(db_change("select data from other where name = 'password_min_length'"))
  21. db_data = curs.fetchall()
  22. if db_data and db_data[0][0] != '':
  23. password_min_length = int(number_check(db_data[0][0]))
  24. if password_min_length > len(user_pw):
  25. return re_error('/error/40')
  26. curs.execute(db_change("select data from user_set where id = ? and name = 'pw'"), [ip])
  27. db_data = curs.fetchall()
  28. if not db_data:
  29. return re_error('/error/2')
  30. else:
  31. db_user_pw = db_data[0][0]
  32. curs.execute(db_change("select data from user_set where id = ? and name = 'encode'"), [ip])
  33. db_data = curs.fetchall()
  34. if not db_data:
  35. return re_error('/error/2')
  36. else:
  37. db_user_encode = db_data[0][0]
  38. if pw_check(user_pw_now, db_user_pw, db_user_encode, ip) != 1:
  39. return re_error('/error/10')
  40. curs.execute(db_change("update user_set set data = ? where id = ? and name = 'pw'"), [pw_encode(user_pw), ip])
  41. conn.commit()
  42. return redirect('/user')
  43. else:
  44. curs.execute(db_change("select data from other where name = 'password_min_length'"))
  45. db_data = curs.fetchall()
  46. if db_data and db_data[0][0] != '':
  47. password_min_length = ' (' + load_lang('password_min_length') + ' : ' + db_data[0][0] + ')'
  48. else:
  49. password_min_length = ''
  50. return easy_minify(flask.render_template(skin_check(),
  51. imp = [load_lang('password_change'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  52. data = '''
  53. <form method="post">
  54. <input placeholder="''' + load_lang('now_password') + '''" name="password_now" type="password">
  55. <hr class="main_hr">
  56. <input placeholder="''' + load_lang('new_password') + password_min_length + '''" name="password_new" type="password">
  57. <hr class="main_hr">
  58. <input placeholder="''' + load_lang('password_confirm') + '''" name="password_new_repeat" type="password">
  59. <hr class="main_hr">
  60. <button type="submit">''' + load_lang('save') + '''</button>
  61. ''' + http_warning() + '''
  62. </form>
  63. ''',
  64. menu = [['change', load_lang('return')]]
  65. ))