Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- require 'active_directory'
- AD_PEOPLE_SETTINGS = YAML.load_file("#{Rails.root.to_s}/config/database.yml")['ad_people']
- AD_GROUPS_SETTINGS = YAML.load_file("#{Rails.root.to_s}/config/database.yml")['ad_groups']
- # Switch to user server
- settings = {
- :host => AD_PEOPLE_SETTINGS['host'],
- :base => AD_PEOPLE_SETTINGS['base'],
- :port => 636,
- :encryption => :simple_tls,
- :auth => {
- :method => :simple,
- :username => AD_PEOPLE_SETTINGS['user'],
- :password => AD_PEOPLE_SETTINGS['pass']
- }
- }
- ActiveDirectory::Base.setup(settings)
- u = ActiveDirectory::User.find(:first, :samaccountname => "the_person")
- # Switch to group server
- settings = {
- :host => AD_GROUPS_SETTINGS['host'],
- :base => AD_GROUPS_SETTINGS['base'],
- :port => 636,
- :encryption => :simple_tls,
- :auth => {
- :method => :simple,
- :username => AD_GROUPS_SETTINGS['user'],
- :password => AD_GROUPS_SETTINGS['pass']
- }
- }
- ActiveDirectory::Base.setup(settings)
- g = ActiveDirectory::Group.find(:first, :cn => "the_group")
- u.member_of? g # returns true
- # Switch to user server
- settings = {
- :host => AD_PEOPLE_SETTINGS['host'],
- :base => AD_PEOPLE_SETTINGS['base'],
- :port => 636,
- :encryption => :simple_tls,
- :auth => {
- :method => :simple,
- :username => AD_PEOPLE_SETTINGS['user'],
- :password => AD_PEOPLE_SETTINGS['pass']
- }
- }
- ActiveDirectory::Base.setup(settings)
- u = ActiveDirectory::User.find(:first, :samaccountname => "the_person", :select => [:sn, :title])
- # We have to switch back to the group server for member_of? to work (see issue #2)
- settings = {
- :host => AD_GROUPS_SETTINGS['host'],
- :base => AD_GROUPS_SETTINGS['base'],
- :port => 636,
- :encryption => :simple_tls,
- :auth => {
- :method => :simple,
- :username => AD_GROUPS_SETTINGS['user'],
- :password => AD_GROUPS_SETTINGS['pass']
- }
- }
- ActiveDirectory::Base.setup(settings)
- u.member_of? g # error
- #ArgumentError: no id given
- # from /Users/cthielen/Projects/UCD/dss-rm/vendor/bundle/ruby/1.9.1/bundler/gems/active_directory-64e7b977a754/lib/active_directory/base.rb:601:in `method_missing'
- # from /Users/cthielen/Projects/UCD/dss-rm/vendor/bundle/ruby/1.9.1/bundler/gems/active_directory-64e7b977a754/lib/active_directory/base.rb:601:in `method_missing'
- # from /Users/cthielen/Projects/UCD/dss-rm/vendor/bundle/ruby/1.9.1/bundler/gems/active_directory-64e7b977a754/lib/active_directory/member.rb:28:in `member_of?'
- # from (irb):74
- # from /Users/cthielen/Projects/UCD/dss-rm/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands/console.rb:47:in `start'
- # from /Users/cthielen/Projects/UCD/dss-rm/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands/console.rb:8:in `start'
- # from /Users/cthielen/Projects/UCD/dss-rm/vendor/bundle/ruby/1.9.1/gems/railties-3.2.3/lib/rails/commands.rb:41:in `<top (required)>'
- # from script/rails:6:in `require'
- # from script/rails:6:in `<main>'
Add Comment
Please, Sign In to add comment