aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/twitter_api/views
diff options
context:
space:
mode:
authorEgor Kislitsyn <egor@kislitsyn.com>2019-02-11 13:54:21 +0700
committerEgor Kislitsyn <egor@kislitsyn.com>2019-02-11 13:54:21 +0700
commit305d2194136d4560e02c110d528164034d3727b2 (patch)
tree40510e1c4dc0140ff16e2fdc483da64c83b7077c /lib/pleroma/web/twitter_api/views
parent5b1d7c3c5672af065af503891d156b6e0cf5a8c1 (diff)
parent06c4935c11fc58f5ede18706bc46dcc502e64052 (diff)
downloadpleroma-305d2194136d4560e02c110d528164034d3727b2.tar.gz
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into feature/jobs
# Conflicts: # lib/pleroma/web/federator/federator.ex # lib/pleroma/web/websub/websub.ex
Diffstat (limited to 'lib/pleroma/web/twitter_api/views')
-rw-r--r--lib/pleroma/web/twitter_api/views/activity_view.ex17
-rw-r--r--lib/pleroma/web/twitter_api/views/notification_view.ex5
-rw-r--r--lib/pleroma/web/twitter_api/views/user_view.ex26
3 files changed, 34 insertions, 14 deletions
diff --git a/lib/pleroma/web/twitter_api/views/activity_view.ex b/lib/pleroma/web/twitter_api/views/activity_view.ex
index d0d1221c3..661022afa 100644
--- a/lib/pleroma/web/twitter_api/views/activity_view.ex
+++ b/lib/pleroma/web/twitter_api/views/activity_view.ex
@@ -4,19 +4,18 @@
defmodule Pleroma.Web.TwitterAPI.ActivityView do
use Pleroma.Web, :view
- alias Pleroma.Web.CommonAPI.Utils
- alias Pleroma.User
- alias Pleroma.Web.TwitterAPI.UserView
- alias Pleroma.Web.TwitterAPI.ActivityView
- alias Pleroma.Web.TwitterAPI.TwitterAPI
- alias Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter
- alias Pleroma.Web.MastodonAPI.StatusView
alias Pleroma.Activity
+ alias Pleroma.Formatter
alias Pleroma.HTML
alias Pleroma.Object
- alias Pleroma.User
alias Pleroma.Repo
- alias Pleroma.Formatter
+ alias Pleroma.User
+ alias Pleroma.Web.CommonAPI.Utils
+ alias Pleroma.Web.MastodonAPI.StatusView
+ alias Pleroma.Web.TwitterAPI.ActivityView
+ alias Pleroma.Web.TwitterAPI.TwitterAPI
+ alias Pleroma.Web.TwitterAPI.UserView
+ alias Pleroma.Web.TwitterAPI.Representers.ObjectRepresenter
import Ecto.Query
require Logger
diff --git a/lib/pleroma/web/twitter_api/views/notification_view.ex b/lib/pleroma/web/twitter_api/views/notification_view.ex
index d6a1c0a4d..e7c7a7496 100644
--- a/lib/pleroma/web/twitter_api/views/notification_view.ex
+++ b/lib/pleroma/web/twitter_api/views/notification_view.ex
@@ -4,10 +4,11 @@
defmodule Pleroma.Web.TwitterAPI.NotificationView do
use Pleroma.Web, :view
- alias Pleroma.{Notification, User}
+ alias Pleroma.Notification
+ alias Pleroma.User
alias Pleroma.Web.CommonAPI.Utils
- alias Pleroma.Web.TwitterAPI.UserView
alias Pleroma.Web.TwitterAPI.ActivityView
+ alias Pleroma.Web.TwitterAPI.UserView
defp get_user(ap_id, opts) do
cond do
diff --git a/lib/pleroma/web/twitter_api/views/user_view.ex b/lib/pleroma/web/twitter_api/views/user_view.ex
index cd7c4349c..a09450df7 100644
--- a/lib/pleroma/web/twitter_api/views/user_view.ex
+++ b/lib/pleroma/web/twitter_api/views/user_view.ex
@@ -4,11 +4,11 @@
defmodule Pleroma.Web.TwitterAPI.UserView do
use Pleroma.Web, :view
- alias Pleroma.User
alias Pleroma.Formatter
+ alias Pleroma.HTML
+ alias Pleroma.User
alias Pleroma.Web.CommonAPI.Utils
alias Pleroma.Web.MediaProxy
- alias Pleroma.HTML
def render("show.json", %{user: user = %User{}} = assigns) do
render_one(user, Pleroma.Web.TwitterAPI.UserView, "user.json", assigns)
@@ -109,7 +109,7 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
"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,
+ "hide_follows" => user.info.hide_follows,
"fields" => fields,
# Pleroma extension
@@ -119,6 +119,12 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
}
}
+ data =
+ if(user.info.is_admin || user.info.is_moderator,
+ do: maybe_with_role(data, user, for_user),
+ else: data
+ )
+
if assigns[:token] do
Map.put(data, "token", token_string(assigns[:token]))
else
@@ -126,6 +132,20 @@ defmodule Pleroma.Web.TwitterAPI.UserView do
end
end
+ defp maybe_with_role(data, %User{id: id} = user, %User{id: id}) do
+ Map.merge(data, %{"role" => role(user), "show_role" => user.info.show_role})
+ end
+
+ defp maybe_with_role(data, %User{info: %{show_role: true}} = user, _user) do
+ Map.merge(data, %{"role" => role(user)})
+ end
+
+ defp maybe_with_role(data, _, _), do: data
+
+ defp role(%User{info: %{:is_admin => true}}), do: "admin"
+ defp role(%User{info: %{:is_moderator => true}}), do: "moderator"
+ defp role(_), do: "member"
+
defp image_url(%{"url" => [%{"href" => href} | _]}), do: href
defp image_url(_), do: nil