Commit 826404a8 authored by Jacob Vosmaer's avatar Jacob Vosmaer

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.

Conflicts:
	CHANGELOG
	app/controllers/application_controller.rb
parent 2f1a59d3
...@@ -183,14 +183,16 @@ class ApplicationController < ActionController::Base ...@@ -183,14 +183,16 @@ class ApplicationController < ActionController::Base
def ldap_security_check def ldap_security_check
if current_user && current_user.ldap_user? && current_user.requires_ldap_check? if current_user && current_user.ldap_user? && current_user.requires_ldap_check?
if gitlab_ldap_access.allowed?(current_user) gitlab_ldap_access do |access|
gitlab_ldap_access.update_permissions(current_user) if access.allowed?(current_user)
current_user.last_credential_check_at = Time.now access.update_permissions(current_user)
current_user.save current_user.last_credential_check_at = Time.now
else current_user.save
sign_out current_user else
flash[:alert] = "Access denied for your LDAP account." sign_out current_user
redirect_to new_user_session_path flash[:alert] = "Access denied for your LDAP account."
redirect_to new_user_session_path
end
end end
end end
end end
...@@ -200,8 +202,8 @@ class ApplicationController < ActionController::Base ...@@ -200,8 +202,8 @@ class ApplicationController < ActionController::Base
@event_filter ||= EventFilter.new(filters) @event_filter ||= EventFilter.new(filters)
end end
def gitlab_ldap_access def gitlab_ldap_access(&block)
Gitlab::LDAP::Access.new Gitlab::LDAP::Access.open { |access| block.call(access) }
end end
# JSON for infinite scroll via Pager object # JSON for infinite scroll via Pager object
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment