X-Git-Url: http://git.squeep.com/?a=blobdiff_plain;f=lib%2Fpleroma%2Fweb%2Frouter.ex;h=92732379465af1d6353d7d4c39a8123ac7cbbae6;hb=072e965015698a3198242aad3ad969a696b8f03e;hp=913152c5a33208250a70ed28051df31799c8425f;hpb=e394e5943dd2fa6602dc62d148259fd3e125a077;p=akkoma diff --git a/lib/pleroma/web/router.ex b/lib/pleroma/web/router.ex index 913152c5a..927323794 100644 --- a/lib/pleroma/web/router.ex +++ b/lib/pleroma/web/router.ex @@ -5,6 +5,7 @@ defmodule Pleroma.Web.Router do @instance Application.get_env(:pleroma, :instance) @federating Keyword.get(@instance, :federating) + @allow_relay Keyword.get(@instance, :allow_relay) @public Keyword.get(@instance, :public) @registrations_open Keyword.get(@instance, :registrations_open) @@ -13,9 +14,12 @@ defmodule Pleroma.Web.Router do :ok, cond do # First, try logging in as if it was a name - user = Repo.get_by(User, %{nickname: username_or_email}) -> user + user = Repo.get_by(User, %{nickname: username_or_email}) -> + user + # If we get nil, we try using it as an email - user = Repo.get_by(User, %{email: username_or_email}) -> user + user = Repo.get_by(User, %{email: username_or_email}) -> + user end } end @@ -290,6 +294,10 @@ defmodule Pleroma.Web.Router do get("/externalprofile/show", TwitterAPI.Controller, :external_profile) end + pipeline :ap_relay do + plug(:accepts, ["activity+json"]) + end + pipeline :ostatus do plug(:accepts, ["xml", "atom", "html", "activity+json"]) end @@ -326,6 +334,13 @@ defmodule Pleroma.Web.Router do end if @federating do + if @allow_relay do + scope "/relay", Pleroma.Web.ActivityPub do + pipe_through(:ap_relay) + get("/", ActivityPubController, :relay) + end + end + scope "/", Pleroma.Web.ActivityPub do pipe_through(:activitypub) post("/users/:nickname/inbox", ActivityPubController, :inbox)