Merge branch 'develop' into 'fix/notifsettings-breaking-login'
authorfeld <feld@feld.me>
Thu, 15 Apr 2021 14:59:26 +0000 (14:59 +0000)
committerfeld <feld@feld.me>
Thu, 15 Apr 2021 14:59:26 +0000 (14:59 +0000)
# Conflicts:
#   CHANGELOG.md

CHANGELOG.md
priv/repo/migrations/20210401143153_user_notification_settings_fix.exs [new file with mode: 0644]

index 6e13b38756c14689c87e4e0621e6b4507ea4b3cc..9b0678023f9e83f4168555f94f38b5e87bce598c 100644 (file)
@@ -21,6 +21,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
 - Try to save exported ConfigDB settings (migrate_from_db) in the system temp directory if default location is not writable.
 - Uploading custom instance thumbnail via AdminAPI/AdminFE generated invalid URL to the image
 - Applying ConcurrentLimiter settings via AdminAPI
+- User login failures if their `notification_settings` were in a NULL state.
 
 ## [2.3.0] - 2020-03-01
 
diff --git a/priv/repo/migrations/20210401143153_user_notification_settings_fix.exs b/priv/repo/migrations/20210401143153_user_notification_settings_fix.exs
new file mode 100644 (file)
index 0000000..cf68f1b
--- /dev/null
@@ -0,0 +1,17 @@
+defmodule Pleroma.Repo.Migrations.UserNotificationSettingsFix do
+  use Ecto.Migration
+
+  def up do
+    execute(~s(UPDATE users
+    SET 
+      notification_settings = '{"followers": true, "follows": true, "non_follows": true, "non_followers": true}'::jsonb WHERE notification_settings IS NULL
+))
+
+    execute("ALTER TABLE users
+    ALTER COLUMN notification_settings SET NOT NULL")
+  end
+
+  def down do
+    :ok
+  end
+end