# frozen_string_literal: true module AccountOwnedConcern extend ActiveSupport::Concern included do before_action :authenticate_user!, if: -> { whitelist_mode? && request.format != :json } before_action :set_account, if: :account_required? before_action :check_account_approval, if: :account_required? before_action :check_account_suspension, if: :account_required? end private def account_required? true end def set_account @account = Account.find_local!(username_param) end def username_param params[:account_username] end def check_account_approval not_found if @account.local? && @account.user_pending? end def check_account_suspension expires_in(3.minutes, public: true) && gone if @account.suspended? end end