diff --git a/lib/pleroma/web/o_auth/token.ex b/lib/pleroma/web/o_auth/token.ex index d076d4a83..0c53f3938 100644 --- a/lib/pleroma/web/o_auth/token.ex +++ b/lib/pleroma/web/o_auth/token.ex @@ -97,12 +97,18 @@ defmodule Pleroma.Web.OAuth.Token do |> validate_required([:valid_until]) end - defp update_activity do + @spec update_activity(Token.t()) :: {:ok, Token.t()} | {:error, Ecto.Changeset.t()} + def update_activity(token) do last_active = NaiveDateTime.utc_now() + changeset = Ecto.Changeset.change(token) + changeset |> change(%{last_active: last_active}) |> validate_required([:last_active]) + |> Repo.insert() + + {: ok, token} end @spec create(App.t(), User.t(), map()) :: {:ok, Token.t()} | {:error, Ecto.Changeset.t()} diff --git a/lib/pleroma/web/plugs/o_auth_plug.ex b/lib/pleroma/web/plugs/o_auth_plug.ex index e3035df0c..4246a9c75 100644 --- a/lib/pleroma/web/plugs/o_auth_plug.ex +++ b/lib/pleroma/web/plugs/o_auth_plug.ex @@ -24,7 +24,7 @@ defmodule Pleroma.Web.Plugs.OAuthPlug do with {:ok, token_str} <- fetch_token_str(conn) do with {:ok, user, user_token} <- fetch_user_and_token(token_str), false <- Token.expired?(user_token) do - Token.update_activity() + Token.update_activity(user_token) conn |> assign(:token, user_token)