BioTorrents.de’s version of Gazelle
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

login-watch.twig 3.2KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. {% from 'macro/form.twig' import checked %}
  2. <div class="thin">
  3. <div class="header">
  4. <h2>Login Watch Management</h2>
  5. </div>
  6. <div class="linkbox">
  7. <a href="tools.php?action=ip_ban">IP Address Bans</a>
  8. </div>
  9. {% if nr_ban or nr_clear %}
  10. <div class="pad box">
  11. {% if nr_ban %}
  12. IP addresses banned: {{ nr_ban }}
  13. {% endif %}
  14. {% if nr_clear %}
  15. IP addresses cleared: {{ nr_clear }}
  16. {% endif %}
  17. </div>
  18. {% endif %}
  19. {% if list is empty %}
  20. <div class="pad box">
  21. There are no current login watches.
  22. </div>
  23. {% else %}
  24. {{ paginator.linkbox|raw }}
  25. {% for b in list %}
  26. {% if loop.first %}
  27. <form class="manage_form" name="bans" action="" method="post">
  28. <input type="hidden" name="auth" value="{{ auth }}" />
  29. <input type="hidden" name="action" value="login_watch" />
  30. <table width="100%">
  31. <tr class="colhead">
  32. <td>{{ header.ipaddr|raw }}</td>
  33. <td>DNS</td>
  34. <td>{{ header.user|raw }}</td>
  35. <td>{{ header.attempts|raw }}</td>
  36. <td>{{ header.bans|raw }}</td>
  37. <td>{{ header.last_attempt|raw }}</td>
  38. <td>{{ header.banned_until|raw }}</td>
  39. <td>Clear</td>
  40. {% if can_ban %}
  41. <td>Ban</td>
  42. <td>Do nothing</td>
  43. {% endif %}
  44. </tr>
  45. {% endif %}
  46. <tr class="row{{ cycle(['a', 'b'], loop.index0) }}">
  47. <td>
  48. {{ b.ipaddr|raw }}
  49. <a href="https://whatismyipaddress.com/ip/{{ b.ipaddr }}" class="brackets tooltip" title="whatismyipaddress.com" target="_blank">WI</a>
  50. </td>
  51. <td>
  52. {{ b.dns }}
  53. </td>
  54. <td>
  55. {% if b.user_id %}
  56. {{ b.user_id|user_url }}
  57. {% else %}
  58. <i title="no user with this name">{{ b.capture }}</i>
  59. {% endif %}
  60. </td>
  61. <td>
  62. {{ b.attempts }}
  63. </td>
  64. <td>
  65. {{ b.bans }}
  66. </td>
  67. <td>
  68. {{ b.last_attempt|time_diff }}
  69. </td>
  70. <td>
  71. {{ b.banned_until|time_diff }}
  72. </td>
  73. {% if can_ban %}
  74. <td style="text-align: center">
  75. <input type="radio" name="admin-{{ b.id }}" value="clear" />
  76. </td>
  77. <td style="text-align: center">
  78. <input type="radio" name="admin-{{ b.id }}" value="ban" />
  79. </td>
  80. <td style="text-align: center">
  81. <input type="radio" id="noop-{{ b.id }}" name="admin-{{ b.id }}" value="noop" checked="checked" />
  82. </td>
  83. {% else %}
  84. <td>
  85. <input type="checkbox" name="clear-{{ b.id }}" />
  86. </td>
  87. {% endif %}
  88. {% if loop.last %}
  89. {% if can_ban %}
  90. <tr>
  91. <td><br />Ban Reason</td>
  92. <td colspan="9">
  93. <br />
  94. <input type="text" name="reason" size="40" />
  95. <br />When banning, this reason will be recorded for each checked IP address.
  96. </td>
  97. </tr>
  98. {% endif %}
  99. <tr>
  100. <td colspan="10">
  101. <input type="checkbox" id="resolve" name="resolve"{{ checked(resolve) }}
  102. />&nbsp;<label for="resolve">Resolve IP addresses (may be slow)</label><br />
  103. <input type="submit" name="submit" value="Update" />
  104. </td>
  105. </tr>
  106. </table>
  107. </form>
  108. {% endif %}
  109. {% endfor %}
  110. {{ paginator.linkbox|raw }}
  111. {% endif %}
  112. </div>