Add a new IP address search page at /ip_addresses. Replaces the old search page at /moderator/ip_addrs. On user profile pages, show the user's last known IP to mods. Also add search links for finding other IPs or accounts associated with the user. IP address search uses a big UNION ALL statement to merge IP addresses across various tables into a single view. This makes searching easier, but is known to timeout in certain cases. Fixes #4207 (the new IP search page supports searching by subnet).
31 lines
954 B
Plaintext
31 lines
954 B
Plaintext
<table class="striped autofit">
|
|
<thead>
|
|
<tr>
|
|
<th>Source</th>
|
|
<th>ID</th>
|
|
<th>IP Address</th>
|
|
<th>User</th>
|
|
<th>Date</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<% @ip_addresses.each do |ip| %>
|
|
<tr>
|
|
<td><%= link_to ip.model_type.underscore.humanize, ip_addresses_path(search: { model_type: ip.model_type }) %></td>
|
|
<td><%= link_to "##{ip.model_id}", ip.model %></td>
|
|
<td>
|
|
<%= link_to ip.ip_addr, ip_addresses_path(search: { ip_addr: ip.ip_addr }) %>
|
|
<%= link_to "»", ip_addresses_path(search: { ip_addr: ip.ip_addr, group_by: "user" }) %>
|
|
</td>
|
|
<td>
|
|
<%= link_to_user ip.user %>
|
|
<%= link_to "»", ip_addresses_path(search: { user_id: ip.user_id, group_by: "ip_addr" }) %>
|
|
</td>
|
|
<td><%= time_ago_in_words_tagged ip.created_at %></td>
|
|
</tr>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
|
|
<%= numbered_paginator(@ip_addresses) %>
|