about summary refs log tree commit diff
path: root/app/models
diff options
context:
space:
mode:
Diffstat (limited to 'app/models')
-rw-r--r--app/models/status.rb8
-rw-r--r--app/models/user.rb4
2 files changed, 10 insertions, 2 deletions
diff --git a/app/models/status.rb b/app/models/status.rb
index ab68f4e69..142dec64e 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -102,21 +102,25 @@ class Status < ApplicationRecord
       where(account: [account] + account.following)
     end
 
-    def as_public_timeline(account = nil)
+    def as_public_timeline(account = nil, local_only = false)
       query = joins('LEFT OUTER JOIN accounts ON statuses.account_id = accounts.id')
               .where(visibility: :public)
               .where('(statuses.in_reply_to_id IS NULL OR statuses.in_reply_to_account_id = statuses.account_id)')
               .where('statuses.reblog_of_id IS NULL')
 
+      query = query.where('accounts.domain IS NULL') if local_only
+
       account.nil? ? filter_timeline_default(query) : filter_timeline_default(filter_timeline(query, account))
     end
 
-    def as_tag_timeline(tag, account = nil)
+    def as_tag_timeline(tag, account = nil, local_only = false)
       query = tag.statuses
                  .joins('LEFT OUTER JOIN accounts ON statuses.account_id = accounts.id')
                  .where(visibility: :public)
                  .where('statuses.reblog_of_id IS NULL')
 
+      query = query.where('accounts.domain IS NULL') if local_only
+
       account.nil? ? filter_timeline_default(query) : filter_timeline_default(filter_timeline(query, account))
     end
 
diff --git a/app/models/user.rb b/app/models/user.rb
index b34144f2c..08aac2679 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -21,4 +21,8 @@ class User < ApplicationRecord
   def send_devise_notification(notification, *args)
     devise_mailer.send(notification, self, *args).deliver_later
   end
+
+  def setting_default_privacy
+    settings.default_privacy || (account.locked? ? 'private' : 'public')
+  end
 end