From 14bd46946d25186044485aa101dd2da976b61181 Mon Sep 17 00:00:00 2001 From: Eugen Rochko Date: Wed, 30 Nov 2016 21:32:11 +0100 Subject: Per-status control for unlisted mode, also federation for unlisted mode Fix #233, fix #268 --- app/models/status.rb | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'app/models/status.rb') 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') -- cgit