philomena/lib/philomena_web/router.ex

86 lines
2.4 KiB
Elixir
Raw Normal View History

2019-08-15 02:32:32 +02:00
defmodule PhilomenaWeb.Router do
use PhilomenaWeb, :router
2019-08-17 20:58:36 +02:00
use Pow.Phoenix.Router
2019-11-13 04:12:46 +01:00
use Pow.Extension.Phoenix.Router, otp_app: :philomena
2019-08-15 02:32:32 +02:00
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_flash
plug :protect_from_forgery
plug :put_secure_browser_headers
2019-10-06 22:25:40 +02:00
plug PhilomenaWeb.Plugs.ImageFilter
2019-10-09 01:19:57 +02:00
plug PhilomenaWeb.Plugs.Pagination
2019-11-15 01:59:51 +01:00
plug PhilomenaWeb.Plugs.EnsureUserEnabledPlug
2019-08-15 02:32:32 +02:00
end
pipeline :api do
plug :accepts, ["json"]
end
2019-11-13 04:12:46 +01:00
pipeline :ensure_totp do
plug PhilomenaWeb.Plugs.TotpPlug
end
2019-11-13 05:49:37 +01:00
pipeline :protected do
plug Pow.Plug.RequireAuthenticated,
error_handler: Pow.Phoenix.PlugErrorHandler
end
2019-10-31 18:57:39 +01:00
scope "/" do
2019-11-13 04:12:46 +01:00
pipe_through [:browser, :ensure_totp]
2019-10-31 18:57:39 +01:00
2019-11-15 03:40:35 +01:00
pow_session_routes()
2019-11-13 04:12:46 +01:00
pow_extension_routes()
2019-10-31 18:57:39 +01:00
end
2019-08-17 20:58:36 +02:00
2019-11-15 03:40:35 +01:00
scope "/", Pow.Phoenix, as: "pow" do
pipe_through [:browser, :protected, :ensure_totp]
resources "/registration", RegistrationController, singleton: true, only: [:edit, :update]
end
2019-08-15 02:32:32 +02:00
scope "/", PhilomenaWeb do
2019-11-13 06:28:02 +01:00
pipe_through [:browser, :protected]
2019-11-13 04:12:46 +01:00
# Additional routes for TOTP
2019-11-15 03:40:35 +01:00
scope "/registrations", Registration, as: :registration do
2019-11-13 04:12:46 +01:00
resources "/totp", TotpController, only: [:edit, :update], singleton: true
end
2019-11-15 03:40:35 +01:00
scope "/sessions", Session, as: :session do
2019-11-13 04:12:46 +01:00
resources "/totp", TotpController, only: [:new, :create], singleton: true
end
2019-11-13 06:28:02 +01:00
end
scope "/", PhilomenaWeb do
pipe_through [:browser, :ensure_totp]
2019-08-15 02:32:32 +02:00
2019-10-04 18:48:00 +02:00
get "/", ActivityController, :index
2019-08-18 18:17:05 +02:00
2019-10-09 01:19:57 +02:00
resources "/activity", ActivityController, only: [:index]
2019-11-12 03:38:51 +01:00
resources "/images", ImageController, only: [:index, :show] do
resources "/comments", Image.CommentController, only: [:index, :show]
end
2019-08-18 20:14:36 +02:00
resources "/tags", TagController, only: [:index, :show]
2019-08-29 03:33:58 +02:00
resources "/search", SearchController, only: [:index]
2019-10-06 23:31:48 +02:00
resources "/forums", ForumController, only: [:index, :show] do
resources "/topics", TopicController, only: [:show]
end
2019-11-12 04:10:41 +01:00
resources "/comments", CommentController, only: [:index]
2019-08-18 20:14:36 +02:00
2019-10-09 02:45:04 +02:00
scope "/filters", Filter, as: :filter do
2019-11-13 04:12:46 +01:00
resources "/current", CurrentController, only: [:update], singleton: true
2019-10-09 02:45:04 +02:00
end
2019-10-09 17:51:14 +02:00
resources "/filters", FilterController
2019-11-12 02:27:09 +01:00
resources "/profiles", ProfileController, only: [:show]
2019-11-13 17:28:02 +01:00
resources "/captchas", CaptchaController, only: [:create]
2019-10-09 02:45:04 +02:00
2019-08-18 20:14:36 +02:00
get "/:id", ImageController, :show
2019-08-15 02:32:32 +02:00
end
# Other scopes may use custom stacks.
# scope "/api", PhilomenaWeb do
# pipe_through :api
# end
end