about summary refs log tree commit diff
path: root/app/serializers
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2022-01-25 13:54:11 +0100
committerClaire <claire.github-309c@sitedethib.com>2022-01-25 13:58:24 +0100
commita9269f8786033eecf0ad307c75f5717c5ab468a2 (patch)
tree53483f37741435e92b504bc28575b446a517319e /app/serializers
parentbf351d72af76e80a29674770d9991de955f95d34 (diff)
Disable `registrations` flag in /api/v1/instance when CAPTCHA is enabled
This is to avoid apps trying and failing at using the registrations API,
which does not let us require a CAPTCHA and cannot be clearly signaled as
unavailable.
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/rest/instance_serializer.rb6
1 files changed, 5 insertions, 1 deletions
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index 48bbb55c8..94cc3ffe3 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -98,7 +98,7 @@ class REST::InstanceSerializer < ActiveModel::Serializer
   end
 
   def registrations
-    Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
+    Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode && !captcha_enabled?
   end
 
   def approval_required
@@ -114,4 +114,8 @@ class REST::InstanceSerializer < ActiveModel::Serializer
   def instance_presenter
     @instance_presenter ||= InstancePresenter.new
   end
+
+  def captcha_enabled?
+    ENV['HCAPTCHA_SECRET_KEY'].present? && ENV['HCAPTCHA_SITE_KEY'].present? && Setting.captcha_enabled
+  end
 end