diff options
author | Alex Gleason <alex@alexgleason.me> | 2021-07-13 22:47:47 -0500 |
---|---|---|
committer | Alex Gleason <alex@alexgleason.me> | 2021-07-13 22:47:47 -0500 |
commit | deb3f911366925bcc342a4a0deb44a2e7da7f1ba (patch) | |
tree | c8e587198f64c4c5f991a05561943c6bd0af465b /lib/pleroma/web/auth/helpers.ex | |
parent | 5e88796784e0ac2dbf57d9cf954fdc8ae8aeae43 (diff) | |
parent | 173e977e283789a814278c63bc81f40a13942e21 (diff) | |
download | pleroma-deb3f911366925bcc342a4a0deb44a2e7da7f1ba.tar.gz |
Merge remote-tracking branch 'pleroma/develop' into admin-api-users-sort
Diffstat (limited to 'lib/pleroma/web/auth/helpers.ex')
-rw-r--r-- | lib/pleroma/web/auth/helpers.ex | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/pleroma/web/auth/helpers.ex b/lib/pleroma/web/auth/helpers.ex new file mode 100644 index 000000000..c566de8d4 --- /dev/null +++ b/lib/pleroma/web/auth/helpers.ex @@ -0,0 +1,33 @@ +# Pleroma: A lightweight social networking server +# Copyright © 2017-2021 Pleroma Authors <https://pleroma.social/> +# SPDX-License-Identifier: AGPL-3.0-only + +defmodule Pleroma.Web.Auth.Helpers do + alias Pleroma.User + + @doc "Gets user by nickname or email for auth." + @spec fetch_user(String.t()) :: User.t() | nil + def fetch_user(name) do + User.get_by_nickname_or_email(name) + end + + # Gets name and password from conn + # + @spec fetch_credentials(Plug.Conn.t() | map()) :: + {:ok, {name :: any, password :: any}} | {:error, :invalid_credentials} + def fetch_credentials(%Plug.Conn{params: params} = _), + do: fetch_credentials(params) + + def fetch_credentials(params) do + case params do + %{"authorization" => %{"name" => name, "password" => password}} -> + {:ok, {name, password}} + + %{"grant_type" => "password", "username" => name, "password" => password} -> + {:ok, {name, password}} + + _ -> + {:error, :invalid_credentials} + end + end +end |