user: add is_internal_user? helper function
authorAriadne Conill <ariadne@dereferenced.org>
Wed, 17 Jul 2019 17:12:42 +0000 (17:12 +0000)
committerAriadne Conill <ariadne@dereferenced.org>
Wed, 17 Jul 2019 17:12:42 +0000 (17:12 +0000)
lib/pleroma/user.ex
test/user_test.exs

index 463bb9ad44162cebb66534c6213ff0a74f26d07a..c91fbb68a24b52fbf03f474b66ece5d82e8837dc 100644 (file)
@@ -1410,4 +1410,8 @@ defmodule Pleroma.User do
   end
 
   defp put_password_hash(changeset), do: changeset
+
+  def is_internal_user?(%User{nickname: nil}), do: true
+  def is_internal_user?(%User{local: true, nickname: "internal." <> _}), do: true
+  def is_internal_user?(_), do: false
 end
index 264b7a40e8918d6f3ad9f55bd74eb67c1d79f73e..908f72a0ea08ebf48b46e7e591e2d86a5070fed4 100644 (file)
@@ -1310,4 +1310,21 @@ defmodule Pleroma.UserTest do
       assert following == 0
     end
   end
+
+  describe "is_internal_user?/1" do
+    test "non-internal user returns false" do
+      user = insert(:user)
+      refute User.is_internal_user?(user)
+    end
+
+    test "user with no nickname returns true" do
+      user = insert(:user, %{nickname: nil})
+      assert User.is_internal_user?(user)
+    end
+
+    test "user with internal-prefixed nickname returns true" do
+      user = insert(:user, %{nickname: "internal.test"})
+      assert User.is_internal_user?(user)
+    end
+  end
 end