login_pass_find_email.py 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. from .tool.func import *
  2. def login_pass_find_email_2(conn, tool):
  3. curs = conn.cursor()
  4. if flask.request.method == 'POST' or \
  5. ('c_key' in flask.session and flask.session['c_key'] == 'email_pass'):
  6. re_set_list = ['c_id', 'c_pw', 'c_ans', 'c_que', 'c_key', 'c_type', 'c_email']
  7. ip = ip_check()
  8. input_key = flask.request.form.get('key', '')
  9. user_agent = flask.request.headers.get('User-Agent', '')
  10. if 'c_type' in flask.session and \
  11. flask.session['c_type'] == 'pass_find' and \
  12. flask.session['c_key'] == input_key:
  13. curs.execute(db_change("update user_set set data = ? where name = 'pw' and id = ?"), [
  14. pw_encode(flask.session['c_key']),
  15. flask.session['c_id']
  16. ])
  17. conn.commit()
  18. user_id = flask.session['c_id']
  19. user_pw = flask.session['c_key']
  20. for i in re_set_list:
  21. flask.session.pop(i, None)
  22. curs.execute(db_change('select data from other where name = "reset_user_text"'))
  23. sql_d = curs.fetchall()
  24. b_text = (sql_d[0][0] + '<hr class="main_hr">') if sql_d and sql_d[0][0] != '' else ''
  25. curs.execute(db_change('select data from user_set where name = "2fa" and id = ?'), [user_id])
  26. if curs.fetchall():
  27. curs.execute(db_change("update user_set set data = '' where name = '2fa' and id = ?"), [user_id])
  28. return easy_minify(flask.render_template(skin_check(),
  29. imp = [load_lang('reset_user_ok'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  30. data = b_text + load_lang('id') + ' : ' + user_id + '<br>' + load_lang('password') + ' : ' + user_pw,
  31. menu = [['user', load_lang('return')]]
  32. ))
  33. elif 'c_type' in flask.session and \
  34. (flask.session['c_key'] == input_key or flask.session['c_key'] == 'email_pass'):
  35. curs.execute(db_change('select data from other where name = "encode"'))
  36. db_data = curs.fetchall()
  37. if flask.session['c_type'] == 'register':
  38. if flask.session['c_key'] == 'email_pass':
  39. flask.session['c_email'] = ''
  40. curs.execute(db_change("select id from user_set limit 1"))
  41. first = 1 if not curs.fetchall() else 0
  42. curs.execute(db_change("select id from user_set where id = ?"), [
  43. flask.session['c_id']
  44. ])
  45. if curs.fetchall():
  46. for i in re_set_list:
  47. flask.session.pop(i, None)
  48. return re_error('/error/6')
  49. curs.execute(db_change("select id from user_set where id = ? and name = 'application'"), [
  50. flask.session['c_id']
  51. ])
  52. if curs.fetchall():
  53. for i in re_set_list:
  54. flask.session.pop(i, None)
  55. return re_error('/error/6')
  56. curs.execute(db_change(
  57. 'select data from other where name = "requires_approval"'
  58. ))
  59. requires_approval = curs.fetchall()
  60. if requires_approval and requires_approval[0][0] == 'on':
  61. user_app_data = {}
  62. user_app_data['id'] = flask.session['c_id']
  63. user_app_data['pw'] = flask.session['c_pw']
  64. user_app_data['date'] = get_time()
  65. user_app_data['encode'] = db_data[0][0]
  66. user_app_data['question'] = flask.session['c_que']
  67. user_app_data['answer'] = flask.session['c_ans']
  68. user_app_data['ip'] = ip
  69. user_app_data['ua'] = user_agent
  70. user_app_data['email'] = flask.session['c_email']
  71. curs.execute(db_change(
  72. "insert into user_set (id, name, data) values (?, ?, ?)"
  73. ), [
  74. flask.session['c_id'],
  75. 'application',
  76. json.dumps(user_app_data)
  77. ])
  78. conn.commit()
  79. for i in re_set_list:
  80. flask.session.pop(i, None)
  81. return redirect('/application_submitted')
  82. else:
  83. if first == 0:
  84. user_auth = 'user'
  85. else:
  86. user_auth = 'owner'
  87. curs.execute(db_change("insert into user_set (id, name, data) values (?, 'pw', ?)"), [
  88. flask.session['c_id'],
  89. flask.session['c_pw']
  90. ])
  91. curs.execute(db_change("insert into user_set (id, name, data) values (?, 'acl', ?)"), [
  92. flask.session['c_id'],
  93. user_auth
  94. ])
  95. curs.execute(db_change("insert into user_set (id, name, data) values (?, 'date', ?)"), [
  96. flask.session['c_id'],
  97. get_time()
  98. ])
  99. curs.execute(db_change("insert into user_set (id, name, data) values (?, 'encode', ?)"), [
  100. flask.session['c_id'],
  101. db_data[0][0]
  102. ])
  103. curs.execute(db_change("insert into user_set (name, id, data) values ('email', ?, ?)"), [
  104. flask.session['c_id'],
  105. flask.session['c_email']
  106. ])
  107. ua_plus(flask.session['c_id'], ip, user_agent, get_time())
  108. flask.session['id'] = flask.session['c_id']
  109. flask.session['head'] = ''
  110. conn.commit()
  111. else:
  112. curs.execute(db_change('delete from user_set where name = "email" and id = ?'), [ip])
  113. curs.execute(db_change('insert into user_set (name, id, data) values ("email", ?, ?)'), [ip, flask.session['c_email']])
  114. first = 0
  115. for i in re_set_list:
  116. flask.session.pop(i, None)
  117. return redirect('/change') if first == 0 else redirect('/setting')
  118. else:
  119. for i in re_set_list:
  120. flask.session.pop(i, None)
  121. return redirect('/user')
  122. else:
  123. curs.execute(db_change('select data from other where name = "check_key_text"'))
  124. sql_d = curs.fetchall()
  125. b_text = (sql_d[0][0] + '<hr class="main_hr">') if sql_d and sql_d[0][0] != '' else ''
  126. return easy_minify(flask.render_template(skin_check(),
  127. imp = [load_lang('check_key'), wiki_set(), wiki_custom(), wiki_css([0, 0])],
  128. data = '''
  129. <form method="post">
  130. ''' + b_text + '''
  131. <input placeholder="''' + load_lang('key') + '''" name="key" type="text">
  132. <hr class="main_hr">
  133. <button type="submit">''' + load_lang('save') + '''</button>
  134. </form>
  135. ''',
  136. menu = [['user', load_lang('return')]]
  137. ))