def delete(activity_id, user) do
with %Activity{data: %{"object" => %{"id" => object_id}}} <- Repo.get(Activity, activity_id),
%Object{} = object <- Object.get_by_ap_id(object_id),
- true <- user.ap_id == object.data["actor"],
+ true <- user.info["is_moderator"] || (user.ap_id == object.data["actor"]),
{:ok, delete} <- ActivityPub.delete(object) do
{:ok, delete}
end
end
def get_visibility(%{"visibility" => visibility}), do: visibility
- def get_visibility(%{"in_reply_to_status_id" => status_id}) do
+ def get_visibility(%{"in_reply_to_status_id" => status_id}) when status_id do
inReplyTo = get_replied_to_activity(status_id)
Pleroma.Web.MastodonAPI.StatusView.get_visibility(inReplyTo.data["object"])
end
res
end
end
+
+ def update(user) do
+ ActivityPub.update(%{local: true, to: [user.follower_address], cc: [], actor: user.ap_id, object: Pleroma.Web.ActivityPub.UserView.render("user.json", %{user: user})})
+ end
end