From 290f6d428d1343d1fd6a38172ef2418dda06c31f Mon Sep 17 00:00:00 2001 From: Claire Date: Tue, 29 Apr 2025 15:59:28 +0200 Subject: [PATCH] Change `/api/v2/instance` to be enabled without authentication when limited federation mode is enabled Additionally, add `configuration.closed_federation` to indicate whether the server has switched to limited federation. Also sets `usage.users.active_month` to `0` in limited federation mode. --- app/controllers/api/v2/instances_controller.rb | 2 +- app/serializers/rest/instance_serializer.rb | 8 +++++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/app/controllers/api/v2/instances_controller.rb b/app/controllers/api/v2/instances_controller.rb index 62adf95260..d12dccf423 100644 --- a/app/controllers/api/v2/instances_controller.rb +++ b/app/controllers/api/v2/instances_controller.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class Api::V2::InstancesController < Api::BaseController - skip_before_action :require_authenticated_user!, unless: :limited_federation_mode? + skip_before_action :require_authenticated_user! skip_around_action :set_locale vary_by '' diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb index 3d36faf98d..497fa8c2d3 100644 --- a/app/serializers/rest/instance_serializer.rb +++ b/app/serializers/rest/instance_serializer.rb @@ -49,7 +49,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer def usage { users: { - active_month: object.active_user_count(4), + active_month: limited_federation? ? 0 : object.active_user_count(4), }, } end @@ -99,6 +99,8 @@ class REST::InstanceSerializer < ActiveModel::Serializer translation: { enabled: TranslationService.configured?, }, + + closed_federation: limited_federation?, } end @@ -127,6 +129,10 @@ class REST::InstanceSerializer < ActiveModel::Serializer markdown.render(Setting.closed_registrations_message) if Setting.closed_registrations_message.present? end + def limited_federation? + Rails.configuration.x.limited_federation_mode + end + def markdown @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_images: true) end