summaryrefslogtreecommitdiff
path: root/lib/pleroma/web/oauth/token/strategy/refresh_token.ex
diff options
context:
space:
mode:
Diffstat (limited to 'lib/pleroma/web/oauth/token/strategy/refresh_token.ex')
-rw-r--r--lib/pleroma/web/oauth/token/strategy/refresh_token.ex58
1 files changed, 0 insertions, 58 deletions
diff --git a/lib/pleroma/web/oauth/token/strategy/refresh_token.ex b/lib/pleroma/web/oauth/token/strategy/refresh_token.ex
deleted file mode 100644
index debc29b0b..000000000
--- a/lib/pleroma/web/oauth/token/strategy/refresh_token.ex
+++ /dev/null
@@ -1,58 +0,0 @@
-# Pleroma: A lightweight social networking server
-# Copyright © 2017-2020 Pleroma Authors <https://pleroma.social/>
-# SPDX-License-Identifier: AGPL-3.0-only
-
-defmodule Pleroma.Web.OAuth.Token.Strategy.RefreshToken do
- @moduledoc """
- Functions for dealing with refresh token strategy.
- """
-
- alias Pleroma.Config
- alias Pleroma.Repo
- alias Pleroma.Web.OAuth.Token
- alias Pleroma.Web.OAuth.Token.Strategy.Revoke
-
- @doc """
- Will grant access token by refresh token.
- """
- @spec grant(Token.t()) :: {:ok, Token.t()} | {:error, any()}
- def grant(token) do
- access_token = Repo.preload(token, [:user, :app])
-
- result =
- Repo.transaction(fn ->
- token_params = %{
- app: access_token.app,
- user: access_token.user,
- scopes: access_token.scopes
- }
-
- access_token
- |> revoke_access_token()
- |> create_access_token(token_params)
- end)
-
- case result do
- {:ok, {:error, reason}} -> {:error, reason}
- {:ok, {:ok, token}} -> {:ok, token}
- {:error, reason} -> {:error, reason}
- end
- end
-
- defp revoke_access_token(token) do
- Revoke.revoke(token)
- end
-
- defp create_access_token({:error, error}, _), do: {:error, error}
-
- defp create_access_token({:ok, token}, %{app: app, user: user} = token_params) do
- Token.create_token(app, user, add_refresh_token(token_params, token.refresh_token))
- end
-
- defp add_refresh_token(params, token) do
- case Config.get([:oauth2, :issue_new_refresh_token], false) do
- true -> Map.put(params, :refresh_token, token)
- false -> params
- end
- end
-end