aboutsummaryrefslogtreecommitdiff
path: root/lib/pleroma/web/oauth/token/clean_worker.ex
diff options
context:
space:
mode:
authorlain <lain@soykaf.club>2020-05-07 15:05:40 +0200
committerlain <lain@soykaf.club>2020-05-07 15:05:40 +0200
commitfb2d284d2897e8b789da4f81ae8d288373d2bf76 (patch)
tree35b6a6d3c656244528dc2455f768b4f9704fce8e /lib/pleroma/web/oauth/token/clean_worker.ex
parent1748e2694815da20689005110937ea42cd554d70 (diff)
parentb7635bf2b6c5251ffc8f3b3b8e1bc7ee9db83b7e (diff)
downloadpleroma-fb2d284d2897e8b789da4f81ae8d288373d2bf76.tar.gz
Merge branch 'develop' of git.pleroma.social:pleroma/pleroma into remake-remodel-dms
Diffstat (limited to 'lib/pleroma/web/oauth/token/clean_worker.ex')
-rw-r--r--lib/pleroma/web/oauth/token/clean_worker.ex38
1 files changed, 38 insertions, 0 deletions
diff --git a/lib/pleroma/web/oauth/token/clean_worker.ex b/lib/pleroma/web/oauth/token/clean_worker.ex
new file mode 100644
index 000000000..2c3bb9ded
--- /dev/null
+++ b/lib/pleroma/web/oauth/token/clean_worker.ex
@@ -0,0 +1,38 @@
+# Pleroma: A lightweight social networking server
+# Copyright © 2017-2019 Pleroma Authors <https://pleroma.social/>
+# SPDX-License-Identifier: AGPL-3.0-only
+
+defmodule Pleroma.Web.OAuth.Token.CleanWorker do
+ @moduledoc """
+ The module represents functions to clean an expired OAuth and MFA tokens.
+ """
+ use GenServer
+
+ @ten_seconds 10_000
+ @one_day 86_400_000
+
+ alias Pleroma.MFA
+ alias Pleroma.Web.OAuth
+ alias Pleroma.Workers.BackgroundWorker
+
+ def start_link(_), do: GenServer.start_link(__MODULE__, %{})
+
+ def init(_) do
+ Process.send_after(self(), :perform, @ten_seconds)
+ {:ok, nil}
+ end
+
+ @doc false
+ def handle_info(:perform, state) do
+ BackgroundWorker.enqueue("clean_expired_tokens", %{})
+ interval = Pleroma.Config.get([:oauth2, :clean_expired_tokens_interval], @one_day)
+
+ Process.send_after(self(), :perform, interval)
+ {:noreply, state}
+ end
+
+ def perform(:clean) do
+ OAuth.Token.delete_expired_tokens()
+ MFA.Token.delete_expired_tokens()
+ end
+end