Packages
openmaize
2.0.2
3.0.1
retired
3.0.0
2.9.0
2.8.0
2.7.0
2.6.0
2.5.1
2.5.0
2.4.0
2.3.2
2.3.1
2.3.0
2.2.0
2.1.5
2.1.4
2.1.3
2.1.2
2.1.1
2.1.0
2.0.2
2.0.1
2.0.0
1.0.1
1.0.0
1.0.0-beta.5
1.0.0-beta.4
1.0.0-beta.3
1.0.0-beta.2
1.0.0-beta.1
1.0.0-beta.0
0.19.3
0.19.2
0.19.1
0.19.0
0.18.1
0.18.0
0.17.2
0.17.1
0.17.0
0.16.2
0.16.1
0.16.0
0.15.1
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.2
0.10.1
0.10.0
0.8.1
0.8.0
0.7.5
0.7.4
0.7.2
0.7.1
0.7.0
0.6.7
0.6.6
0.6.3
0.6.2
0.6.1
0.6.0
0.5.0
0.4.1
0.4.0
Authentication library for Elixir using Plug
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/openmaize.gen.phoenixauth.ex
defmodule Mix.Tasks.Openmaize.Gen.Phoenixauth do
use Mix.Task
@moduledoc """
Create modules for authorization and, optionally, email confirmation.
## Options
There is one option:
* api - provide functions for an api, using OpenmaizeJWT and JSON Web Tokens
* the default is false
## Examples
In the root directory of your project, run the following command
(add the `--api` option if your app is for an api):
mix openmaize.gen.phoenixauth
This command will create an Authorize module in the `web/controllers`
directory and tests in the `test/controllers` directory.
You will be asked if you want to add modules for email confirmation
and password resetting, and if you reply yes, there will be a Confirm
module created in the `web/controllers` directory and tests added to
the `tests/controllers` directory.
"""
@doc false
def run(args) do
switches = [api: :boolean]
{opts, _argv, _} = OptionParser.parse(args, switches: switches)
mod_name = Openmaize.Utils.base_name
srcdir = Path.join [Application.app_dir(:openmaize, "priv"), "templates",
opts[:api] && "api" || "html"]
auth_files = [{"authorize.ex", "web/controllers/authorize.ex"},
{"authorize_test.exs", "test/controllers/authorize_test.exs"}]
files = if Mix.shell.yes?("\nAdd modules for email confirmation?") do
auth_files ++ [{"confirm.ex", "web/controllers/confirm.ex"},
{"confirm_test.exs", "test/controllers/confirm_test.exs"}]
else
auth_files
end
Mix.Openmaize.copy_files(srcdir, files, mod_name)
|> instructions()
end
@doc false
def instructions(oks) do
if :ok in oks do
Mix.shell.info """
Please check the generated files. You might need to uncomment certain
lines and / or change certain details, such as paths, user details,
roles, etc.
Before you use Openmaize, you need to install a module which implements
the Openmaize.Database behaviour. If you are using Ecto, you can generate a
template for this by running the following command:
mix openmaize.gen.ectodb
You may also need to configure Openmaize. See the documentation for
Openmaize.Config for details.
"""
else
Mix.shell.info """
No files have been installed.
"""
end
end
end