Browse Source

Fix not all of account's active IPs showing up in admin UI (#12909)

master
Eugen Rochko 2 months ago
parent
commit
02063c245c
No account linked to committer's email address
2 changed files with 21 additions and 6 deletions
  1. 15
    0
      app/models/user.rb
  2. 6
    6
      app/views/admin/accounts/show.html.haml

+ 15
- 0
app/models/user.rb View File

@@ -290,6 +290,21 @@ class User < ApplicationRecord
setting_display_media == 'hide_all'
end

def recent_ips
@recent_ips ||= begin
arr = []

session_activations.each do |session_activation|
arr << [session_activation.updated_at, session_activation.ip]
end

arr << [current_sign_in_at, current_sign_in_ip] if current_sign_in_ip.present?
arr << [last_sign_in_at, last_sign_in_ip] if last_sign_in_ip.present?

arr.sort_by(&:first).uniq(&:last).reverse!
end
end

protected

def send_devise_notification(notification, *args)

+ 6
- 6
app/views/admin/accounts/show.html.haml View File

@@ -139,12 +139,12 @@
%time.formatted{ datetime: @account.created_at.iso8601, title: l(@account.created_at) }= l @account.created_at
%td

%tr
%th= t('admin.accounts.most_recent_ip')
%td= @account.user_current_sign_in_ip
%td
- if @account.user_current_sign_in_ip
= table_link_to 'search', t('admin.accounts.search_same_ip'), admin_accounts_path(ip: @account.user_current_sign_in_ip)
- @account.user.recent_ips.each_with_index do |(_, ip), i|
%tr
- if i.zero?
%th{ rowspan: @account.user.recent_ips.size }= t('admin.accounts.most_recent_ip')
%td= ip
%td= table_link_to 'search', t('admin.accounts.search_same_ip'), admin_accounts_path(ip: ip)

%tr
%th= t('admin.accounts.most_recent_activity')

Loading…
Cancel
Save