login_need_email.py 6.2 KB

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