Class | ActiveLdap::Association::BelongsToMany |
In: |
lib/active_ldap/association/belongs_to_many.rb
|
Parent: | Collection |
# File lib/active_ldap/association/belongs_to_many.rb, line 21 21: def delete_entries(entries) 22: entries.each do |entry| 23: old_value = entry[@options[:many], true] 24: foreign_key_name = @options[:foreign_key_name] 25: if foreign_key_name == "dn" 26: old_value = dn_values_to_string_values(old_value) 27: end 28: new_value = old_value - @owner[foreign_key_name, true] 29: new_value = new_value.uniq.sort 30: if old_value != new_value 31: entry[@options[:many]] = new_value 32: entry.save 33: end 34: end 35: end
# File lib/active_ldap/association/belongs_to_many.rb, line 37 37: def find_target 38: values = @owner[@options[:foreign_key_name], true].compact 39: return [] if values.empty? 40: 41: key = @options[:many] 42: components = values.collect do |value| 43: [key, value] 44: end 45: options = find_options(:filter => [:or, *components]) 46: foreign_class.find(:all, options) 47: end
# File lib/active_ldap/association/belongs_to_many.rb, line 7 7: def insert_entry(entry) 8: old_value = entry[@options[:many], true] 9: foreign_key_name = @options[:foreign_key_name] 10: if foreign_key_name == "dn" 11: old_value = dn_values_to_string_values(old_value) 12: end 13: new_value = old_value + @owner[foreign_key_name, true] 14: new_value = new_value.uniq.sort 15: if old_value != new_value 16: entry[@options[:many]] = new_value 17: entry.save 18: end 19: end