give_user_ban.py 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. from .tool.func import *
  2. def give_user_ban_2(conn, name):
  3. curs = conn.cursor()
  4. if name and ip_or_user(name) == 0:
  5. curs.execute("select acl from user where id = ?", [name])
  6. user = curs.fetchall()
  7. if not user:
  8. return re_error('/error/2')
  9. if user and user[0][0] != 'user':
  10. if admin_check() != 1:
  11. return re_error('/error/4')
  12. if ban_check(ip = ip_check(), tool = 'login') == 1:
  13. return re_error('/ban')
  14. if flask.request.method == 'POST':
  15. name = name if name else flask.request.form.get('name', 'test')
  16. if admin_check(1, 'ban' + ((' (' + name + ')') if name else '')) != 1:
  17. return re_error('/error/3')
  18. end = flask.request.form.get('second', '0')
  19. end = end if end else '0'
  20. if flask.request.form.get('regex', None):
  21. type_d = 'regex'
  22. try:
  23. re.compile(name)
  24. except:
  25. return re_error('/error/23')
  26. else:
  27. type_d = None
  28. ban_insert(
  29. name,
  30. end,
  31. flask.request.form.get('why', ''),
  32. flask.request.form.get('login', ''),
  33. ip_check(),
  34. type_d
  35. )
  36. return redirect('/block_log')
  37. else:
  38. if admin_check(1) != 1:
  39. return re_error('/error/3')
  40. curs.execute("select end, why from ban where block = ?", [name])
  41. end = curs.fetchall()
  42. if end:
  43. now = load_lang('release')
  44. if end[0][0] == '':
  45. data = '<ul><li>' + load_lang('limitless') + '</li>'
  46. else:
  47. data = '<ul><li>' + load_lang('period') + ' : ' + end[0][0] + '</li>'
  48. curs.execute("select block from ban where block = ? and login = 'O'", [name])
  49. if curs.fetchall():
  50. data += '<li>' + load_lang('login_able') + '</li>'
  51. if end[0][1] != '':
  52. data += '<li>' + load_lang('why') + ' : ' + end[0][1] + '</li></ul><hr class=\"main_hr\">'
  53. else:
  54. data += '</ul><hr class=\"main_hr\">'
  55. else:
  56. if name:
  57. if name and re.search("^([0-9]{1,3}\.[0-9]{1,3})$", name):
  58. b_now = load_lang('band_ban')
  59. else:
  60. b_now = load_lang('ban')
  61. now = ' (' + b_now + ')'
  62. if name and ip_or_user(name) == 1:
  63. plus = '<input type="checkbox" name="login"> ' + load_lang('login_able') + '<hr class=\"main_hr\">'
  64. else:
  65. plus = ''
  66. name += '<hr class=\"main_hr\">'
  67. regex = ''
  68. else:
  69. name = '<input placeholder="' + load_lang('name_or_ip_or_regex') + '" name="name" type="text"><hr class=\"main_hr\">'
  70. regex = '<input type="checkbox" name="regex"> ' + load_lang('regex') + '<hr class=\"main_hr\">'
  71. plus = '<input type="checkbox" name="login"> ' + load_lang('login_able') + '<hr class=\"main_hr\">'
  72. now = 0
  73. b_now = load_lang('ban')
  74. data = name + '''
  75. <input placeholder="''' + load_lang('ban_period') + ''' (''' + load_lang('second') + ''')" name="second" type="text">
  76. <hr class=\"main_hr\">
  77. ''' + regex + '''
  78. <input placeholder="''' + load_lang('why') + '''" name="why" type="text">
  79. <hr class=\"main_hr\">
  80. ''' + plus
  81. return easy_minify(flask.render_template(skin_check(),
  82. imp = [load_lang('ban'), wiki_set(), custom(), other2([now, 0])],
  83. data = '''
  84. <form method="post">
  85. ''' + data + '''
  86. <button type="submit">''' + b_now + '''</button>
  87. </form>
  88. <h2>''' + load_lang('explanation') + '''</h2>
  89. <ul>
  90. <li>''' + load_lang('ban_explanation') + '''</li>
  91. </ul>
  92. ''',
  93. menu = [['manager', load_lang('return')]]
  94. ))