Packages
openmaize
2.1.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
priv/templates/phoenixauth/user_controller.ex
defmodule <%= base %>.UserController do
use <%= base %>.Web, :controller
import <%= base %>.Authorize<%= if confirm do %>
alias <%= base %>.{Mailer, User}
alias Openmaize.ConfirmEmail<% else %>
alias <%= base %>.User<% end %>
plug :user_check when action in [:index, :show]
plug :id_check when action in [:edit, :update, :delete]
def index(conn, _params) do
users = Repo.all(User)
render(conn, "index.html", users: users)
end
def new(conn, _params) do
changeset = User.changeset(%User{})
render(conn, "new.html", changeset: changeset)
end<%= if confirm do %>
def create(conn, %{"user" => %{"email" => email} = user_params}) do
{key, link} = ConfirmEmail.gen_token_link(email)
changeset = User.auth_changeset(%User{}, user_params, key)
case Repo.insert(changeset) do
{:ok, _user} ->
Mailer.ask_confirm(email, link)<% else %>
def create(conn, %{"user" => user_params}) do
changeset = User.changeset(%User{}, user_params)
case Repo.insert(changeset) do
{:ok, _user} -><% end %>
auth_info conn, "User created successfully", user_path(conn, :index)
{:error, changeset} ->
render(conn, "new.html", changeset: changeset)
end
end
def show(%Plug.Conn{assigns: %{current_user: user}} = conn, _params) do
render(conn, "show.html", user: user)
end
def edit(%Plug.Conn{assigns: %{current_user: user}} = conn, _params) do
changeset = User.changeset(user)
render(conn, "edit.html", user: user, changeset: changeset)
end
def update(%Plug.Conn{assigns: %{current_user: user}} = conn, %{"user" => user_params}) do
changeset = User.changeset(user, user_params)
case Repo.update(changeset) do
{:ok, user} ->
auth_info conn, "User updated successfully", user_path(conn, :show, user)
{:error, changeset} ->
render(conn, "edit.html", user: user, changeset: changeset)
end
end
def delete(%Plug.Conn{assigns: %{current_user: user}} = conn, _params) do
Repo.delete!(user)
configure_session(conn, drop: true)
|> auth_info("User deleted successfully", page_path(conn, :index))
end
end