aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorfence <fence@desu-mail.moe>2020-04-27 19:11:03 +0200
committerfence <fence@desu-mail.moe>2020-04-27 19:11:03 +0200
commitcc1e2e8d0f5fa27d051a0a21740a8052b95ce1a5 (patch)
tree1e05d7123113a1eb7370df988aa642fe56542838
parent5c7cc109172c84b991fad7eebbdd51e75f0c5382 (diff)
downloadpleroma-cc1e2e8d0f5fa27d051a0a21740a8052b95ce1a5.tar.gz
requested changes to mongoose_im_controller.ex
-rw-r--r--lib/pleroma/web/mongooseim/mongoose_im_controller.ex41
1 files changed, 11 insertions, 30 deletions
diff --git a/lib/pleroma/web/mongooseim/mongoose_im_controller.ex b/lib/pleroma/web/mongooseim/mongoose_im_controller.ex
index c15b4bfb8..7123153c5 100644
--- a/lib/pleroma/web/mongooseim/mongoose_im_controller.ex
+++ b/lib/pleroma/web/mongooseim/mongoose_im_controller.ex
@@ -14,7 +14,7 @@ defmodule Pleroma.Web.MongooseIM.MongooseIMController do
plug(RateLimiter, [name: :authentication, params: ["user"]] when action == :check_password)
def user_exists(conn, %{"user" => username}) do
- with %User{} <- Repo.get_by(User, nickname: username, local: true) do
+ with %User{} <- Repo.get_by(User, nickname: username, local: true, deactivated: false) do
conn
|> json(true)
else
@@ -26,41 +26,22 @@ defmodule Pleroma.Web.MongooseIM.MongooseIMController do
end
def check_password(conn, %{"user" => username, "pass" => password}) do
- user = Repo.get_by(User, nickname: username, local: true)
-
- state = case user do
- nil -> nil
- _ -> User.account_status(user)
- end
-
- case state do
- :deactivated ->
+ with %User{password_hash: password_hash, deactivated: false} <-
+ Repo.get_by(User, nickname: username, local: true),
+ true <- Pbkdf2.checkpw(password, password_hash) do
+ conn
+ |> json(true)
+ else
+ false ->
conn
- |> put_status(:not_found)
+ |> put_status(:forbidden)
|> json(false)
- :confirmation_pending ->
+ _ ->
conn
|> put_status(:not_found)
|> json(false)
-
- _ ->
- with %User{password_hash: password_hash} <-
- user,
- true <- Pbkdf2.checkpw(password, password_hash) do
- conn
- |> json(true)
- else
- false ->
- conn
- |> put_status(:forbidden)
- |> json(false)
-
- _ ->
- conn
- |> put_status(:not_found)
- |> json(false)
- end
end
end
end
+