From 1636cc5b7e2ad324c828c993d5fb39ac9cdb40cc Mon Sep 17 00:00:00 2001
From: Ivan Tashkinov <ivantashkinov@gmail.com>
Date: Sat, 23 Nov 2019 14:06:19 +0300
Subject: [PATCH] Removed users.info and remaining usages.

---
 benchmarks/load_testing/generator.ex          |  1 -
 lib/pleroma/user.ex                           |  5 +---
 .../20191123103423_remove_info_from_users.exs |  9 +++++++
 test/support/factory.ex                       |  1 -
 test/user_test.exs                            | 25 +++----------------
 5 files changed, 14 insertions(+), 27 deletions(-)
 create mode 100644 priv/repo/migrations/20191123103423_remove_info_from_users.exs

diff --git a/benchmarks/load_testing/generator.ex b/benchmarks/load_testing/generator.ex
index b4432bdb7..4505d192f 100644
--- a/benchmarks/load_testing/generator.ex
+++ b/benchmarks/load_testing/generator.ex
@@ -31,7 +31,6 @@ defp generate_user_data(i) do
       password_hash:
         "$pbkdf2-sha512$160000$bU.OSFI7H/yqWb5DPEqyjw$uKp/2rmXw12QqnRRTqTtuk2DTwZfF8VR4MYW2xMeIlqPR/UX1nT1CEKVUx2CowFMZ5JON8aDvURrZpJjSgqXrg",
       bio: "Tester Number #{i}",
-      info: %{},
       local: remote
     }
 
diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex
index fcb1d5143..e4656af3d 100644
--- a/lib/pleroma/user.ex
+++ b/lib/pleroma/user.ex
@@ -119,8 +119,6 @@ defmodule Pleroma.User do
     has_many(:registrations, Registration)
     has_many(:deliveries, Delivery)
 
-    field(:info, :map, default: %{})
-
     timestamps()
   end
 
@@ -244,7 +242,6 @@ def remote_user_creation(params) do
 
     params =
       params
-      |> Map.put(:info, params[:info] || %{})
       |> truncate_if_exists(:name, name_limit)
       |> truncate_if_exists(:bio, bio_limit)
       |> truncate_fields_param()
@@ -1226,7 +1223,7 @@ def external_users_query do
   def external_users(opts \\ []) do
     query =
       external_users_query()
-      |> select([u], struct(u, [:id, :ap_id, :info]))
+      |> select([u], struct(u, [:id, :ap_id]))
 
     query =
       if opts[:max_id],
diff --git a/priv/repo/migrations/20191123103423_remove_info_from_users.exs b/priv/repo/migrations/20191123103423_remove_info_from_users.exs
new file mode 100644
index 000000000..b251255ea
--- /dev/null
+++ b/priv/repo/migrations/20191123103423_remove_info_from_users.exs
@@ -0,0 +1,9 @@
+defmodule Pleroma.Repo.Migrations.RemoveInfoFromUsers do
+  use Ecto.Migration
+
+  def change do
+    alter table(:users) do
+      remove(:info, :map, default: %{})
+    end
+  end
+end
diff --git a/test/support/factory.ex b/test/support/factory.ex
index e3f797f64..bb8a64e72 100644
--- a/test/support/factory.ex
+++ b/test/support/factory.ex
@@ -31,7 +31,6 @@ def user_factory do
       nickname: sequence(:nickname, &"nick#{&1}"),
       password_hash: Comeonin.Pbkdf2.hashpwsalt("test"),
       bio: sequence(:bio, &"Tester Number #{&1}"),
-      info: %{},
       last_digest_emailed_at: NaiveDateTime.utc_now()
     }
 
diff --git a/test/user_test.exs b/test/user_test.exs
index 8fdb6b25f..e07ddd097 100644
--- a/test/user_test.exs
+++ b/test/user_test.exs
@@ -347,18 +347,6 @@ test "it sets the password_hash and ap_id" do
 
       assert changeset.changes.follower_address == "#{changeset.changes.ap_id}/followers"
     end
-
-    test "it ensures info is not nil" do
-      changeset = User.register_changeset(%User{}, @full_user_data)
-
-      assert changeset.valid?
-
-      {:ok, user} =
-        changeset
-        |> Repo.insert()
-
-      refute is_nil(user.info)
-    end
   end
 
   describe "user registration, with :account_activation_required" do
@@ -412,8 +400,7 @@ test "gets an existing user by ap_id" do
           :user,
           local: false,
           nickname: "admin@mastodon.example.org",
-          ap_id: ap_id,
-          info: %{}
+          ap_id: ap_id
         )
 
       {:ok, fetched_user} = User.get_or_fetch(ap_id)
@@ -474,8 +461,7 @@ test "updates an existing user, if stale" do
           local: false,
           nickname: "admin@mastodon.example.org",
           ap_id: "http://mastodon.example.org/users/admin",
-          last_refreshed_at: a_week_ago,
-          info: %{}
+          last_refreshed_at: a_week_ago
         )
 
       assert orig_user.last_refreshed_at == a_week_ago
@@ -516,7 +502,6 @@ test "returns an ap_followers link for a user" do
       name: "Someone",
       nickname: "a@b.de",
       ap_id: "http...",
-      info: %{some: "info"},
       avatar: %{some: "avatar"}
     }
 
@@ -1121,8 +1106,7 @@ test "with an overly long bio" do
         ap_id: user.ap_id,
         name: user.name,
         nickname: user.nickname,
-        bio: String.duplicate("h", current_max_length + 1),
-        info: %{}
+        bio: String.duplicate("h", current_max_length + 1)
       }
 
       assert {:ok, %User{}} = User.insert_or_update_user(data)
@@ -1135,8 +1119,7 @@ test "with an overly long display name" do
       data = %{
         ap_id: user.ap_id,
         name: String.duplicate("h", current_max_length + 1),
-        nickname: user.nickname,
-        info: %{}
+        nickname: user.nickname
       }
 
       assert {:ok, %User{}} = User.insert_or_update_user(data)