diff options
author | Eugen Rochko <eugen@zeonfederated.com> | 2016-11-30 21:32:11 +0100 |
---|---|---|
committer | Eugen Rochko <eugen@zeonfederated.com> | 2016-11-30 21:34:59 +0100 |
commit | 14bd46946d25186044485aa101dd2da976b61181 (patch) | |
tree | 94b59b79d06165469a103b9391ddfaee537e0cab /app/models/status.rb | |
parent | 1b447c190eb47117e99ff1e3c754f9cc461202f1 (diff) |
Per-status control for unlisted mode, also federation for unlisted mode
Fix #233, fix #268
Diffstat (limited to 'app/models/status.rb')
-rw-r--r-- | app/models/status.rb | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/app/models/status.rb b/app/models/status.rb index 8f65a3ecc..87d8249b1 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -5,6 +5,8 @@ class Status < ApplicationRecord include Streamable include Cacheable + enum visibility: [:public, :unlisted], _suffix: :visibility + belongs_to :account, inverse_of: :statuses belongs_to :thread, foreign_key: 'in_reply_to_id', class_name: 'Status', inverse_of: :replies @@ -100,6 +102,7 @@ class Status < ApplicationRecord def as_public_timeline(account = nil) query = joins('LEFT OUTER JOIN accounts ON statuses.account_id = accounts.id') + .where(visibility: :public) .where('accounts.silenced = FALSE') .where('statuses.in_reply_to_id IS NULL') .where('statuses.reblog_of_id IS NULL') @@ -110,6 +113,7 @@ class Status < ApplicationRecord def as_tag_timeline(tag, account = nil) query = tag.statuses .joins('LEFT OUTER JOIN accounts ON statuses.account_id = accounts.id') + .where(visibility: :public) .where('accounts.silenced = FALSE') .where('statuses.in_reply_to_id IS NULL') .where('statuses.reblog_of_id IS NULL') |