Skip to content
No description or website provided.
Find file
Failed to load latest commit information.
bin - Added tests
conf Cleaned up example configuration file.
lib debugging
test debugging
README.rdoc Deprecate without a replacement. How Rails-esque.
Rakefile - Added tests



This plugin is no longer maintained. It was last tested against Rails from 2007.


This is an implementation of an LDAP server which uses active record as the data source. The server is read-only, and can serve information from any AR model that implements the #search(string) class method and the #to_ldap_entry instance method.

To use, configure the server by creating a conf/ldap-server.yml file (see ldap-server.example.yml). The important bits are rails_dir, active_record_model, basedn, and port. Once that's done, run “./bin/ldap-server.rb start”, wait for it to daemonize, and check the log file under $RAILS_ROOT/log/ for errors. To stop, run “./bin/ldap-server.rb”, and if you reconfigure the server or change the underlying AR model, restart it with “./bin/ldap-server.rb restart”.

To test, point your addressbook (ie: Thunderbird or OS X Address Book) at the server and run a search.

Example AR class:

class Person < ActiveRecord::Base
  def fullname
    "#{firstname} #{lastname}"

  def to_ldap_entry
		  "objectclass"     => ["top", "person", "organizationalPerson", "inetOrgPerson", "mozillaOrgPerson"],
			"uid"             => ["tbotter-#{id}"],
 			"sn"              => [lastname],
  		"givenName"       => [firstname],
			"cn"              => [fullname],
  		"title"           => [title],
  		"o"               => [company], 
  		"mail"            => [email],
  		"telephonenumber" => [work_phone], 
  		"homephone"       => [home_phone],
  		"fax"             => [fax],
  		"mobile"          => [mobile],
  		"street"          => [address],
  		"l"               => [city],
  		"st"              => [state], 
  		"postalcode"      => [zip], 

                :conditions => ["(email LIKE ?) OR (firstname LIKE ?) OR (lastname LIKE ?)", 
                                "#{query}%", "#{query}%", "#{query}%"])

Have fun.

Something went wrong with that request. Please try again.