hi all,
I'm starting an application which uses OpenLDAP as the backend.
I've installed activeldap and its requirements, however i'm at a loss for
how to get it to work.
From looking at various examples, I've put this code together:
1 require 'rubygems'
2 require_gem 'log4r'
3 require_gem 'ruby-activeldap'
4
5 class User < ActiveLdap::Base
6 ldap_mapping
:dn_attribute=>'uid',:prefix=>'dc=office',:classes=>['staffAccount']
7 end
8 ActiveLdap::Base.establish_connection(
9 :host =>"192.168.1.27",
10 :port =>389,
11 :bind_dn =>"cn=root,dc=office",
12 :password=>"secret")
13
14 user = User.find("admin@office*")
15 puts user.displayName
16 user.displayName = "testing"
17 unless user.save
18 puts "failed"
19 puts user.errors.full_messages
20 exit 1
21 end
everything goes ok upto line 15 - it prints the displayName of that record,
and i can print any other attributes. however, when i try to change
anything, i get this:
/usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/adaptor/ldap.rb:288:in
`operation': No such object (LDAP::NoSuchObject)
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/timeout.rb:15:in
`call'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/timeout.rb:15:in
`alarm'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/adaptor/base.rb:19:in
`with_timeout'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/adaptor/ldap.rb:296:in
`with_timeout'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/adaptor/ldap.rb:284:in
`operation'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/adaptor/ldap.rb:269:in
`modify'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/base.rb:392:in
`modify'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/base.rb:1337:in
`update_without_callbacks'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/base.rb:1298:in
`prepare_data_for_saving'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/base.rb:1333:in
`update_without_callbacks'
from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/callbacks.rb:267:in
`update'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/base.rb:1279:in
`create_or_update_without_callbacks'
from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/callbacks.rb:242:in
`create_or_update'
from /usr/lib/ruby/gems/1.8/gems/ruby-activeldap-0.8.0/lib/active_ldap/base.rb:765:in
`save_without_validation'
from /usr/lib/ruby/gems/1.8/gems/activerecord-1.15.1/lib/active_record/validations.rb:752:in
`save'
I'm not sure what "No such object" is refering to? any thoughts?
thanks,
Ol.