scope :sensitized, -> { where.not(sensitized_at: nil) }
scope :without_suspended, -> { where(suspended_at: nil) }
scope :without_silenced, -> { where(silenced_at: nil) }
+ scope :without_instance_actor, -> { where.not(id: -99) }
scope :recent, -> { reorder(id: :desc) }
scope :bots, -> { where(actor_type: %w(Application Service)) }
scope :groups, -> { where(actor_type: 'Group') }
end
def suspended?
- suspended_at.present?
+ suspended_at.present? && !instance_actor?
end
def suspended_permanently?
def scope_for(key, value)
case key.to_s
when 'local'
- Account.local
+ Account.local.without_instance_actor
when 'remote'
Account.remote
when 'by_domain'
end
def suspend?
- staff? && !record.user&.staff?
+ staff? && !record.user&.staff? && !record.instance_actor?
end
def destroy?
end
def memorialize?
- admin? && !record.user&.admin?
+ admin? && !record.user&.admin? && !record.instance_actor?
end
end
- content_for :page_title do
= @account.acct
+- if @account.instance_actor?
+ .flash-message.notice
+ %strong= t('accounts.instance_actor_flash')
+
= render 'application/card', account: @account
- account = @account
one: Follower
other: Followers
following: Following
+ instance_actor_flash: This account is a virtual actor used to represent the server itself and not any individual user. It is used for federation purposes and should not be suspended.
joined: Joined %{date}
last_active: last active
link_verified_on: Ownership of this link was checked on %{date}
it 'defaults to recent local not-suspended account list' do
filter = described_class.new({})
- expect(filter.results).to eq Account.local.recent.without_suspended
+ expect(filter.results).to eq Account.local.without_instance_actor.recent.without_suspended
end
end