about summary refs log tree commit diff
path: root/app/models
diff options
context:
space:
mode:
authormultiple creatures <dev@multiple-creature.party>2019-05-05 23:08:13 -0500
committermultiple creatures <dev@multiple-creature.party>2019-05-21 03:16:22 -0500
commitc983c4e9528cf4163655db079393ba343f571718 (patch)
tree5d7ee3cea108a0771fa99604c7e0c5442747e4d1 /app/models
parenta47b1daaebea09ca07ca93079e530f26cfeef914 (diff)
Privacy: add options to make interaction lists private and to not be included in public interaction lists.
Diffstat (limited to 'app/models')
-rw-r--r--app/models/account.rb3
-rw-r--r--app/models/user.rb5
2 files changed, 8 insertions, 0 deletions
diff --git a/app/models/account.rb b/app/models/account.rb
index c07da2a14..dd644ea37 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -49,6 +49,7 @@
 #  hidden                  :boolean          default(FALSE), not null
 #  vars                    :jsonb            not null
 #  replies                 :boolean          default(TRUE), not null
+#  unlisted                :boolean          default(FALSE), not null
 #
 
 class Account < ApplicationRecord
@@ -108,6 +109,8 @@ class Account < ApplicationRecord
   scope :tagged_with, ->(tag) { joins(:accounts_tags).where(accounts_tags: { tag_id: tag }) }
   scope :by_recent_status, -> { order(Arel.sql('(case when account_stats.last_status_at is null then 1 else 0 end) asc, account_stats.last_status_at desc')) }
   scope :popular, -> { order('account_stats.followers_count desc') }
+  scope :without_hidden, -> { where(hidden: false) }
+  scope :without_unlisted, -> { where(unlisted: false) }
 
   delegate :email,
            :unconfirmed_email,
diff --git a/app/models/user.rb b/app/models/user.rb
index 95d2e6ffb..e5984b672 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -122,6 +122,7 @@ class User < ApplicationRecord
     :gently_kobolds,
     :user_is_kobold,
     :hide_mascot,
+    :hide_interactions,
 
     :auto_play_gif,
     :default_sensitive,
@@ -280,6 +281,10 @@ class User < ApplicationRecord
     settings.hide_mascot || false
   end
 
+  def setting_hide_interactions
+    settings.hide_interactions || false
+  end
+
   def setting_default_privacy
     settings.default_privacy || 'public'
   end