Merge branch 'feature/file-size-checking' into 'develop'
[akkoma] / lib / pleroma / plugs / authentication_plug.ex
1 defmodule Pleroma.Plugs.AuthenticationPlug do
2 alias Comeonin.Pbkdf2
3 import Plug.Conn
4 alias Pleroma.User
5
6 def init(options) do
7 options
8 end
9
10 def call(%{assigns: %{user: %User{}}} = conn, _), do: conn
11
12 def call(
13 %{
14 assigns: %{
15 auth_user: %{password_hash: password_hash} = auth_user,
16 auth_credentials: %{password: password}
17 }
18 } = conn,
19 _
20 ) do
21 if Pbkdf2.checkpw(password, password_hash) do
22 conn
23 |> assign(:user, auth_user)
24 else
25 conn
26 end
27 end
28
29 def call(%{assigns: %{auth_credentials: %{password: _}}} = conn, _) do
30 Pbkdf2.dummy_checkpw()
31 conn
32 end
33
34 def call(conn, _), do: conn
35 end