ldap_fluff 0.3.5 → 0.3.6
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of ldap_fluff might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/lib/ldap_fluff/ad_member_service.rb +6 -7
- data/test/ad_member_services_test.rb +8 -12
- data/test/ad_test.rb +4 -4
- data/test/lib/ldap_test_helper.rb +9 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 968768aeccb6bb96fee53a8b9f154c17ecd526a4
|
4
|
+
data.tar.gz: a0fca576757b57e6a101f9078851c9cc76fd1f58
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f7e0bcce771b22667002b0f580c7844f1f34ff97f4616b9a52709faf0fdc984f8a739dd29a09174df17beab5cac426bfac9ccf9b2d4831237a1c56f8bd7c0884
|
7
|
+
data.tar.gz: cfc7a9d51be11a588c0c98d3b52e30c2c7fa9fd1a21e40cee80d3606cd3ec40d77430d010ea66df7ff1dde6a1d4e3fdb07bde5926bf27ce0c966b1d31a2137eb
|
@@ -19,22 +19,21 @@ class LdapFluff::ActiveDirectory::MemberService < LdapFluff::GenericMemberServic
|
|
19
19
|
def _groups_from_ldap_data(payload)
|
20
20
|
data = []
|
21
21
|
if !payload.nil?
|
22
|
-
first_level =
|
22
|
+
first_level = payload[:memberof]
|
23
23
|
total_groups = _walk_group_ancestry(first_level)
|
24
|
-
data = (first_level + total_groups).uniq
|
24
|
+
data = (get_groups(first_level + total_groups)).uniq
|
25
25
|
end
|
26
26
|
data
|
27
27
|
end
|
28
28
|
|
29
29
|
# recursively loop over the parent list
|
30
|
-
def _walk_group_ancestry(
|
30
|
+
def _walk_group_ancestry(group_dns = [])
|
31
31
|
set = []
|
32
|
-
|
33
|
-
|
34
|
-
search = @ldap.search(:filter => filter, :base => @group_base)
|
32
|
+
group_dns.each do |group_dn|
|
33
|
+
search = @ldap.search(:base => group_dn, :scope => Net::LDAP::SearchScope_BaseObject)
|
35
34
|
if !search.nil? && !search.first.nil?
|
36
35
|
group = search.first
|
37
|
-
set +=
|
36
|
+
set += group[:memberof]
|
38
37
|
set += _walk_group_ancestry(set)
|
39
38
|
end
|
40
39
|
end
|
@@ -11,7 +11,7 @@ class TestADMemberService < MiniTest::Test
|
|
11
11
|
|
12
12
|
def basic_user
|
13
13
|
@ldap.expect(:search, ad_user_payload, [:filter => ad_name_filter("john")])
|
14
|
-
@ldap.expect(:search, ad_parent_payload(1), [:
|
14
|
+
@ldap.expect(:search, ad_parent_payload(1), [:base => ad_group_dn, :scope => 0])
|
15
15
|
end
|
16
16
|
|
17
17
|
def basic_group
|
@@ -20,32 +20,28 @@ class TestADMemberService < MiniTest::Test
|
|
20
20
|
|
21
21
|
def nest_deep(n)
|
22
22
|
# add all the expects
|
23
|
-
1.upto(n
|
24
|
-
|
25
|
-
@ldap.expect(:search, ad_parent_payload(i + 1), [:filter => gfilter_bros, :base => @config.group_base])
|
23
|
+
1.upto(n-1) do |i|
|
24
|
+
@ldap.expect(:search, ad_parent_payload(i + 1), [:base => ad_group_dn("bros#{i}"), :scope => 0])
|
26
25
|
end
|
27
26
|
# terminate or we loop FOREVER
|
28
|
-
@ldap.expect(:search, [], [:
|
27
|
+
@ldap.expect(:search, [], [:base => ad_group_dn("bros#{n}"), :scope => 0])
|
29
28
|
end
|
30
29
|
|
31
30
|
def double_nested(n)
|
32
31
|
# add all the expects
|
33
32
|
1.upto(n - 1) do |i|
|
34
|
-
|
35
|
-
@ldap.expect(:search, ad_double_payload(i + 1), [:filter => gfilter_bros, :base => @config.group_base])
|
33
|
+
@ldap.expect(:search, ad_double_payload(i + 1), [:base => ad_group_dn("bros#{i}"), :scope => 0])
|
36
34
|
end
|
37
35
|
# terminate or we loop FOREVER
|
38
|
-
@ldap.expect(:search, [], [:
|
36
|
+
@ldap.expect(:search, [], [:base => ad_group_dn("bros#{n}"), :scope => 0])
|
39
37
|
(n - 1).downto(1) do |j|
|
40
|
-
|
41
|
-
@ldap.expect(:search, [], [:filter => gfilter_bros, :base => @config.group_base])
|
38
|
+
@ldap.expect(:search, [], [:base => ad_group_dn("broskies#{j + 1}"), :scope => 0])
|
42
39
|
end
|
43
40
|
end
|
44
41
|
|
45
42
|
def test_find_user
|
46
43
|
basic_user
|
47
|
-
|
48
|
-
@ldap.expect(:search, [], [:filter => gfilter_bros, :base => @config.group_base])
|
44
|
+
@ldap.expect(:search, [], [:base => ad_group_dn('bros1'), :scope => 0])
|
49
45
|
@adms.ldap = @ldap
|
50
46
|
assert_equal(%w(group bros1), @adms.find_user_groups("john"))
|
51
47
|
@ldap.verify
|
data/test/ad_test.rb
CHANGED
@@ -25,10 +25,10 @@ class TestAD < MiniTest::Test
|
|
25
25
|
|
26
26
|
def test_good_bind_with_dn
|
27
27
|
# no expectation on the service account
|
28
|
-
@ldap.expect(:auth, nil, [
|
28
|
+
@ldap.expect(:auth, nil, [ad_user_dn('Internet User'), "password"])
|
29
29
|
@ldap.expect(:bind, true)
|
30
30
|
@ad.ldap = @ldap
|
31
|
-
assert_equal(@ad.bind?(
|
31
|
+
assert_equal(@ad.bind?(ad_user_dn('Internet User'), 'password'), true)
|
32
32
|
@ldap.verify
|
33
33
|
end
|
34
34
|
|
@@ -36,11 +36,11 @@ class TestAD < MiniTest::Test
|
|
36
36
|
# looks up the account name's full DN via the service account
|
37
37
|
@md = MiniTest::Mock.new
|
38
38
|
user_result = MiniTest::Mock.new
|
39
|
-
user_result.expect(:dn,
|
39
|
+
user_result.expect(:dn, ad_user_dn('Internet User'))
|
40
40
|
@md.expect(:find_user, [user_result], %w(internet))
|
41
41
|
@ad.member_service = @md
|
42
42
|
service_bind
|
43
|
-
@ldap.expect(:auth, nil, [
|
43
|
+
@ldap.expect(:auth, nil, [ad_user_dn('Internet User'), "password"])
|
44
44
|
@ldap.expect(:bind, true)
|
45
45
|
assert_equal(@ad.bind?('internet', 'password'), true)
|
46
46
|
@ldap.verify
|
@@ -74,24 +74,28 @@ module LdapTestHelper
|
|
74
74
|
"uid=#{uid},cn=users,cn=accounts,#{@config.base_dn}"
|
75
75
|
end
|
76
76
|
|
77
|
-
def
|
77
|
+
def ad_user_dn(name)
|
78
78
|
"CN=#{name},CN=Users,#{@config.base_dn}"
|
79
79
|
end
|
80
80
|
|
81
|
+
def ad_group_dn(name='group')
|
82
|
+
"cn=#{name},#{@config.group_base}"
|
83
|
+
end
|
84
|
+
|
81
85
|
def ad_user_payload
|
82
|
-
[{ :memberof => [
|
86
|
+
[{ :memberof => [ad_group_dn] }]
|
83
87
|
end
|
84
88
|
|
85
89
|
def ad_group_payload
|
86
|
-
[{ :cn => "
|
90
|
+
[{ :cn => "group", :memberof => [ad_group_dn] }]
|
87
91
|
end
|
88
92
|
|
89
93
|
def ad_parent_payload(num)
|
90
|
-
[{ :memberof => ["
|
94
|
+
[{ :memberof => [ad_group_dn("bros#{num}")] }]
|
91
95
|
end
|
92
96
|
|
93
97
|
def ad_double_payload(num)
|
94
|
-
[{ :memberof => ["
|
98
|
+
[{ :memberof => [ad_group_dn("bros#{num}"), ad_group_dn("broskies#{num}")] }]
|
95
99
|
end
|
96
100
|
|
97
101
|
def posix_user_payload
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ldap_fluff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
4
|
+
version: 0.3.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan O'Mara
|
@@ -12,7 +12,7 @@ authors:
|
|
12
12
|
autorequire:
|
13
13
|
bindir: bin
|
14
14
|
cert_chain: []
|
15
|
-
date: 2015-
|
15
|
+
date: 2015-07-27 00:00:00.000000000 Z
|
16
16
|
dependencies:
|
17
17
|
- !ruby/object:Gem::Dependency
|
18
18
|
name: net-ldap
|