Class ActiveLdap::Association::HasManyWrap
In: lib/active_ldap/association/has_many_wrap.rb
Parent: Collection
Error DeleteError AdapterNotSpecified OperationNotPermitted LdapError RequiredAttributeMissed AttributeAssignmentError RequiredObjectClassMissed DistinguishedNameNotSetError StrongAuthenticationRequired ConnectionError SaveError EntryNotFound AuthenticationError EntryNotSaved UnknownAttribute ConnectionNotEstablished TimeoutError ConfigurationError AdapterNotFound DistinguishedNameInvalid ObjectClassError EntryInvalid EntryAlreadyExist Reloadable::Deprecated Base Reloadable::Subclasses Enumerable Collection StandardError HasMany HasManyWrap BelongsToMany Proxy BelongsTo Base\n[lib/active_ldap/adapter/base.rb\nlib/active_ldap/adapter/ldap.rb\nlib/active_ldap/adapter/net_ldap.rb] Ldap NetLdap ActiveRecord::Callbacks ActiveRecord::Validations Schema DistinguishedName lib/active_ldap/base.rb lib/active_ldap/schema.rb lib/active_ldap/distinguished_name.rb lib/active_ldap/ldap_error.rb ClassMethods Associations lib/active_ldap/association/has_many_wrap.rb lib/active_ldap/association/has_many.rb lib/active_ldap/association/proxy.rb lib/active_ldap/association/collection.rb lib/active_ldap/association/belongs_to_many.rb lib/active_ldap/association/belongs_to.rb Association ClassMethods Configuration Command lib/active_ldap/adapter/net_ldap.rb lib/active_ldap/adapter/ldap.rb lib/active_ldap/adapter/base.rb Adapter ClassMethods Attributes ClassMethods ObjectClass Callbacks ClassMethods Connection Validations Salt UserPassword ActiveLdap dot/m_26_0.png

Methods

Private Instance methods

[Source]

    # File lib/active_ldap/association/has_many_wrap.rb, line 16
16:       def delete_entries(entries)
17:         old_value = @owner[@options[:wrap], true]
18:         new_value = old_value - entries.collect {|entry| entry[primary_key]}
19:         new_value = new_value.uniq.sort
20:         if old_value != new_value
21:           @owner[@options[:wrap]] = new_value
22:           @owner.save
23:         end
24:       end

[Source]

    # File lib/active_ldap/association/has_many_wrap.rb, line 26
26:       def find_target
27:         foreign_base_key = primary_key
28:         requested_targets = @owner[@options[:wrap], true]
29: 
30:         components = requested_targets.collect do |value|
31:           key = val = nil
32:           if foreign_base_key == "dn"
33:             key, val = value.split(",")[0].split("=") unless value.empty?
34:           else
35:             key, val = foreign_base_key, value
36:           end
37:           [key, val]
38:         end.reject do |key, val|
39:           key.nil? or val.nil?
40:         end
41:         return [] if components.empty?
42: 
43:         klass = foreign_class
44:         found_targets = {}
45:         klass.find(:all, :filter => [:or, *components]).each do |target|
46:           found_targets[target.send(foreign_base_key)] ||= target
47:         end
48: 
49:         requested_targets.collect do |name|
50:           found_targets[name] || klass.new(name)
51:         end
52:       end

[Source]

    # File lib/active_ldap/association/has_many_wrap.rb, line 7
 7:       def insert_entry(entry)
 8:         old_value = @owner[@options[:wrap], true]
 9:         new_value = (old_value + entry[primary_key, true]).uniq.sort
10:         if old_value != new_value
11:           @owner[@options[:wrap]] = new_value
12:           @owner.save
13:         end
14:       end

[Validate]