Commit 993af5d0d2d596040195c4109c531c33deeac026
1 parent
5511a731
Exists in
master
and in
4 other branches
cattr_accessor is not threadsafe!
Showing
9 changed files
with
12 additions
and
14 deletions
Show diff stats
app/controllers/application_controller.rb
| 1 | 1 | class ApplicationController < ActionController::Base |
| 2 | 2 | before_filter :authenticate_user! |
| 3 | 3 | before_filter :reject_blocked! |
| 4 | - before_filter :set_current_user_for_observers | |
| 4 | + before_filter :set_current_user_for_thread | |
| 5 | 5 | before_filter :add_abilities |
| 6 | 6 | before_filter :dev_tools if Rails.env == 'development' |
| 7 | 7 | before_filter :default_headers |
| ... | ... | @@ -47,9 +47,8 @@ class ApplicationController < ActionController::Base |
| 47 | 47 | end |
| 48 | 48 | end |
| 49 | 49 | |
| 50 | - def set_current_user_for_observers | |
| 51 | - MergeRequestObserver.current_user = current_user | |
| 52 | - IssueObserver.current_user = current_user | |
| 50 | + def set_current_user_for_thread | |
| 51 | + Thread.current[:current_user] = current_user | |
| 53 | 52 | end |
| 54 | 53 | |
| 55 | 54 | def abilities | ... | ... |
app/observers/base_observer.rb
app/observers/issue_observer.rb
app/observers/merge_request_observer.rb
config/database.yml.mysql
config/database.yml.postgresql
lib/api/issues.rb
| ... | ... | @@ -2,6 +2,7 @@ module API |
| 2 | 2 | # Issues API |
| 3 | 3 | class Issues < Grape::API |
| 4 | 4 | before { authenticate! } |
| 5 | + before { Thread.current[:current_user] = current_user } | |
| 5 | 6 | |
| 6 | 7 | resource :issues do |
| 7 | 8 | # Get currently authenticated user's issues |
| ... | ... | @@ -79,7 +80,7 @@ module API |
| 79 | 80 | |
| 80 | 81 | attrs = attributes_for_keys [:title, :description, :assignee_id, :milestone_id, :state_event] |
| 81 | 82 | attrs[:label_list] = params[:labels] if params[:labels].present? |
| 82 | - IssueObserver.current_user = current_user | |
| 83 | + | |
| 83 | 84 | if @issue.update_attributes attrs |
| 84 | 85 | present @issue, with: Entities::Issue |
| 85 | 86 | else | ... | ... |
lib/api/merge_requests.rb
| ... | ... | @@ -2,6 +2,7 @@ module API |
| 2 | 2 | # MergeRequest API |
| 3 | 3 | class MergeRequests < Grape::API |
| 4 | 4 | before { authenticate! } |
| 5 | + before { Thread.current[:current_user] = current_user } | |
| 5 | 6 | |
| 6 | 7 | resource :projects do |
| 7 | 8 | helpers do |
| ... | ... | @@ -94,8 +95,6 @@ module API |
| 94 | 95 | |
| 95 | 96 | authorize! :modify_merge_request, merge_request |
| 96 | 97 | |
| 97 | - MergeRequestObserver.current_user = current_user | |
| 98 | - | |
| 99 | 98 | if merge_request.update_attributes attrs |
| 100 | 99 | merge_request.reload_code |
| 101 | 100 | merge_request.mark_as_unchecked | ... | ... |
spec/models/milestone_spec.rb