User, Webfinger: Remove OStatus vestiges
authorlain <lain@soykaf.club>
Tue, 5 May 2020 07:25:09 +0000 (09:25 +0200)
committerlain <lain@soykaf.club>
Tue, 5 May 2020 07:25:09 +0000 (09:25 +0200)
Mainly the `magic_key` field

lib/pleroma/user.ex
lib/pleroma/web/web_finger/web_finger.ex
priv/repo/migrations/20200505072231_remove_magic_key_field.exs [new file with mode: 0644]
test/web/web_finger/web_finger_test.exs

index 99358ddafbc2444dc29c00cbed795c568648fa4e..2c343eb227b7d1a8e2cb791b830c68cdbf17854a 100644 (file)
@@ -113,7 +113,6 @@ defmodule Pleroma.User do
     field(:is_admin, :boolean, default: false)
     field(:show_role, :boolean, default: true)
     field(:settings, :map, default: nil)
-    field(:magic_key, :string, default: nil)
     field(:uri, Types.Uri, default: nil)
     field(:hide_followers_count, :boolean, default: false)
     field(:hide_follows_count, :boolean, default: false)
@@ -387,7 +386,6 @@ defmodule Pleroma.User do
         :banner,
         :locked,
         :last_refreshed_at,
-        :magic_key,
         :uri,
         :follower_address,
         :following_address,
index 7ffd0e51bbfbef242fddcb22bc97790cb00fd3a6..b264538282cbb200cf0bb87b337abbacab5c8673 100644 (file)
@@ -86,53 +86,19 @@ defmodule Pleroma.Web.WebFinger do
     |> XmlBuilder.to_doc()
   end
 
-  defp get_magic_key("data:application/magic-public-key," <> magic_key) do
-    {:ok, magic_key}
-  end
-
-  defp get_magic_key(nil) do
-    Logger.debug("Undefined magic key.")
-    {:ok, nil}
-  end
-
-  defp get_magic_key(_) do
-    {:error, "Missing magic key data."}
-  end
-
   defp webfinger_from_xml(doc) do
-    with magic_key <- XML.string_from_xpath(~s{//Link[@rel="magic-public-key"]/@href}, doc),
-         {:ok, magic_key} <- get_magic_key(magic_key),
-         topic <-
-           XML.string_from_xpath(
-             ~s{//Link[@rel="http://schemas.google.com/g/2010#updates-from"]/@href},
-             doc
-           ),
-         subject <- XML.string_from_xpath("//Subject", doc),
-         subscribe_address <-
-           XML.string_from_xpath(
-             ~s{//Link[@rel="http://ostatus.org/schema/1.0/subscribe"]/@template},
-             doc
-           ),
+    with subject <- XML.string_from_xpath("//Subject", doc),
          ap_id <-
            XML.string_from_xpath(
              ~s{//Link[@rel="self" and @type="application/activity+json"]/@href},
              doc
            ) do
       data = %{
-        "magic_key" => magic_key,
-        "topic" => topic,
         "subject" => subject,
-        "subscribe_address" => subscribe_address,
         "ap_id" => ap_id
       }
 
       {:ok, data}
-    else
-      {:error, e} ->
-        {:error, e}
-
-      e ->
-        {:error, e}
     end
   end
 
@@ -146,9 +112,6 @@ defmodule Pleroma.Web.WebFinger do
           {"application/ld+json; profile=\"https://www.w3.org/ns/activitystreams\"", "self"} ->
             Map.put(data, "ap_id", link["href"])
 
-          {_, "http://ostatus.org/schema/1.0/subscribe"} ->
-            Map.put(data, "subscribe_address", link["template"])
-
           _ ->
             Logger.debug("Unhandled type: #{inspect(link["type"])}")
             data
diff --git a/priv/repo/migrations/20200505072231_remove_magic_key_field.exs b/priv/repo/migrations/20200505072231_remove_magic_key_field.exs
new file mode 100644 (file)
index 0000000..2635e67
--- /dev/null
@@ -0,0 +1,9 @@
+defmodule Pleroma.Repo.Migrations.RemoveMagicKeyField do
+  use Ecto.Migration
+
+  def change do
+    alter table(:users) do
+      remove(:magic_key, :string)
+    end
+  end
+end
index 4b4282727c347a0706544eaa0981e9047931e561..ce17f83d69b4c5430aa6edc80832bffb4ea6cd88 100644 (file)
@@ -67,10 +67,10 @@ defmodule Pleroma.Web.WebFingerTest do
       assert data["magic_key"] == nil
       assert data["salmon"] == nil
 
-      assert data["topic"] == "https://mstdn.jp/users/kPherox.atom"
+      assert data["topic"] == nil
       assert data["subject"] == "acct:kPherox@mstdn.jp"
       assert data["ap_id"] == "https://mstdn.jp/users/kPherox"
-      assert data["subscribe_address"] == "https://mstdn.jp/authorize_interaction?acct={uri}"
+      assert data["subscribe_address"] == nil
     end
 
     test "it works for friendica" do