mobilizon/lib/web/auth/context.ex

30 lines
542 B
Elixir
Raw Normal View History

2020-01-26 21:36:50 +01:00
defmodule Mobilizon.Web.Auth.Context do
@moduledoc """
2020-01-26 21:36:50 +01:00
Guardian context for Mobilizon.Web
"""
@behaviour Plug
import Plug.Conn
2020-01-23 21:59:50 +01:00
alias Mobilizon.Users.User
def init(opts) do
opts
end
def call(conn, _) do
context = %{ip: to_string(:inet_parse.ntoa(conn.remote_ip))}
context =
case Guardian.Plug.current_resource(conn) do
%User{} = user ->
2020-01-23 21:59:50 +01:00
Map.put(context, :current_user, user)
nil ->
context
end
put_private(conn, :absinthe, %{context: context})
end
end