about summary refs log tree commit diff
diff options
context:
space:
mode:
authorClaire <claire.github-309c@sitedethib.com>2022-11-17 10:55:23 +0100
committerGitHub <noreply@github.com>2022-11-17 10:55:23 +0100
commit00b2720ef08e91bee88cd24da7eb2ba836a7a10f (patch)
treeaef293a859fb1363f458bfddb00dcd94040c4a46
parent7955d4b9592a099a8da3374175461b3aa3057c61 (diff)
Change automatic post deletion configuration to be accessible to redirected users (#20774)
Fixes #20550
-rw-r--r--app/controllers/statuses_cleanup_controller.rb4
-rw-r--r--app/models/user.rb6
-rw-r--r--config/navigation.rb2
3 files changed, 10 insertions, 2 deletions
diff --git a/app/controllers/statuses_cleanup_controller.rb b/app/controllers/statuses_cleanup_controller.rb
index be234cdcb..e912967fd 100644
--- a/app/controllers/statuses_cleanup_controller.rb
+++ b/app/controllers/statuses_cleanup_controller.rb
@@ -19,6 +19,10 @@ class StatusesCleanupController < ApplicationController
     # Do nothing
   end
 
+  def require_functional!
+    redirect_to edit_user_registration_path unless current_user.functional_or_moved?
+  end
+
   private
 
   def set_policy
diff --git a/app/models/user.rb b/app/models/user.rb
index 6d566b1c2..3d0298927 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -237,7 +237,11 @@ class User < ApplicationRecord
   end
 
   def functional?
-    confirmed? && approved? && !disabled? && !account.suspended? && !account.memorial? && account.moved_to_account_id.nil?
+    functional_or_moved? && account.moved_to_account_id.nil?
+  end
+
+  def functional_or_moved?
+    confirmed? && approved? && !disabled? && !account.suspended? && !account.memorial?
   end
 
   def unconfirmed?
diff --git a/config/navigation.rb b/config/navigation.rb
index e901fb932..30817d025 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -17,7 +17,7 @@ SimpleNavigation::Configuration.run do |navigation|
 
     n.item :relationships, safe_join([fa_icon('users fw'), t('settings.relationships')]), relationships_path, if: -> { current_user.functional? }
     n.item :filters, safe_join([fa_icon('filter fw'), t('filters.index.title')]), filters_path, highlights_on: %r{/filters}, if: -> { current_user.functional? }
-    n.item :statuses_cleanup, safe_join([fa_icon('history fw'), t('settings.statuses_cleanup')]), statuses_cleanup_path, if: -> { current_user.functional? }
+    n.item :statuses_cleanup, safe_join([fa_icon('history fw'), t('settings.statuses_cleanup')]), statuses_cleanup_path, if: -> { current_user.functional_or_moved? }
 
     n.item :security, safe_join([fa_icon('lock fw'), t('settings.account')]), edit_user_registration_path do |s|
       s.item :password, safe_join([fa_icon('lock fw'), t('settings.account_settings')]), edit_user_registration_path, highlights_on: %r{/auth/edit|/settings/delete|/settings/migration|/settings/aliases|/settings/login_activities|^/disputes}