defmodule LiveblogWeb.Router do
use LiveblogWeb, :router
use Pow.Phoenix.Router
use Pow.Extension.Phoenix.Router,
extensions: [PowEmailConfirmation, PowInvitation, PowPersistentSession, PowResetPassword]
pipeline :browser do
plug :accepts, ["html"]
plug :fetch_session
plug :fetch_live_flash
plug :put_root_layout, {LiveblogWeb.LayoutView, :root}
plug :protect_from_forgery
plug :put_secure_browser_headers
end
pipeline :api do
plug :accepts, ["json"]
end
pipeline :protected do
plug Pow.Plug.RequireAuthenticated,
error_handler: Pow.Phoenix.PlugErrorHandler
end
scope "/" do
pipe_through :browser
pow_routes()
pow_extension_routes()
end
scope "/", LiveblogWeb do
pipe_through [:browser, :protected]
# live "/", PageLive, :index
resources "/item", ItemController, except: [:index]
# Add your protected routes here
end
scope "/", LiveblogWeb do
pipe_through :browser
resources "/", ItemController, only: [:index]
end
defmodule MyApp.Users.User do
use Ecto.Schema
use Pow.Ecto.Schema
use Pow.Extension.Ecto.Schema,
extensions: [PowEmailConfirmation, PowInvitation, PowPersistentSession, PowResetPassword]
# ...
def changeset(user_or_changeset, attrs) do
user_or_changeset
|> pow_changeset(attrs)
|> pow_extension_changeset(attrs)
end
end
If both of the above are correctly set then I would look at the changeset to make sure that it isn’t overriding email confirmation handling.
defmodule Liveblog.Users.User do
use Ecto.Schema
use Pow.Ecto.Schema
use Pow.Extension.Ecto.Schema,
extensions: [PowEmailConfirmation, PowInvitation, PowPersistentSession, PowResetPassword]
schema "users" do
pow_user_fields()
timestamps()
end
def changeset(user_or_changeset, attrs) do
user_or_changeset
|> pow_changeset(attrs)
|> pow_extension_changeset(attrs)
end
end
Taken exactly as per the docs…
I would look at the changeset to make sure that it isn’t overriding email confirmation handling.
Unfortunately not. I would have to build config validation into Pow for that to work, but not sure if it’s a good idea, or possible, as Pow extensions might also use the config. The upside is that this is usually something you would catch very early on, and only has to be fixed once.