aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/oauth
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-06-05 16:53:56 +0200
committerlain <lain@soykaf.club>2020-06-05 16:53:56 +0200
commita8ca030d85368285af1b960e14dab5b847ecb35a (patch)
tree5d8c8922eea940f455946435c073d534df1dec57 /lib/pleroma/web/oauth
parent115d08a7542b92c5e1d889da41c0ee6837a1235e (diff)
parent657e1583f8af1ecdf218ba283de4234233bfe5fd (diff)
downloadpleroma-a8ca030d85368285af1b960e14dab5b847ecb35a.tar.gz
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
Diffstat (limited to 'lib/pleroma/web/oauth')
-rw-r--r--lib/pleroma/web/oauth/app.ex29
-rw-r--r--lib/pleroma/web/oauth/oauth_controller.ex5
2 files changed, 18 insertions, 16 deletions
diff --git a/lib/pleroma/web/oauth/app.ex b/lib/pleroma/web/oauth/app.ex
index 6a6d5f2e2..df99472e1 100644
--- a/lib/pleroma/web/oauth/app.ex
+++ b/lib/pleroma/web/oauth/app.ex
@@ -25,12 +25,12 @@ defmodule Pleroma.Web.OAuth.App do
timestamps()
end
- @spec changeset(App.t(), map()) :: Ecto.Changeset.t()
+ @spec changeset(t(), map()) :: Ecto.Changeset.t()
def changeset(struct, params) do
cast(struct, params, [:client_name, :redirect_uris, :scopes, :website, :trusted])
end
- @spec register_changeset(App.t(), map()) :: Ecto.Changeset.t()
+ @spec register_changeset(t(), map()) :: Ecto.Changeset.t()
def register_changeset(struct, params \\ %{}) do
changeset =
struct
@@ -52,18 +52,19 @@ defmodule Pleroma.Web.OAuth.App do
end
end
- @spec create(map()) :: {:ok, App.t()} | {:error, Ecto.Changeset.t()}
+ @spec create(map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
def create(params) do
- with changeset <- __MODULE__.register_changeset(%__MODULE__{}, params) do
- Repo.insert(changeset)
- end
+ %__MODULE__{}
+ |> register_changeset(params)
+ |> Repo.insert()
end
- @spec update(map()) :: {:ok, App.t()} | {:error, Ecto.Changeset.t()}
- def update(params) do
- with %__MODULE__{} = app <- Repo.get(__MODULE__, params["id"]),
- changeset <- changeset(app, params) do
- Repo.update(changeset)
+ @spec update(pos_integer(), map()) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
+ def update(id, params) do
+ with %__MODULE__{} = app <- Repo.get(__MODULE__, id) do
+ app
+ |> changeset(params)
+ |> Repo.update()
end
end
@@ -71,7 +72,7 @@ defmodule Pleroma.Web.OAuth.App do
Gets app by attrs or create new with attrs.
And updates the scopes if need.
"""
- @spec get_or_make(map(), list(String.t())) :: {:ok, App.t()} | {:error, Ecto.Changeset.t()}
+ @spec get_or_make(map(), list(String.t())) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
def get_or_make(attrs, scopes) do
with %__MODULE__{} = app <- Repo.get_by(__MODULE__, attrs) do
update_scopes(app, scopes)
@@ -92,7 +93,7 @@ defmodule Pleroma.Web.OAuth.App do
|> Repo.update()
end
- @spec search(map()) :: {:ok, [App.t()], non_neg_integer()}
+ @spec search(map()) :: {:ok, [t()], non_neg_integer()}
def search(params) do
query = from(a in __MODULE__)
@@ -128,7 +129,7 @@ defmodule Pleroma.Web.OAuth.App do
{:ok, Repo.all(query), count}
end
- @spec destroy(pos_integer()) :: {:ok, App.t()} | {:error, Ecto.Changeset.t()}
+ @spec destroy(pos_integer()) :: {:ok, t()} | {:error, Ecto.Changeset.t()}
def destroy(id) do
with %__MODULE__{} = app <- Repo.get(__MODULE__, id) do
Repo.delete(app)
diff --git a/lib/pleroma/web/oauth/oauth_controller.ex b/lib/pleroma/web/oauth/oauth_controller.ex
index 7c804233c..c557778ca 100644
--- a/lib/pleroma/web/oauth/oauth_controller.ex
+++ b/lib/pleroma/web/oauth/oauth_controller.ex
@@ -6,6 +6,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do
use Pleroma.Web, :controller
alias Pleroma.Helpers.UriHelper
+ alias Pleroma.Maps
alias Pleroma.MFA
alias Pleroma.Plugs.RateLimiter
alias Pleroma.Registration
@@ -108,7 +109,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do
if redirect_uri in String.split(app.redirect_uris) do
redirect_uri = redirect_uri(conn, redirect_uri)
url_params = %{access_token: token.token}
- url_params = UriHelper.append_param_if_present(url_params, :state, params["state"])
+ url_params = Maps.put_if_present(url_params, :state, params["state"])
url = UriHelper.append_uri_params(redirect_uri, url_params)
redirect(conn, external: url)
else
@@ -147,7 +148,7 @@ defmodule Pleroma.Web.OAuth.OAuthController do
if redirect_uri in String.split(app.redirect_uris) do
redirect_uri = redirect_uri(conn, redirect_uri)
url_params = %{code: auth.token}
- url_params = UriHelper.append_param_if_present(url_params, :state, auth_attrs["state"])
+ url_params = Maps.put_if_present(url_params, :state, auth_attrs["state"])
url = UriHelper.append_uri_params(redirect_uri, url_params)
redirect(conn, external: url)
else