login_need_email.py 6.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. from .tool.func import *
  2. def login_need_email_2(conn, tool):
  3. curs = conn.cursor()
  4. if flask.request.method == 'POST':
  5. if tool == 'pass_find':
  6. curs.execute(db_change("select id from user_set where id = ? and name = 'email' and data = ?"), [
  7. flask.request.form.get('id', ''),
  8. flask.request.form.get('email', '')
  9. ])
  10. if curs.fetchall():
  11. flask.session['c_key'] = ''.join(random.choice("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") for i in range(16))
  12. flask.session['c_id'] = flask.request.form.get('id', '')
  13. curs.execute(db_change('select data from other where name = "email_title"'))
  14. sql_d = curs.fetchall()
  15. if sql_d and sql_d[0][0] != '':
  16. t_text = html.escape(sql_d[0][0])
  17. else:
  18. t_text = wiki_set()[0] + ' key'
  19. curs.execute(db_change('select data from other where name = "email_text"'))
  20. sql_d = curs.fetchall()
  21. if sql_d and sql_d[0][0] != '':
  22. i_text = html.escape(sql_d[0][0]) + '\n\nKey : ' + flask.session['c_key']
  23. else:
  24. i_text = 'Key : ' + flask.session['c_key']
  25. if send_email(flask.request.form.get('email', ''), t_text, i_text) == 0:
  26. return re_error('/error/18')
  27. return redirect('/check_pass_key')
  28. else:
  29. return re_error('/error/12')
  30. else:
  31. if tool == 'email_change':
  32. flask.session['c_key'] = ''.join(random.choice("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ") for i in range(16))
  33. flask.session['c_id'] = ip_check()
  34. flask.session['c_pw'] = ''
  35. if 'c_id' in flask.session:
  36. data = re.search(r'@([^@]+)$', flask.request.form.get('email', ''))
  37. if data:
  38. data = data.group(1)
  39. curs.execute(db_change("select html from html_filter where html = ? and kind = 'email'"), [data])
  40. if curs.fetchall():
  41. curs.execute(db_change('select id from user_set where name = "email" and data = ?'), [flask.request.form.get('email', '')])
  42. if curs.fetchall():
  43. flask.session.pop('c_id', None)
  44. flask.session.pop('c_pw', None)
  45. flask.session.pop('c_key', None)
  46. # user 대신 오류 화면 보여주게 수정 필요
  47. return redirect('/user')
  48. else:
  49. curs.execute(db_change('select data from other where name = "email_title"'))
  50. sql_d = curs.fetchall()
  51. if sql_d and sql_d[0][0] != '':
  52. t_text = html.escape(sql_d[0][0])
  53. else:
  54. t_text = wiki_set()[0] + ' key'
  55. curs.execute(db_change('select data from other where name = "email_text"'))
  56. sql_d = curs.fetchall()
  57. if sql_d and sql_d[0][0] != '':
  58. i_text = html.escape(sql_d[0][0]) + '\n\nKey : ' + flask.session['c_key']
  59. else:
  60. i_text = 'Key : ' + flask.session['c_key']
  61. if send_email(flask.request.form.get('email', ''), t_text, i_text) == 0:
  62. return re_error('/error/18')
  63. flask.session['c_email'] = flask.request.form.get('email', '')
  64. if tool == 'email_change':
  65. return redirect('/email_replace')
  66. else:
  67. return redirect('/check_key')
  68. else:
  69. return redirect('/email_filter')
  70. return redirect('/user')
  71. else:
  72. if tool == 'pass_find':
  73. curs.execute(db_change('select data from other where name = "password_search_text"'))
  74. sql_d = curs.fetchall()
  75. if sql_d and sql_d[0][0] != '':
  76. b_text = sql_d[0][0] + '<hr class=\"main_hr\">'
  77. else:
  78. b_text = ''
  79. return easy_minify(flask.render_template(skin_check(),
  80. imp = [load_lang('password_search'), wiki_set(), custom(), other2([0, 0])],
  81. data = b_text + '''
  82. <form method="post">
  83. <input placeholder="''' + load_lang('id') + '''" name="id" type="text">
  84. <hr class=\"main_hr\">
  85. <input placeholder="''' + load_lang('email') + '''" name="email" type="text">
  86. <hr class=\"main_hr\">
  87. <button type="submit">''' + load_lang('save') + '''</button>
  88. </form>
  89. ''',
  90. menu = [['user', load_lang('return')]]
  91. ))
  92. else:
  93. curs.execute(db_change('select data from other where name = "email_insert_text"'))
  94. sql_d = curs.fetchall()
  95. if sql_d and sql_d[0][0] != '':
  96. b_text = sql_d[0][0] + '<hr class=\"main_hr\">'
  97. else:
  98. b_text = ''
  99. return easy_minify(flask.render_template(skin_check(),
  100. imp = [load_lang('email'), wiki_set(), custom(), other2([0, 0])],
  101. data = '''
  102. <a href="/email_filter">(''' + load_lang('email_filter_list') + ''')</a>
  103. <hr class=\"main_hr\">
  104. ''' + b_text + '''
  105. <form method="post">
  106. <input placeholder="''' + load_lang('email') + '''" name="email" type="text">
  107. <hr class=\"main_hr\">
  108. <button type="submit">''' + load_lang('save') + '''</button>
  109. </form>
  110. ''',
  111. menu = [['user', load_lang('return')]]
  112. ))