module ActiveSambaLdap::GroupEntry::ClassMethods
Public Instance Methods
find_by_gid_number(number)
click to toggle source
# File lib/active_samba_ldap/group_entry.rb, line 32 def find_by_gid_number(number) find(:first, :filter => ["gidNumber", Integer(number)]) end
find_by_name_or_gid_number(key)
click to toggle source
# File lib/active_samba_ldap/group_entry.rb, line 19 def find_by_name_or_gid_number(key) group = nil begin gid_number = Integer(key) group = find_by_gid_number(gid_number) raise GidNumberDoesNotExist.new(gid_number) if group.nil? rescue ArgumentError raise GroupDoesNotExist.new(key) unless exists?(key) group = find(key) end group end
ldap_mapping(options={})
click to toggle source
Calls superclass method
# File lib/active_samba_ldap/group_entry.rb, line 13 def ldap_mapping(options={}) options = default_options.merge(options) super(extract_ldap_mapping_options(options)) init_associations(options) end
unix_object_classes()
click to toggle source
# File lib/active_samba_ldap/group_entry.rb, line 36 def unix_object_classes if samba4? samba_object_classes else ["posixGroup"] end end
Private Instance Methods
default_computer_class()
click to toggle source
# File lib/active_samba_ldap/group_entry.rb, line 67 def default_computer_class "Computer" end
default_options()
click to toggle source
# File lib/active_samba_ldap/group_entry.rb, line 45 def default_options { :dn_attribute => "cn", :prefix => configuration[:groups_suffix], :classes => default_classes, :recommended_classes => default_recommended_classes, :members_wrap => "memberUid", :users_class => default_user_class, :computers_class => default_computer_class, :primary_members_foreign_key => "gidNumber", :primary_members_primary_key => "gidNumber", :primary_users_class => default_user_class, :primary_computers_class => default_computer_class, } end
default_user_class()
click to toggle source
# File lib/active_samba_ldap/group_entry.rb, line 63 def default_user_class "User" end
init_associations(options)
click to toggle source
# File lib/active_samba_ldap/group_entry.rb, line 71 def init_associations(options) association_options = {} options.each do |key, value| case key.to_s when /^((?:primary_)?(?:(?:user|computer|member)s))_/ association_options[$1] ||= {} association_options[$1][$POSTMATCH.to_sym] = value end end members_opts = association_options["members"] || {} user_members_opts = association_options["users"] || {} computer_members_opts = association_options["computers"] || {} has_many :users, members_opts.merge(user_members_opts) has_many :computers, members_opts.merge(computer_members_opts) primary_members_opts = association_options["primary_members"] || {} primary_user_members_opts = association_options["primary_users"] || {} primary_computer_members_opts = association_options["primary_computers"] || {} has_many :primary_users, primary_members_opts.merge(primary_user_members_opts) has_many :primary_computers, primary_members_opts.merge(primary_computer_members_opts) end
prepare_create_options(group, options)
click to toggle source
# File lib/active_samba_ldap/group_entry.rb, line 98 def prepare_create_options(group, options) prepare_create_options_for_number("gid_number", group, options) end