Open t33m opened 9 years ago
I'm trying to create multipleldap domains auth form for my app. I was added new text_filed in my auth form for new paramter ":company". Also I have two default params - ":login", ":password".
Also i configured my ldap.yml file like this:
development: company: 1st_COMPANY host: dc.1st_COMPANY.com port: 636 attribute: sAMAccountName base: dc=1st_COMPANY,dc=com admin_user: CN=admin,OU=group,DC=1st_COMPANY,DC=com admin_password: p@ssw0rd ssl: true company: 2nd_COMPANY host: dc.2nd_COMPANY.com port: 636 attribute: sAMAccountName base: dc=2nd_COMPANY,dc=com admin_user: CN=admin,OU=group,DC=1st_COMPANY,DC=com admin_password: p@ssw0rd ssl: true
Next I modified my devise_ldap_authenticatable-.8.1/lib/devise_ldap_authenticatable/ldap/connection.rb file:
module Devise module LDAP class Connection attr_reader :ldap, :login, :company def initialize(params = {}) @company = params[:company] ldap_configs = YAML.load(ERB.new(File.read(::Devise.ldap_config || "#{Rails.root}/config/ldap.yml")).result)[Rails.env] ldap_configs = ldap_configs.is_a?(Hash) ? [ldap_configs] : ldap_configs ldap_configs.each do |ldap_config| if @company == ldap_config["company"] ------------------------- # original method' code
But it didn't work. Param ":company" doesn't pass to def initialize(params = {}) method. Can anybody explain why?
Thanks!
params here is not like you think. It is a options hash sent from many methods in adaptater.rb
Devise::LDAP::Connection.new(options)
I'm trying to create multipleldap domains auth form for my app. I was added new text_filed in my auth form for new paramter ":company". Also I have two default params - ":login", ":password".
Also i configured my ldap.yml file like this:
development: company: 1st_COMPANY host: dc.1st_COMPANY.com port: 636 attribute: sAMAccountName base: dc=1st_COMPANY,dc=com admin_user: CN=admin,OU=group,DC=1st_COMPANY,DC=com admin_password: p@ssw0rd ssl: true company: 2nd_COMPANY host: dc.2nd_COMPANY.com port: 636 attribute: sAMAccountName base: dc=2nd_COMPANY,dc=com admin_user: CN=admin,OU=group,DC=1st_COMPANY,DC=com admin_password: p@ssw0rd ssl: true
Next I modified my devise_ldap_authenticatable-.8.1/lib/devise_ldap_authenticatable/ldap/connection.rb file:
module Devise module LDAP class Connection attr_reader :ldap, :login, :company def initialize(params = {}) @company = params[:company] ldap_configs = YAML.load(ERB.new(File.read(::Devise.ldap_config || "#{Rails.root}/config/ldap.yml")).result)[Rails.env] ldap_configs = ldap_configs.is_a?(Hash) ? [ldap_configs] : ldap_configs ldap_configs.each do |ldap_config| if @company == ldap_config["company"] ------------------------- # original method' code
But it didn't work. Param ":company" doesn't pass to def initialize(params = {}) method. Can anybody explain why?
Thanks!