Merge branch 'develop' into 'develop'
[akkoma] / lib / pleroma / web / twitter_api / views / user_view.ex
index 890d4234e4f78eaa9735ad6120a99747c497b777..cd7c4349c7645388b40275e068cd925a799f9855 100644 (file)
@@ -1,5 +1,5 @@
 # Pleroma: A lightweight social networking server
-# Copyright © 2017-2018 Pleroma Authors <https://pleroma.social/>
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
 # SPDX-License-Identifier: AGPL-3.0-only
 
 defmodule Pleroma.Web.TwitterAPI.UserView do
@@ -22,15 +22,28 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
 
   def render("user.json", %{user: user = %User{}} = assigns) do
     if User.visible_for?(user, assigns[:for]),
-      do: render("valid_user.json", assigns),
-      else: render("invalid_user.json", assigns)
+      do: do_render("user.json", assigns),
+      else: %{}
   end
 
-  def render("invalid_user.json", _assigns) do
-    %{}
+  def render("short.json", %{
+        user: %User{
+          nickname: nickname,
+          id: id,
+          ap_id: ap_id,
+          name: name
+        }
+      }) do
+    %{
+      "fullname" => name,
+      "id" => id,
+      "ostatus_uri" => ap_id,
+      "profile_url" => ap_id,
+      "screen_name" => nickname
+    }
   end
 
-  def render("valid_user.json", %{user: user = %User{}} = assigns) do
+  defp do_render("user.json", %{user: user = %User{}} = assigns) do
     for_user = assigns[:for]
     image = User.avatar_url(user) |> MediaProxy.url()
 
@@ -83,7 +96,8 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
       "profile_image_url_profile_size" => image,
       "profile_image_url_original" => image,
       "rights" => %{
-        "delete_others_notice" => !!user.info.is_moderator
+        "delete_others_notice" => !!user.info.is_moderator,
+        "admin" => !!user.info.is_admin
       },
       "screen_name" => user.nickname,
       "statuses_count" => user_info[:note_count],
@@ -94,6 +108,8 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
       "locked" => user.info.locked,
       "default_scope" => user.info.default_scope,
       "no_rich_text" => user.info.no_rich_text,
+      "hide_followers" => user.info.hide_followers,
+      "hide_followings" => user.info.hide_followings,
       "fields" => fields,
 
       # Pleroma extension
@@ -110,23 +126,6 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
     end
   end
 
-  def render("short.json", %{
-        user: %User{
-          nickname: nickname,
-          id: id,
-          ap_id: ap_id,
-          name: name
-        }
-      }) do
-    %{
-      "fullname" => name,
-      "id" => id,
-      "ostatus_uri" => ap_id,
-      "profile_url" => ap_id,
-      "screen_name" => nickname
-    }
-  end
-
   defp image_url(%{"url" => [%{"href" => href} | _]}), do: href
   defp image_url(_), do: nil