Commit 48e9054056db7f14bdef0d2d5c859f357110ed95

Authored by Jacob Vosmaer
1 parent 56df3dbf

Open/close LDAP in ApplicationController

By opening the LDAP connection at the controller level we can reuse it
for all LDAP queries during the request.
@@ -17,6 +17,7 @@ v 6.7.0 @@ -17,6 +17,7 @@ v 6.7.0
17 - Add GFM autocompletion for MergeRequests (Robert Speicher) 17 - Add GFM autocompletion for MergeRequests (Robert Speicher)
18 - Add webhook when a new tag is pushed (Jeroen van Baarsen) 18 - Add webhook when a new tag is pushed (Jeroen van Baarsen)
19 - Add button for toggling inline comments in diff view 19 - Add button for toggling inline comments in diff view
  20 + - Reuse the GitLab LDAP connection within each request
20 21
21 v 6.6.2 22 v 6.6.2
22 - Fix 500 error on branch/tag create or remove via UI 23 - Fix 500 error on branch/tag create or remove via UI
app/controllers/application_controller.rb
@@ -182,13 +182,15 @@ class ApplicationController < ActionController::Base @@ -182,13 +182,15 @@ class ApplicationController < ActionController::Base
182 182
183 def ldap_security_check 183 def ldap_security_check
184 if current_user && current_user.requires_ldap_check? 184 if current_user && current_user.requires_ldap_check?
185 - if gitlab_ldap_access.allowed?(current_user)  
186 - current_user.last_credential_check_at = Time.now  
187 - current_user.save  
188 - else  
189 - sign_out current_user  
190 - flash[:alert] = "Access denied for your LDAP account."  
191 - redirect_to new_user_session_path 185 + gitlab_ldap_access do |access|
  186 + if access.allowed?(current_user)
  187 + current_user.last_credential_check_at = Time.now
  188 + current_user.save
  189 + else
  190 + sign_out current_user
  191 + flash[:alert] = "Access denied for your LDAP account."
  192 + redirect_to new_user_session_path
  193 + end
192 end 194 end
193 end 195 end
194 end 196 end
@@ -198,8 +200,8 @@ class ApplicationController < ActionController::Base @@ -198,8 +200,8 @@ class ApplicationController < ActionController::Base
198 @event_filter ||= EventFilter.new(filters) 200 @event_filter ||= EventFilter.new(filters)
199 end 201 end
200 202
201 - def gitlab_ldap_access  
202 - Gitlab::LDAP::Access.new 203 + def gitlab_ldap_access(&block)
  204 + Gitlab::LDAP::Access.open { |access| block.call(access) }
203 end 205 end
204 206
205 # JSON for infinite scroll via Pager object 207 # JSON for infinite scroll via Pager object