search indexing metadata respects discoverable flag
This commit is contained in:
		
							parent
							
								
									6e70415e4a
								
							
						
					
					
						commit
						38b2db297b
					
				
					 3 changed files with 27 additions and 7 deletions
				
			
		| 
						 | 
				
			
			@ -10,7 +10,9 @@ defmodule Pleroma.Web.Metadata.Providers.RestrictIndexing do
 | 
			
		|||
  """
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def build_tags(%{user: %{local: false}}) do
 | 
			
		||||
  def build_tags(%{user: %{local: true, discoverable: true}}), do: []
 | 
			
		||||
 | 
			
		||||
  def build_tags(_) do
 | 
			
		||||
    [
 | 
			
		||||
      {:meta,
 | 
			
		||||
       [
 | 
			
		||||
| 
						 | 
				
			
			@ -19,7 +21,4 @@ def build_tags(%{user: %{local: false}}) do
 | 
			
		|||
       ], []}
 | 
			
		||||
    ]
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  @impl true
 | 
			
		||||
  def build_tags(%{user: %{local: true}}), do: []
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -18,17 +18,32 @@ test "for remote user" do
 | 
			
		|||
    test "for local user" do
 | 
			
		||||
      user = insert(:user)
 | 
			
		||||
 | 
			
		||||
      assert Pleroma.Web.Metadata.build_tags(%{user: user}) =~
 | 
			
		||||
               "<meta content=\"noindex, noarchive\" name=\"robots\">"
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    test "for local user set to discoverable" do
 | 
			
		||||
      user = insert(:user, discoverable: true)
 | 
			
		||||
 | 
			
		||||
      refute Pleroma.Web.Metadata.build_tags(%{user: user}) =~
 | 
			
		||||
               "<meta content=\"noindex, noarchive\" name=\"robots\">"
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  describe "no metadata for private instances" do
 | 
			
		||||
    test "for local user" do
 | 
			
		||||
    test "for local user set to discoverable" do
 | 
			
		||||
      clear_config([:instance, :public], false)
 | 
			
		||||
      user = insert(:user, bio: "This is my secret fedi account bio")
 | 
			
		||||
      user = insert(:user, bio: "This is my secret fedi account bio", discoverable: true)
 | 
			
		||||
 | 
			
		||||
      assert "" = Pleroma.Web.Metadata.build_tags(%{user: user})
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    test "search exclusion metadata is included" do
 | 
			
		||||
      clear_config([:instance, :public], false)
 | 
			
		||||
      user = insert(:user, bio: "This is my secret fedi account bio")
 | 
			
		||||
 | 
			
		||||
      assert "<meta content=\"noindex, noarchive\" name=\"robots\">" ==
 | 
			
		||||
               Pleroma.Web.Metadata.build_tags(%{user: user})
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -14,8 +14,14 @@ test "for remote user" do
 | 
			
		|||
 | 
			
		||||
    test "for local user" do
 | 
			
		||||
      assert Pleroma.Web.Metadata.Providers.RestrictIndexing.build_tags(%{
 | 
			
		||||
               user: %Pleroma.User{local: true}
 | 
			
		||||
               user: %Pleroma.User{local: true, discoverable: true}
 | 
			
		||||
             }) == []
 | 
			
		||||
    end
 | 
			
		||||
 | 
			
		||||
    test "for local user when discoverable is false" do
 | 
			
		||||
      assert Pleroma.Web.Metadata.Providers.RestrictIndexing.build_tags(%{
 | 
			
		||||
               user: %Pleroma.User{local: true, discoverable: false}
 | 
			
		||||
             }) == [{:meta, [name: "robots", content: "noindex, noarchive"], []}]
 | 
			
		||||
    end
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in a new issue