mirror of
https://github.com/mastodon/mastodon
synced 2024-12-23 02:58:16 +09:00
14d86eb0d0
Sidekiq sometimes throws errors for users that have more pinned items than the allowed by the local instance. It should only validate the number of pins for local accounts.
11 lines
553 B
Ruby
11 lines
553 B
Ruby
# frozen_string_literal: true
|
|
|
|
class StatusPinValidator < ActiveModel::Validator
|
|
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.limit')) if pin.account.status_pins.count > 4 && pin.account.local?
|
|
end
|
|
end
|