More fixes for Info schema.
authorlain <lain@soykaf.club>
Sat, 1 Dec 2018 11:46:08 +0000 (12:46 +0100)
committerlain <lain@soykaf.club>
Sat, 1 Dec 2018 11:46:08 +0000 (12:46 +0100)
lib/pleroma/plugs/user_enabled_plug.ex
lib/pleroma/user.ex
lib/pleroma/user/info.ex
lib/pleroma/web/salmon/salmon.ex
test/plugs/user_enabled_plug_test.exs
test/user_test.exs
test/web/ostatus/ostatus_test.exs
test/web/twitter_api/twitter_api_controller_test.exs

index 9c32858969876bb675bde138d20104b19dece3c2..01482f47dd01dc36e05764f257e3125cdccbf102 100644 (file)
@@ -6,7 +6,7 @@ defmodule Pleroma.Plugs.UserEnabledPlug do
     options
   end
 
-  def call(%{assigns: %{user: %User{info: %{"deactivated" => true}}}} = conn, _) do
+  def call(%{assigns: %{user: %User{info: %{deactivated: true}}}} = conn, _) do
     conn
     |> assign(:user, nil)
   end
index a84ab6841aa469ec7e336cfa8006b9d97427d4e4..76712b4bf6bd071571f1fc3da44f0f6b97adf062 100644 (file)
@@ -682,7 +682,7 @@ defmodule Pleroma.User do
     {:ok, user}
   end
 
-  def html_filter_policy(%User{info: %{"no_rich_text" => true}}) do
+  def html_filter_policy(%User{info: %{no_rich_text: true}}) do
     Pleroma.HTML.Scrubber.TwitterText
   end
 
index 2846459340a3f94b80788a0c0e2a003259a4111f..94d403bf7e11a60c14a86a7edaead3aeb4b95b1c 100644 (file)
@@ -23,6 +23,7 @@ defmodule Pleroma.User.Info do
     field(:uri, :string, default: nil)
     field(:topic, :string, default: nil)
     field(:hub, :string, default: nil)
+    field(:salmon, :string, default: nil)
 
     # Found in the wild
     # ap_id -> Where is this used?
@@ -30,11 +31,7 @@ defmodule Pleroma.User.Info do
     # avatar -> Where is this used?
     # fqn -> Where is this used?
     # host -> Where is this used?
-    # name -> Where is this used?
-    # nickname -> Where is this used?
-    # salmon -> Where is this used?
     # subject _> Where is this used?
-    # subscribe_address -> Where is this used?
   end
 
   def set_activation_status(info, deactivated) do
@@ -115,7 +112,8 @@ defmodule Pleroma.User.Info do
       :magic_key,
       :uri,
       :hub,
-      :topic
+      :topic,
+      :salmon
     ])
   end
 
index 562ec3d9cd6b6aba0fdfd2999ab81ea082d205f4..b98ece6c9fa37ed520adc5f1a2a061a4f13aa81d 100644 (file)
@@ -157,7 +157,7 @@ defmodule Pleroma.Web.Salmon do
     |> Enum.filter(fn user -> user && !user.local end)
   end
 
-  defp send_to_user(%{info: %{"salmon" => salmon}}, feed, poster) do
+  defp send_to_user(%{info: %{salmon: salmon}}, feed, poster) do
     with {:ok, %{status_code: code}} <-
            poster.(
              salmon,
@@ -185,7 +185,7 @@ defmodule Pleroma.Web.Salmon do
   ]
   def publish(user, activity, poster \\ &@httpoison.post/4)
 
-  def publish(%{info: %{"keys" => keys}} = user, %{data: %{"type" => type}} = activity, poster)
+  def publish(%{info: %{keys: keys}} = user, %{data: %{"type" => type}} = activity, poster)
       when type in @supported_activities do
     feed = ActivityRepresenter.to_simple_form(activity, user, true)
 
index ee4f72ccfaf18038dcc906a057144df7f320964f..eeb167933d12317f88c867c0bca82208c7298fa6 100644 (file)
@@ -13,7 +13,7 @@ defmodule Pleroma.Plugs.UserEnabledPlugTest do
   end
 
   test "with a user that is deactivated, it removes that user", %{conn: conn} do
-    user = insert(:user, info: %{"deactivated" => true})
+    user = insert(:user, info: %{deactivated: true})
 
     conn =
       conn
index f345f001f058ade6b95eaf691d8d374f40dc0499..62104df90501a099488f8ef9812733ede9c28e53 100644 (file)
@@ -548,7 +548,7 @@ defmodule Pleroma.UserTest do
     end
 
     test "html_filter_policy returns TwitterText scrubber when rich-text is disabled" do
-      user = insert(:user, %{info: %{"no_rich_text" => true}})
+      user = insert(:user, %{info: %{no_rich_text: true}})
 
       assert Pleroma.HTML.Scrubber.TwitterText == User.html_filter_policy(user)
     end
index 6e526301481f233050f52e8a88121c6d44520824..baa8cac72bd729b21e018d90ce983f0f9ab15962 100644 (file)
@@ -329,6 +329,38 @@ defmodule Pleroma.Web.OStatusTest do
       assert user == user_again
     end
 
+    test "find_or_make_user sets all the nessary input fields" do
+      uri = "https://social.heldscal.la/user/23211"
+      {:ok, user} = OStatus.find_or_make_user(uri)
+
+      assert user.info ==
+               %Pleroma.User.Info{
+                 id: user.info.id,
+                 ap_enabled: false,
+                 background: nil,
+                 banner: %{},
+                 blocks: [],
+                 deactivated: false,
+                 default_scope: "public",
+                 domain_blocks: [],
+                 follower_count: 0,
+                 is_admin: false,
+                 is_moderator: false,
+                 keys: nil,
+                 locked: false,
+                 no_rich_text: false,
+                 note_count: 0,
+                 settings: nil,
+                 source_data: %{},
+                 hub: "https://social.heldscal.la/main/push/hub",
+                 magic_key:
+                   "RSA.uzg6r1peZU0vXGADWxGJ0PE34WvmhjUmydbX5YYdOiXfODVLwCMi1umGoqUDm-mRu4vNEdFBVJU1CpFA7dKzWgIsqsa501i2XqElmEveXRLvNRWFB6nG03Q5OUY2as8eE54BJm0p20GkMfIJGwP6TSFb-ICp3QjzbatuSPJ6xCE=.AQAB",
+                 salmon: "https://social.heldscal.la/main/salmon/user/23211",
+                 topic: "https://social.heldscal.la/api/statuses/user_timeline/23211.atom",
+                 uri: "https://social.heldscal.la/user/23211"
+               }
+    end
+
     test "find_make_or_update_user takes an author element and returns an updated user" do
       uri = "https://social.heldscal.la/user/23211"
 
index f7c6e61873be28a834fadceb1e32d5fd4034ed32..89c176da77af298e173393531e7b6a06a19005ee 100644 (file)
@@ -1163,7 +1163,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
 
   describe "GET /api/pleroma/friend_requests" do
     test "it lists friend requests" do
-      user = insert(:user, %{info: %{"locked" => true}})
+      user = insert(:user)
       other_user = insert(:user)
 
       {:ok, _activity} = ActivityPub.follow(other_user, user)
@@ -1185,7 +1185,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
 
   describe "POST /api/pleroma/friendships/approve" do
     test "it approves a friend request" do
-      user = insert(:user, %{info: %{"locked" => true}})
+      user = insert(:user)
       other_user = insert(:user)
 
       {:ok, _activity} = ActivityPub.follow(other_user, user)
@@ -1208,7 +1208,7 @@ defmodule Pleroma.Web.TwitterAPI.ControllerTest do
 
   describe "POST /api/pleroma/friendships/deny" do
     test "it denies a friend request" do
-      user = insert(:user, %{info: %{"locked" => true}})
+      user = insert(:user)
       other_user = insert(:user)
 
       {:ok, _activity} = ActivityPub.follow(other_user, user)