login_check_key.py 5.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. from .tool.func import *
  2. def login_check_key_2(conn, tool):
  3. curs = conn.cursor()
  4. if flask.request.method == 'POST':
  5. if tool == 'check_pass_key':
  6. if 'c_id' in flask.session and flask.session['c_key'] == flask.request.form.get('key', None):
  7. hashed = pw_encode(flask.session['c_key'])
  8. curs.execute(db_change("update user set pw = ? where id = ?"), [hashed, flask.session['c_id']])
  9. conn.commit()
  10. d_id = flask.session['c_id']
  11. pw = flask.session['c_key']
  12. flask.session.pop('c_id', None)
  13. flask.session.pop('c_key', None)
  14. curs.execute(db_change('select data from other where name = "reset_user_text"'))
  15. sql_d = curs.fetchall()
  16. if sql_d and sql_d[0][0] != '':
  17. b_text = sql_d[0][0] + '<hr class=\"main_hr\">'
  18. else:
  19. b_text = ''
  20. return easy_minify(flask.render_template(skin_check(),
  21. imp = [load_lang('reset_user_ok'), wiki_set(), custom(), other2([0, 0])],
  22. data = b_text + load_lang('id') + ' : ' + d_id + '<br>' + load_lang('password') + ' : ' + pw,
  23. menu = [['user', load_lang('return')]]
  24. ))
  25. else:
  26. return redirect('/pass_find')
  27. else:
  28. ip = ip_check()
  29. if 'c_id' in flask.session and flask.session['c_key'] == flask.request.form.get('key', None):
  30. curs.execute(db_change('select data from other where name = "encode"'))
  31. db_data = curs.fetchall()
  32. if tool == 'check_key':
  33. curs.execute(db_change("select id from user limit 1"))
  34. if not curs.fetchall():
  35. curs.execute(db_change("insert into user (id, pw, acl, date, encode) values (?, ?, 'owner', ?, ?)"), [
  36. flask.session['c_id'],
  37. flask.session['c_pw'],
  38. get_time(),
  39. db_data[0][0]
  40. ])
  41. first = 1
  42. else:
  43. curs.execute(db_change("insert into user (id, pw, acl, date, encode) values (?, ?, 'user', ?, ?)"), [
  44. flask.session['c_id'],
  45. flask.session['c_pw'],
  46. get_time(),
  47. db_data[0][0]
  48. ])
  49. first = 0
  50. agent = flask.request.headers.get('User-Agent')
  51. curs.execute(db_change("insert into user_set (name, id, data) values ('email', ?, ?)"), [
  52. flask.session['c_id'],
  53. flask.session['c_email']
  54. ])
  55. curs.execute(db_change("insert into ua_d (name, ip, ua, today, sub) values (?, ?, ?, ?, '')"), [
  56. flask.session['c_id'],
  57. ip,
  58. agent,
  59. get_time()
  60. ])
  61. flask.session['state'] = 1
  62. flask.session['id'] = flask.session['c_id']
  63. flask.session['head'] = ''
  64. conn.commit()
  65. else:
  66. curs.execute(db_change('delete from user_set where name = "email" and id = ?'), [ip])
  67. curs.execute(db_change('insert into user_set (name, id, data) values ("email", ?, ?)'), [ip, flask.session['c_email']])
  68. first = 0
  69. flask.session.pop('c_id', None)
  70. flask.session.pop('c_pw', None)
  71. flask.session.pop('c_key', None)
  72. flask.session.pop('c_email', None)
  73. if first == 0:
  74. return redirect('/change')
  75. else:
  76. return redirect('/setting')
  77. else:
  78. flask.session.pop('c_id', None)
  79. flask.session.pop('c_pw', None)
  80. flask.session.pop('c_key', None)
  81. flask.session.pop('c_email', None)
  82. return redirect('/user')
  83. else:
  84. curs.execute(db_change('select data from other where name = "check_key_text"'))
  85. sql_d = curs.fetchall()
  86. if sql_d and sql_d[0][0] != '':
  87. b_text = sql_d[0][0] + '<hr class=\"main_hr\">'
  88. else:
  89. b_text = ''
  90. return easy_minify(flask.render_template(skin_check(),
  91. imp = [load_lang('check_key'), wiki_set(), custom(), other2([0, 0])],
  92. data = '''
  93. <form method="post">
  94. ''' + b_text + '''
  95. <input placeholder="''' + load_lang('key') + '''" name="key" type="text">
  96. <hr class=\"main_hr\">
  97. <button type="submit">''' + load_lang('save') + '''</button>
  98. </form>
  99. ''',
  100. menu = [['user', load_lang('return')]]
  101. ))