diff options
author | lain <lain@soykaf.club> | 2020-05-17 11:53:17 +0200 |
---|---|---|
committer | lain <lain@soykaf.club> | 2020-05-17 11:53:17 +0200 |
commit | 8bfd9710ae70204b29e184f08d78b95a2f81ad6c (patch) | |
tree | 2a045e23969e2ce2df5e2cbd7d5b31b9a4b6d80c | |
parent | bfdd90f6d7c9bb85e572033070d6fa7efda8aeac (diff) | |
download | pleroma-8bfd9710ae70204b29e184f08d78b95a2f81ad6c.tar.gz |
Pleroma Authenticator: Also update passwords here.
-rw-r--r-- | lib/pleroma/web/auth/pleroma_authenticator.ex | 3 | ||||
-rw-r--r-- | test/web/auth/pleroma_authenticator_test.exs | 9 |
2 files changed, 9 insertions, 3 deletions
diff --git a/lib/pleroma/web/auth/pleroma_authenticator.ex b/lib/pleroma/web/auth/pleroma_authenticator.ex index a8f554aa3..200ca03dc 100644 --- a/lib/pleroma/web/auth/pleroma_authenticator.ex +++ b/lib/pleroma/web/auth/pleroma_authenticator.ex @@ -16,7 +16,8 @@ defmodule Pleroma.Web.Auth.PleromaAuthenticator do def get_user(%Plug.Conn{} = conn) do with {:ok, {name, password}} <- fetch_credentials(conn), {_, %User{} = user} <- {:user, fetch_user(name)}, - {_, true} <- {:checkpw, AuthenticationPlug.checkpw(password, user.password_hash)} do + {_, true} <- {:checkpw, AuthenticationPlug.checkpw(password, user.password_hash)}, + {:ok, user} <- AuthenticationPlug.maybe_update_password(user, password) do {:ok, user} else {:error, _reason} = error -> error diff --git a/test/web/auth/pleroma_authenticator_test.exs b/test/web/auth/pleroma_authenticator_test.exs index 5a421e5ed..731bd5932 100644 --- a/test/web/auth/pleroma_authenticator_test.exs +++ b/test/web/auth/pleroma_authenticator_test.exs @@ -15,11 +15,16 @@ defmodule Pleroma.Web.Auth.PleromaAuthenticatorTest do {:ok, [user: user, name: name, password: password]} end - test "get_user/authorization", %{user: user, name: name, password: password} do + test "get_user/authorization", %{name: name, password: password} do + name = name <> "1" + user = insert(:user, nickname: name, password_hash: Bcrypt.hash_pwd_salt(password)) + params = %{"authorization" => %{"name" => name, "password" => password}} res = PleromaAuthenticator.get_user(%Plug.Conn{params: params}) - assert {:ok, user} == res + assert {:ok, returned_user} = res + assert returned_user.id == user.id + assert "$pbkdf2" <> _ = returned_user.password_hash end test "get_user/authorization with invalid password", %{name: name} do |