discourse/app/policies/user/not_already_suspended_policy.rb
Loïc Guitaut b806dce13d DEV: Refactor suspend/silence user services
- fetch models inside services
- validate `user_id` in contracts
- use policy objects
- extract more logic to actions
- write specs for services and action
2024-09-12 10:28:48 +02:00

24 lines
516 B
Ruby

# frozen_string_literal: true
class User::NotAlreadySuspendedPolicy < PolicyBase
delegate :user, to: :context, private: true
delegate :suspend_record, to: :user, private: true
def call
!user.suspended?
end
def reason
I18n.t(
"user.already_suspended",
staff: suspend_record.acting_user.username,
time_ago:
AgeWords.time_ago_in_words(
suspend_record.created_at,
true,
scope: :"datetime.distance_in_words_verbose",
),
)
end
end