Vladimir Rubin
cf28aa5295
Some checks failed
Checks / check (pull_request) Failing after -6m26s
right not, the most of the app is translated, but there are some parts that are not translated yet, like the settings page.
102 lines
3.1 KiB
Elixir
102 lines
3.1 KiB
Elixir
defmodule ExmrWeb.Router do
|
|
use ExmrWeb, :router
|
|
|
|
import ExmrWeb.UserAuth
|
|
|
|
# enable_registration = Application.fetch_env!(:exmr, :registration_enabled)
|
|
|
|
pipeline :browser do
|
|
plug :accepts, ["html"]
|
|
plug :fetch_session
|
|
plug :fetch_live_flash
|
|
plug :put_root_layout, html: {ExmrWeb.Layouts, :root}
|
|
plug :protect_from_forgery
|
|
plug :put_secure_browser_headers
|
|
plug ExmrWeb.Plugs.Locale
|
|
plug :fetch_current_user
|
|
end
|
|
|
|
pipeline :api do
|
|
plug :accepts, ["json"]
|
|
end
|
|
|
|
scope "/", ExmrWeb do
|
|
pipe_through :browser
|
|
|
|
get "/", PageController, :home
|
|
end
|
|
|
|
# Other scopes may use custom stacks.
|
|
# scope "/api", ExmrWeb do
|
|
# pipe_through :api
|
|
# end
|
|
|
|
# Enable LiveDashboard and Swoosh mailbox preview in development
|
|
if Application.compile_env(:exmr, :dev_routes) do
|
|
# If you want to use the LiveDashboard in production, you should put
|
|
# it behind authentication and allow only admins to access it.
|
|
# If your application does not have an admins-only section yet,
|
|
# you can use Plug.BasicAuth to set up some basic authentication
|
|
# as long as you are also using SSL (which you should anyway).
|
|
import Phoenix.LiveDashboard.Router
|
|
|
|
scope "/dev" do
|
|
pipe_through :browser
|
|
|
|
live_dashboard "/dashboard", metrics: ExmrWeb.Telemetry
|
|
forward "/mailbox", Plug.Swoosh.MailboxPreview
|
|
end
|
|
end
|
|
|
|
## Authentication routes
|
|
|
|
scope "/", ExmrWeb do
|
|
pipe_through [:browser, :redirect_if_user_is_authenticated]
|
|
|
|
live_session :redirect_if_user_is_authenticated,
|
|
on_mount: [{ExmrWeb.UserAuth, :redirect_if_user_is_authenticated}, Exmrweb.LiveHelpers] do
|
|
if Exmr.enable_registration() != "false" do
|
|
live "/users/register", UserRegistrationLive, :new
|
|
end
|
|
|
|
live "/users/log_in", UserLoginLive, :new
|
|
live "/users/reset_password", UserForgotPasswordLive, :new
|
|
live "/users/reset_password/:token", UserResetPasswordLive, :edit
|
|
end
|
|
|
|
post "/users/log_in", UserSessionController, :create
|
|
end
|
|
|
|
scope "/", ExmrWeb do
|
|
pipe_through [:browser, :require_authenticated_user]
|
|
|
|
live_session :require_authenticated_user,
|
|
on_mount: [{ExmrWeb.UserAuth, :ensure_authenticated}, ExmrWeb.LiveHelpers] do
|
|
if Exmr.enable_registration() == "false" do
|
|
live "/users/register", UserRegistrationLive, :new
|
|
end
|
|
|
|
live "/users/settings", UserSettingsLive, :edit
|
|
live "/users/settings/confirm_email/:token", UserSettingsLive, :confirm_email
|
|
|
|
live "/exams", ExamLive.Index, :index
|
|
live "/exams/new", ExamLive.Index, :new
|
|
live "/exams/:id/edit", ExamLive.Index, :edit
|
|
|
|
live "/exams/:id", ExamLive.Show, :show
|
|
live "/exams/:id/show/edit", ExamLive.Show, :edit
|
|
end
|
|
end
|
|
|
|
scope "/", ExmrWeb do
|
|
pipe_through [:browser]
|
|
|
|
delete "/users/log_out", UserSessionController, :delete
|
|
|
|
live_session :current_user,
|
|
on_mount: [{ExmrWeb.UserAuth, :mount_current_user}, ExmrWeb.LiveHelpers] do
|
|
live "/users/confirm/:token", UserConfirmationLive, :edit
|
|
live "/users/confirm", UserConfirmationInstructionsLive, :new
|
|
end
|
|
end
|
|
end
|