class LdapFluff::FreeIPA
Public Instance Methods
Source
# File lib/ldap_fluff/freeipa.rb, line 2 def bind?(uid = nil, password = nil, opts = {}) unless uid.include?(',') unless opts[:search] == false service_bind user = @member_service.find_user(uid) end uid = user&.first ? user.first.dn : "uid=#{uid},cn=users,cn=accounts,#{@base}" end @ldap.auth(uid, password) @ldap.bind end
Source
# File lib/ldap_fluff/freeipa.rb, line 14 def groups_for_uid(uid) super rescue MemberService::InsufficientQueryPrivilegesException raise UnauthenticatedException, "Insufficient Privileges to query groups data" end
Calls superclass method
LdapFluff::Generic#groups_for_uid
Private Instance Methods
Source
# File lib/ldap_fluff/freeipa.rb, line 22 def users_from_search_results(search, method) # Member results come in the form uid=sampleuser,cn=users, etc.. or gid=samplegroup,cn=groups users = [] members = search.send(method) if method == :nisnetgrouptriple users = @member_service.get_netgroup_users(members) else members.each do |member| type = member.downcase.split(',')[1] if type == 'cn=users' users << @member_service.get_logins([member]) elsif type == 'cn=groups' users << users_for_gid(member.split(',')[0].split('=')[1]) end end end users.flatten.uniq end