Merge pull request #1482 from Retrospring/task/cache-ban-state

Cache ban state
This commit is contained in:
Karina J. Kwiatek 2023-12-09 01:14:10 +01:00 committed by GitHub
commit 3c7940ae1b
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -6,14 +6,17 @@ module User::BanMethods
end end
def banned? def banned?
Rails.cache.fetch("#{cache_key}/banned") do
bans.current.count.positive? bans.current.count.positive?
end end
end
def unban def unban
bans.current.update( bans.current.update(
# -1s to account for flakyness with timings in tests # -1s to account for flakyness with timings in tests
expires_at: DateTime.now.utc - 1.second expires_at: DateTime.now.utc - 1.second,
) )
Rails.cache.delete("#{cache_key}/banned")
end end
# Bans a user. # Bans a user.
@ -24,8 +27,9 @@ module User::BanMethods
::UserBan.create!( ::UserBan.create!(
user: self, user: self,
expires_at: expiry, expires_at: expiry,
banned_by: banned_by, banned_by:,
reason: reason reason:,
) )
Rails.cache.delete("#{cache_key}/banned")
end end
end end