diff options
| -rw-r--r-- | config/config.exs | 4 | ||||
| -rw-r--r-- | config/description.exs | 20 | ||||
| -rw-r--r-- | docs/configuration/cheatsheet.md | 5 | ||||
| -rw-r--r-- | lib/pleroma/backup.ex | 2 | ||||
| -rw-r--r-- | test/backup_test.exs | 2 | 
5 files changed, 31 insertions, 2 deletions
diff --git a/config/config.exs b/config/config.exs index 1f10167e5..09023e2c3 100644 --- a/config/config.exs +++ b/config/config.exs @@ -818,6 +818,10 @@ config :floki, :html_parser, Floki.HTMLParser.FastHtml  config :pleroma, Pleroma.Web.Auth.Authenticator, Pleroma.Web.Auth.PleromaAuthenticator +config :pleroma, Pleroma.Backup, +  purge_after_days: 30, +  limit_days: 7 +  # Import environment specific config. This must remain at the bottom  # of this file so it overrides the configuration defined above.  import_config "#{Mix.env()}.exs" diff --git a/config/description.exs b/config/description.exs index 13e44afe8..4942e196d 100644 --- a/config/description.exs +++ b/config/description.exs @@ -3712,5 +3712,25 @@ config :pleroma, :config_description, [          ]        }      ] +  }, +  %{ +    group: :pleroma, +    key: Pleroma.Backup, +    type: :group, +    description: "Account Backup", +    children: [ +      %{ +        key: :purge_after_days, +        type: :integer, +        description: "Remove backup achives after N days", +        suggestions: [30] +      }, +      %{ +        key: :limit_days, +        type: :integer, +        description: "Limit user to export not more often than once per N days", +        suggestions: [7] +      } +    ]    }  ] diff --git a/docs/configuration/cheatsheet.md b/docs/configuration/cheatsheet.md index 42e5fe808..cc4081f14 100644 --- a/docs/configuration/cheatsheet.md +++ b/docs/configuration/cheatsheet.md @@ -1083,6 +1083,11 @@ Control favicons for instances.  * `enabled`: Allow/disallow displaying and getting instances favicons +## Account Backup + +* `:purge_after_days` an integer, remove backup achives after N days. +* `:limit_days` an integer, limit user to export not more often than once per N days. +  ## Frontend management  Frontends in Pleroma are swappable - you can specify which one to use here. diff --git a/lib/pleroma/backup.ex b/lib/pleroma/backup.ex index 9b5d2625f..e384b6b00 100644 --- a/lib/pleroma/backup.ex +++ b/lib/pleroma/backup.ex @@ -49,7 +49,7 @@ defmodule Pleroma.Backup do    defp validate_limit(user) do      case get_last(user.id) do        %__MODULE__{inserted_at: inserted_at} -> -        days = 7 +        days = Pleroma.Config.get([Pleroma.Backup, :limit_days])          diff = Timex.diff(NaiveDateTime.utc_now(), inserted_at, :days)          if diff > days do diff --git a/test/backup_test.exs b/test/backup_test.exs index 5b1f76dd9..f343b0361 100644 --- a/test/backup_test.exs +++ b/test/backup_test.exs @@ -27,7 +27,7 @@ defmodule Pleroma.BackupTest do    test "it return an error if the export limit is over" do      %{id: user_id} = user = insert(:user) -    limit_days = 7 +    limit_days = Pleroma.Config.get([Pleroma.Backup, :limit_days])      assert {:ok, %Oban.Job{args: args}} = Backup.create(user)      backup = Backup.get(args["backup_id"])      assert %Backup{user_id: ^user_id, processed: false, file_size: 0} = backup  | 
