about summary refs log tree commit diff
path: root/app/controllers/settings
diff options
context:
space:
mode:
Diffstat (limited to 'app/controllers/settings')
-rw-r--r--app/controllers/settings/preferences/filters_controller.rb9
-rw-r--r--app/controllers/settings/preferences/privacy_controller.rb9
-rw-r--r--app/controllers/settings/preferences/publishing_controller.rb9
-rw-r--r--app/controllers/settings/preferences_controller.rb21
-rw-r--r--app/controllers/settings/profiles_controller.rb4
5 files changed, 50 insertions, 2 deletions
diff --git a/app/controllers/settings/preferences/filters_controller.rb b/app/controllers/settings/preferences/filters_controller.rb
new file mode 100644
index 000000000..c58a698ef
--- /dev/null
+++ b/app/controllers/settings/preferences/filters_controller.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class Settings::Preferences::FiltersController < Settings::PreferencesController
+  private
+
+  def after_update_redirect_path
+    settings_preferences_filters_path
+  end
+end
diff --git a/app/controllers/settings/preferences/privacy_controller.rb b/app/controllers/settings/preferences/privacy_controller.rb
new file mode 100644
index 000000000..f447fa598
--- /dev/null
+++ b/app/controllers/settings/preferences/privacy_controller.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class Settings::Preferences::PrivacyController < Settings::PreferencesController
+  private
+
+  def after_update_redirect_path
+    settings_preferences_privacy_path
+  end
+end
diff --git a/app/controllers/settings/preferences/publishing_controller.rb b/app/controllers/settings/preferences/publishing_controller.rb
new file mode 100644
index 000000000..5b298d94d
--- /dev/null
+++ b/app/controllers/settings/preferences/publishing_controller.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class Settings::Preferences::PublishingController < Settings::PreferencesController
+  private
+
+  def after_update_redirect_path
+    settings_preferences_publishing_path
+  end
+end
diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb
index 87431f8cf..f3fbd9654 100644
--- a/app/controllers/settings/preferences_controller.rb
+++ b/app/controllers/settings/preferences_controller.rb
@@ -4,7 +4,10 @@ class Settings::PreferencesController < Settings::BaseController
   def show; end
 
   def update
-    user_settings.update(user_settings_params.to_h)
+    if user_settings.update(user_settings_params.to_h)
+      Rails.cache.delete("filter_settings:#{current_user.account_id}")
+      ClearReblogsWorker.perform_async(current_user.account_id) if current_user.disables_home_reblogs?
+    end
 
     if current_user.update(user_params)
       I18n.locale = current_user.locale
@@ -57,6 +60,22 @@ class Settings::PreferencesController < Settings::BaseController
       :setting_use_pending_items,
       :setting_trends,
       :setting_crop_images,
+      :setting_manual_publish,
+      :setting_style_dashed_nest,
+      :setting_style_underline_a,
+      :setting_style_css_profile,
+      :setting_style_css_webapp,
+      :setting_style_wide_media,
+      :setting_publish_in,
+      :setting_unpublish_in,
+      :setting_unpublish_delete,
+      :setting_boost_every,
+      :setting_boost_jitter,
+      :setting_boost_random,
+      :setting_filter_from_unknown,
+      :setting_unpublish_on_delete,
+      :setting_rss_disabled,
+      :setting_no_boosts_home,
       notification_emails: %i(follow follow_request reblog favourite mention digest report pending_account trending_tag),
       interactions: %i(must_be_follower must_be_following must_be_following_dm)
     )
diff --git a/app/controllers/settings/profiles_controller.rb b/app/controllers/settings/profiles_controller.rb
index 0c15447a6..541ba2d5d 100644
--- a/app/controllers/settings/profiles_controller.rb
+++ b/app/controllers/settings/profiles_controller.rb
@@ -20,7 +20,9 @@ class Settings::ProfilesController < Settings::BaseController
   private
 
   def account_params
-    params.require(:account).permit(:display_name, :note, :avatar, :header, :locked, :bot, :discoverable, fields_attributes: [:name, :value])
+    params.require(:account).permit(:display_name, :note, :avatar, :header, :locked, :bot, :discoverable,
+                                    :require_dereference, :show_replies, :show_unlisted, :private, :require_auth,
+                                    fields_attributes: [:name, :value])
   end
 
   def set_account