X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fuser.ex;h=1dad30e876f6265d5835e7604ded15aea50ca3a8;hb=cd13fa17fd8d2c959b4a257a3bdcf52e7f61ddf2;hp=88293a4f396d7eb3551786b61a0fb80ffdeaf64f;hpb=46c7c2380c9f923b6c9e1521b025fd45aed0ae37;p=akkoma diff --git a/lib/pleroma/user.ex b/lib/pleroma/user.ex index 88293a4f3..1dad30e87 100644 --- a/lib/pleroma/user.ex +++ b/lib/pleroma/user.ex @@ -68,7 +68,8 @@ defmodule Pleroma.User do following_count: length(user.following) - oneself, note_count: user.info["note_count"] || 0, follower_count: user.info["follower_count"] || 0, - locked: user.info["locked"] || false + locked: user.info["locked"] || false, + default_scope: user.info["default_scope"] || "public" } end @@ -467,10 +468,15 @@ defmodule Pleroma.User do def get_notified_from_activity(%Activity{recipients: to, data: %{"type" => "Announce"} = data}) do object = Object.normalize(data["object"]) + actor = User.get_cached_by_ap_id(data["actor"]) # ensure that the actor who published the announced object appears only once to = - (to ++ [object.data["actor"]]) + if actor.nickname != nil do + to ++ [object.data["actor"]] + else + to + end |> Enum.uniq() query = get_notified_from_activity_query(to) @@ -603,6 +609,14 @@ defmodule Pleroma.User do ) end + def moderator_user_query() do + from( + u in User, + where: u.local == true, + where: fragment("?->'is_moderator' @> 'true'", u.info) + ) + end + def deactivate(%User{} = user) do new_info = Map.put(user.info, "deactivated", true) cs = User.info_changeset(user, %{info: new_info})