diff options
author | pluralcafe-docker <git@plural.cafe> | 2018-12-27 21:35:47 +0000 |
---|---|---|
committer | pluralcafe-docker <git@plural.cafe> | 2018-12-27 21:35:47 +0000 |
commit | 797a8429a0deb511e6d6092edad39f856231534e (patch) | |
tree | 6e44d3c2a5a662dfc4e4087fdc391b8e7bb41dba /app/models/account.rb | |
parent | 94894b8a6ad1247306497dc8c0c47d52a8a2f72c (diff) | |
parent | f349fe2159fb36e598263f2797f041417ef7c2da (diff) |
Merge branch 'glitch'
Diffstat (limited to 'app/models/account.rb')
-rw-r--r-- | app/models/account.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/app/models/account.rb b/app/models/account.rb index 71264bc9f..99fcbf778 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -95,10 +95,10 @@ class Account < ApplicationRecord scope :matches_display_name, ->(value) { where(arel_table[:display_name].matches("#{value}%")) } scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) } scope :searchable, -> { where(suspended: false).where(moved_to_account_id: nil) } - scope :discoverable, -> { where(silenced: false).where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)) } + scope :discoverable, -> { searchable.where(silenced: false).where(discoverable: true).joins(:account_stat).where(AccountStat.arel_table[:followers_count].gteq(MIN_FOLLOWERS_DISCOVERY)).by_recent_status } scope :tagged_with, ->(tag) { joins(:accounts_tags).where(accounts_tags: { tag_id: tag }) } - scope :popular, -> { order('account_stats.followers_count desc') } scope :by_recent_status, -> { order(Arel.sql('(case when account_stats.last_status_at is null then 1 else 0 end) asc, account_stats.last_status_at desc')) } + scope :popular, -> { order('account_stats.followers_count desc') } delegate :email, :unconfirmed_email, @@ -159,6 +159,14 @@ class Account < ApplicationRecord ResolveAccountService.new.call(acct) end + def silence! + update!(silenced: true) + end + + def unsilence! + update!(silenced: false) + end + def suspend! transaction do user&.disable! if local? |