Packages
pow
1.0.23
1.0.39
1.0.38
1.0.37
1.0.36
1.0.35
1.0.34
1.0.33
1.0.32
1.0.31
1.0.30
1.0.29
1.0.28
1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
1.0.0-rc.4
1.0.0-rc.3
1.0.0-rc.2
1.0.0-rc.1
1.0.0-rc.0
0.1.0-rc.1
0.1.0-alpha.8
0.1.0-alpha.7
retired
0.1.0-alpha.6
0.1.0-alpha.5
0.1.0-alpha.4
0.1.0-alpha.3
0.1.0-alpha.2
0.1.0-alpha.1
0.1.0-alpha
Robust user authentication solution
Security advisory:
This version has known vulnerabilities.
View advisories
Current section
Files
Jump to
Current section
Files
lib/pow/extension/phoenix/controllers/controller_callbacks.ex
defmodule Pow.Extension.Phoenix.ControllerCallbacks do
@moduledoc """
Module that adds controller callbacks for extensions.
It'll automatically trigger all extension callbacks.
## Usage
use Pow.Plug.Session,
controller_callbacks: Pow.Extension.Phoenix.ControllerCallbacks,
extensions: [PowExtensionA, PowExtensionB]
"""
alias Pow.{Config, Extension}
for hook <- [:before_process, :before_respond] do
@doc false
@spec unquote(hook)(atom(), atom(), any(), Config.t()) :: any()
def unquote(hook)(controller, action, results, config) do
config
|> controller_callbacks_modules()
|> Enum.reduce(results, fn
_extension, {:halt, conn} -> {:halt, conn}
extension, results -> extension.unquote(hook)(controller, action, results, config)
end)
end
end
defp controller_callbacks_modules(config) do
config
|> Extension.Config.extensions()
|> Extension.Config.extension_modules(["Phoenix", "ControllerCallbacks"])
end
end