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/mix/tasks/ecto/pow.ecto.gen.schema.ex
defmodule Mix.Tasks.Pow.Ecto.Gen.Schema do
@shortdoc "Generates user schema"
@moduledoc """
Generates a user schema.
mix pow.ecto.gen.schema -r MyApp.Repo
"""
use Mix.Task
alias Pow.Ecto.Schema.Module, as: SchemaModule
alias Mix.{Generator, Pow}
@switches [context_app: :string, binary_id: :boolean]
@default_opts [binary_id: false]
@doc false
def run(args) do
Pow.no_umbrella!("pow.ecto.gen.schema")
args
|> Pow.parse_options(@switches, @default_opts)
|> create_schema_file()
end
defp create_schema_file(%{binary_id: binary_id} = config) do
context_app = Map.get(config, :context_app, Pow.context_app())
context_base = Pow.context_base(context_app)
base_name = "user.ex"
content = SchemaModule.gen(context_base, module: "Users.User", binary_id: binary_id)
context_app
|> Pow.context_lib_path("users")
|> maybe_create_directory()
|> Path.join(base_name)
|> ensure_unique()
|> Generator.create_file(content)
end
defp maybe_create_directory(path) do
Generator.create_directory(path)
path
end
defp ensure_unique(path) do
path
|> File.exists?()
|> case do
false -> path
_ -> Mix.raise("schema file can't be created, there is already a schema file in #{path}.")
end
end
end