class ZuoraConnect::LDAP::Connection
def initialize(params = {})
def initialize(params = {}) ldap_config = YAML.load(ERB.new(File.read("#{Rails.root}/config/ldap.yml")).result)[Rails.env] ldap_options = params # Allow `ssl: true` shorthand in YAML, but enable more control with `encryption` ldap_config['ssl'] = :simple_tls if ldap_config['ssl'] === true ldap_options[:encryption] = ldap_config['ssl'].to_sym if ldap_config['ssl'] ldap_options[:encryption] = ldap_config['encryption'] if ldap_config['encryption'] @ldap = Net::LDAP.new(ldap_options) @ldap.host = ldap_config['host'] @ldap.port = ldap_config['port'] @ldap.base = ldap_config['base'] @attribute = ldap_config['attribute'] @allow_unauthenticated_bind = ldap_config['allow_unauthenticated_bind'] @ldap_auth_username_builder = params[:ldap_auth_username_builder] @group_base = ldap_config['group_base'] @check_group_membership = ldap_config.key?('check_group_membership') ? ldap_config['check_group_membership'] : false @check_group_membership_without_admin = ldap_config.key?('check_group_membership_without_admin') ? ldap_config['check_group_membership_without_admin'] : false @required_groups = ldap_config['required_groups'] @group_membership_attribute = ldap_config.key?('group_membership_attribute') ? ldap_config['group_membership_attribute'] : 'uniqueMember' @required_attributes = ldap_config['require_attribute'] @required_attributes_presence = ldap_config['require_attribute_presence'] @ldap.auth ldap_config['admin_user'], ldap_config['admin_password'] if params[:admin] @login = params[:login] @password = params[:password] @new_password = params[:new_password] end