Skip to content

Commit c06cc02

Browse files
committed
reworked do_save_draft & do_draft_delete to not depend on current_user + renamed the latter to do_delete_draft
1 parent 9ef75b6 commit c06cc02

3 files changed

Lines changed: 14 additions & 12 deletions

File tree

app/controllers/concerns/draft_management.rb

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,11 @@ module DraftManagement
77
DRAFT_MAX_AGE = 86_400 * 7
88

99
# saving by-field is kept for backwards compatibility with old drafts
10+
# @param user [User] user to save the draft for
1011
# @param path [String] draft path to save
1112
# @return [String] top level field key
12-
def do_save_draft(path)
13-
base_key = "saved_post.#{current_user.id}.#{path}"
13+
def do_save_draft(user, path)
14+
base_key = "saved_post.#{user.id}.#{path}"
1415

1516
TOP_LEVEL_DRAFTABLE_FIELDS.each do |key|
1617
next unless params.key?(key)
@@ -32,20 +33,21 @@ def do_save_draft(path)
3233
RequestContext.redis.expire(key_name, DRAFT_MAX_AGE)
3334
end
3435

35-
saved_at_key = "saved_post_at.#{current_user.id}.#{path}"
36+
saved_at_key = "saved_post_at.#{user.id}.#{path}"
3637
RequestContext.redis.set(saved_at_key, DateTime.now.iso8601)
3738
RequestContext.redis.expire(saved_at_key, DRAFT_MAX_AGE)
3839

3940
base_key
4041
end
4142

4243
# Attempts to delete a draft for a given path
44+
# @param user [User] user to delete the draft for
4345
# @param path [String] draft path to delete
4446
# @return [Boolean] status of the operation
45-
def do_draft_delete(path)
47+
def do_delete_draft(user, path)
4648
keys = DRAFTABLE_FIELDS.map do |key|
4749
pfx = key == :saved_at ? 'saved_post_at' : 'saved_post'
48-
base = "#{pfx}.#{current_user.id}.#{path}"
50+
base = "#{pfx}.#{user.id}.#{path}"
4951
NESTED_DRAFTABLE_FIELDS.include?(key) ? base : "#{base}.#{key}"
5052
end
5153

app/controllers/posts_controller.rb

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ def create
113113
Rails.cache.delete "community_user/#{current_user.community_user.id}/metric/#{key}"
114114
end
115115

116-
do_draft_delete(URI(request.referer || '').path)
116+
do_delete_draft(current_user, URI(request.referer || '').path)
117117

118118
redirect_to helpers.generic_show_link(@post)
119119
else
@@ -263,7 +263,7 @@ def update
263263
PostHistory.redact(@post, current_user)
264264
end
265265
Rails.cache.delete "community_user/#{current_user.community_user.id}/metric/E"
266-
do_draft_delete(URI(request.referer || '').path)
266+
do_delete_draft(current_user, URI(request.referer || '').path)
267267
redirect_to post_path(@post)
268268
end
269269

@@ -302,7 +302,7 @@ def update
302302
message += " on '#{@post.parent.title}'"
303303
end
304304
@post.user.create_notification message, suggested_edit_url(edit, host: @post.community.host)
305-
do_draft_delete(URI(request.referer || '').path)
305+
do_delete_draft(current_user, URI(request.referer || '').path)
306306
redirect_to post_path(@post)
307307
else
308308
@post.errors.copy!(edit.errors)
@@ -634,12 +634,12 @@ def feature
634634
end
635635

636636
def save_draft
637-
base_key = do_save_draft(params[:path])
637+
base_key = do_save_draft(current_user, params[:path])
638638
render json: { status: 'success', success: true, key: base_key }
639639
end
640640

641641
def delete_draft
642-
do_draft_delete(params[:path])
642+
do_delete_draft(current_user, params[:path])
643643
render json: { status: 'success', success: true }
644644
end
645645

app/controllers/tags_controller.rb

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ def create
9898

9999
@tag = Tag.new(create_params)
100100
if @tag.save
101-
do_draft_delete(URI(request.referer || '').path)
101+
do_delete_draft(current_user, URI(request.referer || '').path)
102102
redirect_to tag_path(id: @category.id, tag_id: @tag.id)
103103
else
104104
render :new, status: :bad_request
@@ -118,7 +118,7 @@ def update
118118
.except(:name)
119119

120120
if @tag.update(update_params)
121-
do_draft_delete(URI(request.referer || '').path)
121+
do_delete_draft(current_user, URI(request.referer || '').path)
122122
redirect_to tag_path(id: @category.id, tag_id: @tag.id)
123123
else
124124
render :edit, status: :bad_request

0 commit comments

Comments
 (0)