Packages
pow
0.1.0-alpha.2
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/operations.ex
defmodule Pow.Operations do
@moduledoc """
Operation methods that glues operation calls to context module.
"""
alias Pow.{Config, Ecto.Context}
@spec changeset(Config.t(), map()) :: map() | nil | no_return
def changeset(config, params) do
user_mod = Config.user_module(config)
changeset(config, struct(user_mod), params)
end
@spec changeset(Config.t(), map(), map()) :: map()
def changeset(config, user, params) do
user_mod = Config.user_module(config)
user_mod.changeset(user, params)
end
@spec authenticate(Config.t(), map()) :: map() | nil | no_return
def authenticate(config, params) do
case context_module(config) do
Context -> Context.authenticate(config, params)
module -> module.authenticate(params)
end
end
@spec create(Config.t(), map()) :: {:ok, map()} | {:error, map()} | no_return
def create(config, params) do
case context_module(config) do
Context -> Context.create(config, params)
module -> module.create(params)
end
end
@spec update(Config.t(), map(), map()) :: {:ok, map()} | {:error, map()} | no_return
def update(config, user, params) do
case context_module(config) do
Context -> Context.update(config, user, params)
module -> module.update(user, params)
end
end
@spec delete(Config.t(), map()) :: {:ok, map()} | {:error, map()} | no_return
def delete(config, user) do
case context_module(config) do
Context -> Context.delete(config, user)
module -> module.delete(user)
end
end
@spec get_by(Config.t(), Keyword.t() | map()) :: map() | nil | no_return
def get_by(config, user) do
case context_module(config) do
Context -> Context.get_by(config, user)
module -> module.get_by(user)
end
end
defp context_module(config) do
Config.get(config, :users_context, Context)
end
end