@@ -36,9 +36,7 @@ def group_filter(group_names)
36
36
def groups ( group_names )
37
37
filter = group_filter ( group_names )
38
38
39
- @connection . search ( base : @base_name ,
40
- attributes : %w{ ou cn dn sAMAccountName member } ,
41
- filter : filter )
39
+ search ( attributes : %w{ ou cn dn sAMAccountName member } , filter : filter )
42
40
end
43
41
44
42
# List the groups that a user is member of.
@@ -51,9 +49,7 @@ def membership(user_dn, group_names)
51
49
or_filters = group_names . map { |g | Net ::LDAP ::Filter . eq ( "cn" , g ) } . reduce ( :| )
52
50
member_filter = Net ::LDAP ::Filter . eq ( "member" , user_dn ) & or_filters
53
51
54
- @connection . search ( base : @base_name ,
55
- attributes : %w{ ou cn dn sAMAccountName member } ,
56
- filter : member_filter )
52
+ search ( attributes : %w{ ou cn dn sAMAccountName member } , filter : member_filter )
57
53
end
58
54
59
55
# Check if the user is include in any of the configured groups.
@@ -103,6 +99,19 @@ def authenticate!(login, password, group_names = nil)
103
99
104
100
return user if user && is_member? ( user . dn , group_names )
105
101
end
102
+
103
+ # Search entries using this domain as base.
104
+ #
105
+ # options: is a Hash with the options for the search.
106
+ # The base option is always overriden.
107
+ #
108
+ # Returns an array with the entries found.
109
+ # Returns nil if there are no entries.
110
+ def search ( options )
111
+ options [ :base ] = @base_name
112
+
113
+ @connection . search ( options )
114
+ end
106
115
end
107
116
end
108
117
end
0 commit comments