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
1 changed files with 8 additions and 4 deletions

View File

@ -6,14 +6,17 @@ module User::BanMethods
end
def banned?
bans.current.count.positive?
Rails.cache.fetch("#{cache_key}/banned") do
bans.current.count.positive?
end
end
def unban
bans.current.update(
# -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
# Bans a user.
@ -24,8 +27,9 @@ module User::BanMethods
::UserBan.create!(
user: self,
expires_at: expiry,
banned_by: banned_by,
reason: reason
banned_by:,
reason:,
)
Rails.cache.delete("#{cache_key}/banned")
end
end