mirror of
https://github.com/wahyd4/gitlabhq.git
synced 2026-08-22 19:16:39 +10:00
Merge pull request #5759 from bke-drewb/issue-5496
Add cache expiry on avatar creation/removal
This commit is contained in:
@@ -9,6 +9,7 @@ v 6.4.0
|
||||
- Allow removal of avatar (Drew Blessing)
|
||||
- Project web hooks now support issues and merge request events
|
||||
- Visiting project page while not logged in will redirect to sign-in instead of 404 (Jason Hollingsworth)
|
||||
- Expire event cache on avatar creation/removal (Drew Blessing)
|
||||
|
||||
v 6.3.0
|
||||
- API for adding gitlab-ci service
|
||||
|
||||
@@ -6,6 +6,8 @@ class Profiles::AvatarsController < ApplicationController
|
||||
@user.remove_avatar!
|
||||
|
||||
@user.save
|
||||
@user.reset_events_cache
|
||||
|
||||
redirect_to profile_path
|
||||
end
|
||||
end
|
||||
|
||||
@@ -404,4 +404,18 @@ class User < ActiveRecord::Base
|
||||
project.namespace != namespace &&
|
||||
project.project_member(self)
|
||||
end
|
||||
|
||||
# Reset project events cache related to this user
|
||||
#
|
||||
# Since we do cache @event we need to reset cache in special cases:
|
||||
# * when the user changes their avatar
|
||||
# Events cache stored like events/23-20130109142513.
|
||||
# The cache key includes updated_at timestamp.
|
||||
# Thus it will automatically generate a new fragment
|
||||
# when the event is updated because the key changes.
|
||||
def reset_events_cache
|
||||
Event.where(author_id: self.id).
|
||||
order('id DESC').limit(1000).
|
||||
update_all(updated_at: Time.now)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -3,6 +3,8 @@
|
||||
class AttachmentUploader < CarrierWave::Uploader::Base
|
||||
storage :file
|
||||
|
||||
after :store, :reset_events_cache
|
||||
|
||||
def store_dir
|
||||
"uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
|
||||
end
|
||||
@@ -27,4 +29,8 @@ class AttachmentUploader < CarrierWave::Uploader::Base
|
||||
def file_storage?
|
||||
self.class.storage == CarrierWave::Storage::File
|
||||
end
|
||||
|
||||
def reset_events_cache(file)
|
||||
model.reset_events_cache if model.is_a?(User)
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user