FIX: Only serialize group membership domains for administrators (#6771)

FIX: Only serialize group membership domains for administrators (#6771)
diff --git a/app/serializers/basic_group_serializer.rb b/app/serializers/basic_group_serializer.rb
index 6ac6f23..fdeb1ee 100644
--- a/app/serializers/basic_group_serializer.rb
+++ b/app/serializers/basic_group_serializer.rb
@@ -42,6 +42,14 @@ class BasicGroupSerializer < ApplicationSerializer
     staff?
   end
 
+  def include_automatic_membership_email_domains?
+    scope.is_admin?
+  end
+
+  def include_automatic_membership_retroactive?
+    scope.is_admin?
+  end
+
   def include_has_messages?
     staff? || scope.can_see_group_messages?(object)
   end
diff --git a/spec/serializers/basic_group_serializer_spec.rb b/spec/serializers/basic_group_serializer_spec.rb
index 7b06b29..cdbd523 100644
--- a/spec/serializers/basic_group_serializer_spec.rb
+++ b/spec/serializers/basic_group_serializer_spec.rb
@@ -43,6 +43,24 @@ describe BasicGroupSerializer do
     end
   end
 
+  describe '#automatic_membership_email_domains' do
+    let(:group) { Fabricate(:group, automatic_membership_email_domains: 'ilovediscourse.com', automatic_membership_retroactive: true) }
+    let(:admin_guardian) { Guardian.new(Fabricate(:admin)) }
+
+    it 'should include email domains for admin' do
+      subject = described_class.new(group, scope: admin_guardian, root: false, owner_group_ids: [group.id])
+      expect(subject.as_json[:automatic_membership_email_domains]).to eq('ilovediscourse.com')
+      expect(subject.as_json[:automatic_membership_retroactive]).to eq(true)
+    end
+
+    it 'should not include email domains for other users' do
+      subject = described_class.new(group, scope: guardian, root: false, owner_group_ids: [group.id])
+      expect(subject.as_json[:automatic_membership_email_domains]).to eq(nil)
+      expect(subject.as_json[:automatic_membership_retroactive]).to eq(nil)
+    end
+
+  end
+
   describe '#has_messages' do
     let(:group) { Fabricate(:group, has_messages: true) }

GitHub
sha: 9f3e2a9e

1 Like