Replace define_method with alias_method in Omniauth Controllers

This commit is contained in:
James Edwards-Jones 2018-04-23 16:03:01 +01:00
parent d3a8a07423
commit 795cd7f952
3 changed files with 12 additions and 16 deletions

View File

@ -2,23 +2,21 @@ class Ldap::OmniauthCallbacksController < OmniauthCallbacksController
extend ::Gitlab::Utils::Override
def self.define_providers!
if Gitlab::Auth::LDAP::Config.enabled?
Gitlab::Auth::LDAP::Config.available_servers.each do |server|
define_method server['provider_name'] do
ldap
end
end
return unless Gitlab::Auth::LDAP::Config.enabled?
Gitlab::Auth::LDAP::Config.available_servers.each do |server|
alias_method server['provider_name'], :ldap
end
end
define_providers!
# We only find ourselves here
# if the authentication to LDAP was successful.
def ldap
sign_in_user_flow(Gitlab::Auth::LDAP::User)
end
define_providers!
override :set_remember_me
def set_remember_me(user)
user.remember_me = params[:remember_me] if user.persisted?

View File

@ -4,10 +4,12 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
protect_from_forgery except: [:kerberos, :saml, :cas3]
def handle_omniauth
omniauth_flow(Gitlab::Auth::OAuth)
end
Gitlab.config.omniauth.providers.each do |provider|
define_method provider['name'] do
handle_omniauth
end
alias_method provider['name'], :handle_omniauth
end
# Extend the standard implementation to also increment
@ -70,10 +72,6 @@ class OmniauthCallbacksController < Devise::OmniauthCallbacksController
private
def handle_omniauth
omniauth_flow(Gitlab::Auth::OAuth)
end
def omniauth_flow(auth_module, identity_linker: nil)
if current_user
log_audit_event(current_user, with: oauth['provider'])

View File

@ -49,7 +49,7 @@ module Gitlab
end
def valid_sign_in?
allowed?
allowed? && super
end
def ldap_config