Merge branch 'fix/signup-without-email' into 'develop'
[akkoma] / lib / pleroma / plugs / legacy_authentication_plug.ex
index 48c0aba8825989aed635062d62439c7e4046e209..5c5c36c560a494b24c78a55c21d0637c70d3671e 100644 (file)
@@ -1,3 +1,7 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
 defmodule Pleroma.Plugs.LegacyAuthenticationPlug do
   import Plug.Conn
   alias Pleroma.User
@@ -17,11 +21,15 @@ defmodule Pleroma.Plugs.LegacyAuthenticationPlug do
         } = conn,
         _
       ) do
-    if :crypt.crypt(password, password_hash) == password_hash do
+    with ^password_hash <- :crypt.crypt(password, password_hash),
+         {:ok, user} <-
+           User.reset_password(auth_user, %{password: password, password_confirmation: password}) do
       conn
-      |> assign(:user, auth_user)
+      |> assign(:auth_user, user)
+      |> assign(:user, user)
     else
-      conn
+      _ ->
+        conn
     end
   end