Skip to content

Instantly share code, notes, and snippets.

@mrkn
Created June 24, 2009 17:17
Show Gist options
  • Save mrkn/135396 to your computer and use it in GitHub Desktop.
Save mrkn/135396 to your computer and use it in GitHub Desktop.
require 'rubygems'
require 'active_ldap'
ActiveLdap::Base.setup_connection(
:host => 'example.com',
:port => 389,
:base => 'dc=example,dc=com',
:bind_dn => 'cn=admin,dc=example,dc=com',
:password_block => Proc.new{'secret'},
:allow_anonymous => false
)
class User < ActiveLdap::Base
ldap_mapping :dn_attribute =>'uid', :prefix =>'ou=Users', :scope =>:one
belongs_to :groups, :class_name => 'Group', :many => 'memberUid', :foreign_key => 'uid'
end
class Group < ActiveLdap::Base
ldap_mapping :dn_attribute => 'cn', :prefix =>'ou=Groups', :scope =>:one
has_many :members, :class_name =>'User', :wrap =>'memberUid', :primary_key => 'uid'
end
# uids = User.find(:all).map{|u| u.uid }
# p uids
p User.exists?('muraken')
muraken = User.find('muraken')
p muraken.groups.member? 'lase'
muraken.gecos = 'System User'
muraken.save!
p muraken.uid
lase = Group.find('lase')
p lase.memberUid
p lase.members
p lase.members.to_a
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment