* Wip * Wip * Wip: History * Wip: テストコード作成 * Fix test * Wip * Wip * Wip * Fix test * Wip * Wip * Wip * Wip * なんとか完成、これから動作確認 * spell miss * Change ng rule timings * Fix test * Wip * Fix test * Wip * Fix form * 表示まわりの改善
28 lines
739 B
Ruby
28 lines
739 B
Ruby
# frozen_string_literal: true
|
|
|
|
module NgRuleHelper
|
|
def check_invalid_status_for_ng_rule!(account, **options)
|
|
(check_for_ng_rule!(account, **options) { |rule| !rule.check_status_or_record! }).none?
|
|
end
|
|
|
|
def check_invalid_reaction_for_ng_rule!(account, **options)
|
|
(check_for_ng_rule!(account, **options) { |rule| !rule.check_reaction_or_record! }).none?
|
|
end
|
|
|
|
private
|
|
|
|
def check_for_ng_rule!(account, **options, &block)
|
|
NgRule.cached_rules
|
|
.map { |raw_rule| Admin::NgRule.new(raw_rule, account, **options) }
|
|
.filter(&block)
|
|
end
|
|
|
|
def do_account_action_for_rule!(account, action)
|
|
case action
|
|
when :silence
|
|
account.silence!
|
|
when :suspend
|
|
account.suspend!
|
|
end
|
|
end
|
|
end
|