Add batch suspend for accounts in admin UI (#17009)
This commit is contained in:
parent
2e2ea6bb6b
commit
0fb9536d38
26 changed files with 312 additions and 278 deletions
|
@ -36,6 +36,8 @@ module Admin::ActionLogsHelper
|
|||
|
||||
def log_target_from_history(type, attributes)
|
||||
case type
|
||||
when 'User'
|
||||
attributes['username']
|
||||
when 'CustomEmoji'
|
||||
attributes['shortcode']
|
||||
when 'DomainBlock', 'DomainAllow', 'EmailDomainBlock', 'UnavailableDomain'
|
||||
|
|
|
@ -1,10 +1,41 @@
|
|||
# frozen_string_literal: true
|
||||
|
||||
module Admin::DashboardHelper
|
||||
def feature_hint(feature, enabled)
|
||||
indicator = safe_join([enabled ? t('simple_form.yes') : t('simple_form.no'), fa_icon('power-off fw')], ' ')
|
||||
class_names = enabled ? 'pull-right positive-hint' : 'pull-right neutral-hint'
|
||||
def relevant_account_ip(account, ip_query)
|
||||
default_ip = [account.user_current_sign_in_ip || account.user_sign_up_ip]
|
||||
|
||||
safe_join([feature, content_tag(:span, indicator, class: class_names)])
|
||||
matched_ip = begin
|
||||
ip_query_addr = IPAddr.new(ip_query)
|
||||
account.user.recent_ips.find { |(_, ip)| ip_query_addr.include?(ip) } || default_ip
|
||||
rescue IPAddr::Error
|
||||
default_ip
|
||||
end.last
|
||||
|
||||
if matched_ip
|
||||
link_to matched_ip, admin_accounts_path(ip: matched_ip)
|
||||
else
|
||||
'-'
|
||||
end
|
||||
end
|
||||
|
||||
def relevant_account_timestamp(account)
|
||||
timestamp, exact = begin
|
||||
if account.user_current_sign_in_at && account.user_current_sign_in_at < 24.hours.ago
|
||||
[account.user_current_sign_in_at, true]
|
||||
elsif account.user_current_sign_in_at
|
||||
[account.user_current_sign_in_at, false]
|
||||
elsif account.user_pending?
|
||||
[account.user_created_at, true]
|
||||
elsif account.last_status_at.present?
|
||||
[account.last_status_at, true]
|
||||
else
|
||||
[nil, false]
|
||||
end
|
||||
end
|
||||
|
||||
return '-' if timestamp.nil?
|
||||
return t('generic.today') unless exact
|
||||
|
||||
content_tag(:time, l(timestamp), class: 'time-ago', datetime: timestamp.iso8601, title: l(timestamp))
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue