Commit 964f7a1196c56a100242525eb3b8a4b69118d2ff
Exists in
master
and in
4 other branches
Merge branch 'feature/threadsafe' of /home/git/repositories/gitlab/gitlabhq
Showing
11 changed files
with
18 additions
and
15 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
config/environments/production.rb
... | ... | @@ -52,7 +52,7 @@ Gitlab::Application.configure do |
52 | 52 | # config.action_mailer.raise_delivery_errors = false |
53 | 53 | |
54 | 54 | # Enable threaded mode |
55 | - # config.threadsafe! | |
55 | + config.threadsafe! | |
56 | 56 | |
57 | 57 | # Enable locale fallbacks for I18n (makes lookups for any locale fall back to |
58 | 58 | # the I18n.default_locale when a translation can not be found) | ... | ... |
config/initializers/2_app.rb
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