Packages
potionx
0.6.3
0.8.15
0.8.14
0.8.13
0.8.12
0.8.11
0.8.10
0.8.9
0.8.8
0.8.7
0.8.6
0.8.5
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.2
0.7.1
0.7.0
0.6.4
0.6.3
0.6.2
0.6.1
0.6.0
0.5.3
0.5.2
0.5.1
0.5.0
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.0
0.2.18
0.2.17
0.2.16
0.2.15
0.2.14
0.2.13
0.2.12
0.2.11
0.2.10
0.2.9
0.2.8
0.2.7
0.2.6
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.1.1
0.1.0
Potionx is a set of generators and functions that speeds up the process of setting up and deploying a full-stack application that uses Elixir with GraphQL for the server-side component and Vue for the frontend component.
Current section
Files
Jump to
Current section
Files
lib/potionx/plugs/require_unauth_plug.ex
defmodule Potionx.Plug.RequireUnauth do
@behaviour Plug
alias Potionx.Context.Service
def call(%{assigns: %{context: %Service{}}} = conn, opts) do
conn
|> maybe_redirect(opts)
end
def init(opts) do
Keyword.merge(
[],
opts
)
|> Enum.into(%{})
end
def maybe_redirect(%{halted: true} = conn, _), do: conn
def maybe_redirect(%{assigns: %{context: %{session: %{user: %{id: id}}}}} = conn, _opts) when not is_nil(id) do
Phoenix.Controller.redirect(conn, to: "/")
|> Plug.Conn.halt
end
def maybe_redirect(conn, _) do
conn
end
end