From 3c17de772440d6af09136ccd2205e02fbe162c89 Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Thu, 8 Nov 2018 18:45:50 -0600 Subject: [PATCH] allow pinning packmate roars --- app/presenters/status_relationships_presenter.rb | 2 +- app/serializers/rest/status_serializer.rb | 2 +- app/validators/status_pin_validator.rb | 4 ++-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/presenters/status_relationships_presenter.rb b/app/presenters/status_relationships_presenter.rb index 64e688d87..0c407429d 100644 --- a/app/presenters/status_relationships_presenter.rb +++ b/app/presenters/status_relationships_presenter.rb @@ -14,7 +14,7 @@ class StatusRelationshipsPresenter statuses = statuses.compact status_ids = statuses.flat_map { |s| [s.id, s.reblog_of_id] }.uniq.compact conversation_ids = statuses.map(&:conversation_id).compact.uniq - pinnable_status_ids = statuses.map(&:proper).select { |s| s.account_id == current_account_id && %w(public unlisted).include?(s.visibility) }.map(&:id) + pinnable_status_ids = statuses.map(&:proper).select { |s| s.account_id == current_account_id && %w(public unlisted private).include?(s.visibility) }.map(&:id) @reblogs_map = Status.reblogs_map(status_ids, current_account_id).merge(options[:reblogs_map] || {}) @favourites_map = Status.favourites_map(status_ids, current_account_id).merge(options[:favourites_map] || {}) diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb index b07937014..ab3788d75 100644 --- a/app/serializers/rest/status_serializer.rb +++ b/app/serializers/rest/status_serializer.rb @@ -116,7 +116,7 @@ class REST::StatusSerializer < ActiveModel::Serializer current_user? && current_user.account_id == object.account_id && !object.reblog? && - %w(public unlisted).include?(object.visibility) + %w(public unlisted private).include?(object.visibility) end def source_requested? diff --git a/app/validators/status_pin_validator.rb b/app/validators/status_pin_validator.rb index 16353066c..db19e0a76 100644 --- a/app/validators/status_pin_validator.rb +++ b/app/validators/status_pin_validator.rb @@ -2,11 +2,11 @@ class StatusPinValidator < ActiveModel::Validator MAX_PINNED = (ENV['MAX_PINNED_TOOTS'] || 5).to_i - + def validate(pin) pin.errors.add(:base, I18n.t('statuses.pin_errors.reblog')) if pin.status.reblog? pin.errors.add(:base, I18n.t('statuses.pin_errors.ownership')) if pin.account_id != pin.status.account_id - pin.errors.add(:base, I18n.t('statuses.pin_errors.private')) unless %w(public unlisted).include?(pin.status.visibility) + pin.errors.add(:base, I18n.t('statuses.pin_errors.private')) unless %w(public unlisted private).include?(pin.status.visibility) pin.errors.add(:base, I18n.t('statuses.pin_errors.limit')) if pin.account.status_pins.count >= MAX_PINNED && pin.account.local? end end