Merge branch 'develop' of https://git.pleroma.social/pleroma/pleroma into develop
authorsadposter <hannah+pleroma@coffee-and-dreams.uk>
Sun, 1 Nov 2020 12:22:28 +0000 (12:22 +0000)
committersadposter <hannah+pleroma@coffee-and-dreams.uk>
Sun, 1 Nov 2020 12:22:28 +0000 (12:22 +0000)
1  2 
.gitignore
config/config.exs
lib/mix/tasks/pleroma/user.ex

diff --combined .gitignore
index 66d1376c53f173e3c5af516b9615cdcd839218f7,6ae21e9144f410f289fc0734b714bfcbd7226aac..b62891f264fe4bdcfeea2c94addd2d4a4038648f
@@@ -1,5 -1,4 +1,5 @@@
  # App artifacts
 +secret
  /_build
  /db
  /deps
@@@ -28,6 -27,8 +28,8 @@@ erl_crash.dum
  # variables.
  /config/*.secret.exs
  /config/generated_config.exs
+ /config/*.env
  
  # Database setup file, some may forget to delete it
  /config/setup_db.psql
diff --combined config/config.exs
index 584fb2ffa1431f7727e87599ba276c0efc96cf76,c0b6ac1d66fe03ab2ba6c180f217d22949846d23..5739095f0f85e16a60fe745ee9a9e2abd2822bfb
@@@ -123,7 -123,6 +123,6 @@@ websocket_config = 
  
  # Configures the endpoint
  config :pleroma, Pleroma.Web.Endpoint,
-   instrumenters: [Pleroma.Web.Endpoint.Instrumenter],
    url: [host: "localhost"],
    http: [
      ip: {127, 0, 0, 1},
    secret_key_base: "aK4Abxf29xU9TTDKre9coZPUgevcVCFQJe/5xP/7Lt4BEif6idBIbjupVbOrbKxl",
    signing_salt: "CqaoopA2",
    render_errors: [view: Pleroma.Web.ErrorView, accepts: ~w(json)],
-   pubsub: [name: Pleroma.PubSub, adapter: Phoenix.PubSub.PG2],
+   pubsub_server: Pleroma.PubSub,
    secure_cookie_flag: true,
    extra_cookie_attrs: [
      "SameSite=Lax"
@@@ -234,10 -233,8 +233,11 @@@ config :pleroma, :instance
      "text/markdown",
      "text/bbcode"
    ],
 +  mrf_transparency: true,
 +  mrf_transparency_exclusions: [],
 +  staff_transparency: [],
    autofollowed_nicknames: [],
+   autofollowing_nicknames: [],
    max_pinned_statuses: 1,
    attachment_links: false,
    max_report_comment_size: 1000,
@@@ -554,6 -551,7 +554,7 @@@ config :pleroma, Oban
    queues: [
      activity_expiration: 10,
      token_expiration: 5,
+     backup: 1,
      federator_incoming: 50,
      federator_outgoing: 50,
      ingestion_queue: 50,
@@@ -639,7 -637,12 +640,12 @@@ config :pleroma, Pleroma.Emails.UserEma
  
  config :pleroma, Pleroma.Emails.NewUsersDigestEmail, enabled: false
  
- config :prometheus, Pleroma.Web.Endpoint.MetricsExporter, path: "/api/pleroma/app_metrics"
+ config :prometheus, Pleroma.Web.Endpoint.MetricsExporter,
+   enabled: false,
+   auth: false,
+   ip_whitelist: [],
+   path: "/api/pleroma/app_metrics",
+   format: :text
  
  config :pleroma, Pleroma.ScheduledActivity,
    daily_user_limit: 25,
@@@ -680,7 -683,18 +686,18 @@@ config :pleroma, :rate_limit
  
  config :pleroma, Pleroma.Workers.PurgeExpiredActivity, enabled: true, min_lifetime: 600
  
- config :pleroma, Pleroma.Plugs.RemoteIp, enabled: true
+ config :pleroma, Pleroma.Web.Plugs.RemoteIp,
+   enabled: true,
+   headers: ["x-forwarded-for"],
+   proxies: [],
+   reserved: [
+     "127.0.0.0/8",
+     "::1/128",
+     "fc00::/7",
+     "10.0.0.0/8",
+     "172.16.0.0/12",
+     "192.168.0.0/16"
+   ]
  
  config :pleroma, :static_fe, enabled: false
  
@@@ -794,6 -808,8 +811,8 @@@ config :pleroma, :hackney_pools
      timeout: 300_000
    ]
  
+ config :pleroma, :majic_pool, size: 2
  private_instance? = :if_instance_is_private
  
  config :pleroma, :restrict_unauthenticated,
@@@ -820,6 -836,11 +839,11 @@@ config :floki, :html_parser, Floki.HTML
  
  config :pleroma, Pleroma.Web.Auth.Authenticator, Pleroma.Web.Auth.PleromaAuthenticator
  
+ config :pleroma, Pleroma.User.Backup,
+   purge_after_days: 30,
+   limit_days: 7,
+   dir: nil
  # 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"
index e36655f74e5a9789ec8d798b59d4ddef49a58d92,a8d2514118992eea0850b713d2471733b4ed5960..391f7c5b489fffb18e7a4de34412a56fbb677ddd
@@@ -345,39 -345,6 +345,39 @@@ defmodule Mix.Tasks.Pleroma.User d
      end
    end
  
 +  def run(["change_email", nickname, email]) do
 +    start_pleroma()
 +
 +    with %User{} = user <- User.get_cached_by_nickname(nickname) do
 +      user
 +      |> User.update_changeset(%{"email" => email})
 +      |> User.update_and_set_cache()
 +
 +      shell_info("#{nickname}'s email updated")
 +    end
 +  end
 +
 +  def run(["show", nickname]) do
 +    start_pleroma()
 +
 +    nickname
 +    |> User.get_cached_by_nickname()
 +    |> IO.inspect()
 +  end
 +
 +  def run(["send_confirmation", nickname]) do
 +    start_pleroma()
 +
 +    with %User{} = user <- User.get_cached_by_nickname(nickname) do
 +      user
 +      |> Pleroma.Emails.UserEmail.account_confirmation_email()
 +      |> IO.inspect()
 +      |> Pleroma.Emails.Mailer.deliver!()
 +
 +      shell_info("#{nickname}'s email sent")
 +    end
 +  end
 +
    def run(["toggle_confirmed", nickname]) do
      start_pleroma()
  
        |> Enum.each(fn user ->
          shell_info(
            "#{user.nickname} moderator: #{user.is_moderator}, admin: #{user.is_admin}, locked: #{
-             user.locked
+             user.is_locked
            }, deactivated: #{user.deactivated}"
          )
        end)
    defp set_locked(user, value) do
      {:ok, user} =
        user
-       |> Changeset.change(%{locked: value})
+       |> Changeset.change(%{is_locked: value})
        |> User.update_and_set_cache()
  
-     shell_info("Locked status of #{user.nickname}: #{user.locked}")
+     shell_info("Locked status of #{user.nickname}: #{user.is_locked}")
      user
    end