Guest User

Untitled

a guest
Sep 29th, 2018
136
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.89 KB | None | 0 0
  1. require 'active_directory'
  2.  
  3. AD_PEOPLE_SETTINGS = YAML.load_file("#{Rails.root.to_s}/config/database.yml")['ad_people']
  4. AD_GROUPS_SETTINGS = YAML.load_file("#{Rails.root.to_s}/config/database.yml")['ad_groups']
  5.  
  6. # Switch to user server
  7. settings = {
  8. :host => AD_PEOPLE_SETTINGS['host'],
  9. :base => AD_PEOPLE_SETTINGS['base'],
  10. :port => 636,
  11. :encryption => :simple_tls,
  12. :auth => {
  13. :method => :simple,
  14. :username => AD_PEOPLE_SETTINGS['user'],
  15. :password => AD_PEOPLE_SETTINGS['pass']
  16. }
  17. }
  18.  
  19. ActiveDirectory::Base.setup(settings)
  20. u = ActiveDirectory::User.find(:first, :samaccountname => "the_person")
  21.  
  22. # Switch to group server
  23. settings = {
  24. :host => AD_GROUPS_SETTINGS['host'],
  25. :base => AD_GROUPS_SETTINGS['base'],
  26. :port => 636,
  27. :encryption => :simple_tls,
  28. :auth => {
  29. :method => :simple,
  30. :username => AD_GROUPS_SETTINGS['user'],
  31. :password => AD_GROUPS_SETTINGS['pass']
  32. }
  33. }
  34.  
  35. ActiveDirectory::Base.setup(settings)
  36. g = ActiveDirectory::Group.find(:first, :cn => "the_group")
  37.  
  38. u.member_of? g # returns true
  39.  
  40. # Switch to user server
  41. settings = {
  42. :host => AD_PEOPLE_SETTINGS['host'],
  43. :base => AD_PEOPLE_SETTINGS['base'],
  44. :port => 636,
  45. :encryption => :simple_tls,
  46. :auth => {
  47. :method => :simple,
  48. :username => AD_PEOPLE_SETTINGS['user'],
  49. :password => AD_PEOPLE_SETTINGS['pass']
  50. }
  51. }
  52.  
  53. ActiveDirectory::Base.setup(settings)
  54. u = ActiveDirectory::User.find(:first, :samaccountname => "the_person", :select => [:sn, :title])
  55.  
  56. # We have to switch back to the group server for member_of? to work (see issue #2)
  57. settings = {
  58. :host => AD_GROUPS_SETTINGS['host'],
  59. :base => AD_GROUPS_SETTINGS['base'],
  60. :port => 636,
  61. :encryption => :simple_tls,
  62. :auth => {
  63. :method => :simple,
  64. :username => AD_GROUPS_SETTINGS['user'],
  65. :password => AD_GROUPS_SETTINGS['pass']
  66. }
  67. }
  68.  
  69. ActiveDirectory::Base.setup(settings)
  70.  
  71. u.member_of? g # error
  72.  
  73. #ArgumentError: no id given
  74. # 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'
  75. # 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'
  76. # 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?'
  77. # from (irb):74
  78. # 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'
  79. # 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'
  80. # 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)>'
  81. # from script/rails:6:in `require'
  82. # from script/rails:6:in `<main>'
Add Comment
Please, Sign In to add comment