ldap_fluff 0.5.0 → 0.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.rdoc +7 -1
- data/lib/ldap_fluff/active_directory.rb +5 -7
- data/lib/ldap_fluff/ad_member_service.rb +38 -16
- data/lib/ldap_fluff/config.rb +5 -5
- data/lib/ldap_fluff/error.rb +0 -1
- data/lib/ldap_fluff/freeipa.rb +4 -7
- data/lib/ldap_fluff/freeipa_member_service.rb +1 -4
- data/lib/ldap_fluff/freeipa_netgroup_member_service.rb +0 -2
- data/lib/ldap_fluff/generic.rb +9 -9
- data/lib/ldap_fluff/generic_member_service.rb +2 -4
- data/lib/ldap_fluff/ldap_fluff.rb +9 -9
- data/lib/ldap_fluff/posix.rb +9 -10
- data/lib/ldap_fluff/posix_member_service.rb +1 -3
- data/lib/ldap_fluff/posix_netgroup_member_service.rb +0 -2
- data/test/ad_member_services_test.rb +19 -4
- data/test/ad_test.rb +22 -23
- data/test/config_test.rb +5 -5
- data/test/ipa_member_services_test.rb +2 -3
- data/test/ipa_netgroup_member_services_test.rb +0 -1
- data/test/ipa_test.rb +16 -18
- data/test/ldap_test.rb +8 -11
- data/test/lib/ldap_test_helper.rb +21 -18
- data/test/posix_member_services_test.rb +5 -5
- data/test/posix_netgroup_member_services_test.rb +5 -5
- data/test/posix_test.rb +17 -17
- metadata +13 -13
@@ -7,17 +7,16 @@ module LdapTestHelper
|
|
7
7
|
attr_accessor :group_base, :class_filter, :user
|
8
8
|
|
9
9
|
def config_hash
|
10
|
-
{ :host
|
11
|
-
:port
|
12
|
-
:encryption
|
13
|
-
:base_dn
|
14
|
-
:group_base
|
15
|
-
:service_user
|
16
|
-
:service_pass
|
17
|
-
:server_type
|
18
|
-
:attr_login
|
19
|
-
:search_filter => nil
|
20
|
-
}
|
10
|
+
{ :host => "internet.com",
|
11
|
+
:port => "387",
|
12
|
+
:encryption => :start_tls,
|
13
|
+
:base_dn => "dc=internet,dc=com",
|
14
|
+
:group_base => "ou=group,dc=internet,dc=com",
|
15
|
+
:service_user => "service",
|
16
|
+
:service_pass => "pass",
|
17
|
+
:server_type => :free_ipa,
|
18
|
+
:attr_login => nil,
|
19
|
+
:search_filter => nil }
|
21
20
|
end
|
22
21
|
|
23
22
|
def setup
|
@@ -40,13 +39,13 @@ module LdapTestHelper
|
|
40
39
|
|
41
40
|
def basic_user
|
42
41
|
@md = MiniTest::Mock.new
|
43
|
-
@md.expect(:find_user_groups, %w
|
42
|
+
@md.expect(:find_user_groups, %w[bros], %w[john])
|
44
43
|
get_test_instance_variable.member_service = @md
|
45
44
|
end
|
46
45
|
|
47
46
|
def bigtime_user
|
48
47
|
@md = MiniTest::Mock.new
|
49
|
-
@md.expect(:find_user_groups, %w
|
48
|
+
@md.expect(:find_user_groups, %w[bros broskies], %w[john])
|
50
49
|
get_test_instance_variable.member_service = @md
|
51
50
|
end
|
52
51
|
|
@@ -82,11 +81,15 @@ module LdapTestHelper
|
|
82
81
|
"CN=#{name},CN=Users,#{@config.base_dn}"
|
83
82
|
end
|
84
83
|
|
85
|
-
def ad_group_dn(name='group')
|
84
|
+
def ad_group_dn(name = 'group')
|
86
85
|
"cn=#{name},#{@config.group_base}"
|
87
86
|
end
|
88
87
|
|
89
|
-
def ad_user_payload
|
88
|
+
def ad_user_payload(name = nil)
|
89
|
+
unless name.nil?
|
90
|
+
return [{ :memberof => [ad_group_dn], :distinguishedname => [ad_user_dn(name)] }]
|
91
|
+
end
|
92
|
+
|
90
93
|
[{ :memberof => [ad_group_dn] }]
|
91
94
|
end
|
92
95
|
|
@@ -110,7 +113,7 @@ module LdapTestHelper
|
|
110
113
|
[{ :cn => ["broze"] }]
|
111
114
|
end
|
112
115
|
|
113
|
-
def posix_netgroup_payload(cn, netgroups=[])
|
116
|
+
def posix_netgroup_payload(cn, netgroups = [])
|
114
117
|
[{ :cn => [cn], :nisnetgrouptriple => netgroups }]
|
115
118
|
end
|
116
119
|
|
@@ -120,7 +123,7 @@ module LdapTestHelper
|
|
120
123
|
entry_1['cn'] = 'John'
|
121
124
|
entry_2 = Net::LDAP::Entry.new
|
122
125
|
entry_2['memberof'] = ['cn=group,dc=internet,dc=com', 'cn=bros,dc=internet,dc=com']
|
123
|
-
[
|
126
|
+
[entry_1, entry_2]
|
124
127
|
end
|
125
128
|
end
|
126
129
|
|
@@ -128,7 +131,7 @@ module LdapTestHelper
|
|
128
131
|
[{ :cn => 'group' }, { :memberof => ['cn=group,dc=internet,dc=com', 'cn=bros,dc=internet,dc=com'] }]
|
129
132
|
end
|
130
133
|
|
131
|
-
def ipa_netgroup_payload(cn, netgroups=[])
|
134
|
+
def ipa_netgroup_payload(cn, netgroups = [])
|
132
135
|
[{ :cn => [cn], :nisnetgrouptriple => netgroups }]
|
133
136
|
end
|
134
137
|
|
@@ -11,7 +11,7 @@ class TestPosixMemberService < MiniTest::Test
|
|
11
11
|
def test_find_user
|
12
12
|
user = posix_user_payload
|
13
13
|
@ldap.expect(:search, user, [:filter => @ms.name_filter('john'),
|
14
|
-
:base
|
14
|
+
:base => config.base_dn])
|
15
15
|
@ms.ldap = @ldap
|
16
16
|
assert_equal posix_user_payload, @ms.find_user('john')
|
17
17
|
@ldap.verify
|
@@ -37,7 +37,7 @@ class TestPosixMemberService < MiniTest::Test
|
|
37
37
|
def test_user_exists
|
38
38
|
user = posix_user_payload
|
39
39
|
@ldap.expect(:search, user, [:filter => @ms.name_filter('john'),
|
40
|
-
:base
|
40
|
+
:base => config.base_dn])
|
41
41
|
@ms.ldap = @ldap
|
42
42
|
assert @ms.find_user('john')
|
43
43
|
@ldap.verify
|
@@ -45,7 +45,7 @@ class TestPosixMemberService < MiniTest::Test
|
|
45
45
|
|
46
46
|
def test_user_doesnt_exists
|
47
47
|
@ldap.expect(:search, nil, [:filter => @ms.name_filter('john'),
|
48
|
-
:base
|
48
|
+
:base => config.base_dn])
|
49
49
|
@ms.ldap = @ldap
|
50
50
|
assert_raises(LdapFluff::Posix::MemberService::UIDNotFoundException) { @ms.find_user('john') }
|
51
51
|
@ldap.verify
|
@@ -54,7 +54,7 @@ class TestPosixMemberService < MiniTest::Test
|
|
54
54
|
def test_group_exists
|
55
55
|
group = posix_group_payload
|
56
56
|
@ldap.expect(:search, group, [:filter => @ms.group_filter('broze'),
|
57
|
-
:base
|
57
|
+
:base => config.group_base])
|
58
58
|
@ms.ldap = @ldap
|
59
59
|
assert @ms.find_group('broze')
|
60
60
|
@ldap.verify
|
@@ -62,7 +62,7 @@ class TestPosixMemberService < MiniTest::Test
|
|
62
62
|
|
63
63
|
def test_group_doesnt_exists
|
64
64
|
@ldap.expect(:search, nil, [:filter => @ms.group_filter('broze'),
|
65
|
-
:base
|
65
|
+
:base => config.group_base])
|
66
66
|
@ms.ldap = @ldap
|
67
67
|
assert_raises(LdapFluff::Posix::MemberService::GIDNotFoundException) { @ms.find_group('broze') }
|
68
68
|
@ldap.verify
|
@@ -12,7 +12,7 @@ class TestPosixNetgroupMemberService < MiniTest::Test
|
|
12
12
|
def test_find_user
|
13
13
|
user = posix_user_payload
|
14
14
|
@ldap.expect(:search, user, [:filter => @ms.name_filter('john'),
|
15
|
-
:base
|
15
|
+
:base => config.base_dn])
|
16
16
|
@ms.ldap = @ldap
|
17
17
|
assert_equal posix_user_payload, @ms.find_user('john')
|
18
18
|
@ldap.verify
|
@@ -41,7 +41,7 @@ class TestPosixNetgroupMemberService < MiniTest::Test
|
|
41
41
|
def test_user_exists
|
42
42
|
user = posix_user_payload
|
43
43
|
@ldap.expect(:search, user, [:filter => @ms.name_filter('john'),
|
44
|
-
:base
|
44
|
+
:base => config.base_dn])
|
45
45
|
@ms.ldap = @ldap
|
46
46
|
assert @ms.find_user('john')
|
47
47
|
@ldap.verify
|
@@ -49,7 +49,7 @@ class TestPosixNetgroupMemberService < MiniTest::Test
|
|
49
49
|
|
50
50
|
def test_user_doesnt_exists
|
51
51
|
@ldap.expect(:search, nil, [:filter => @ms.name_filter('john'),
|
52
|
-
:base
|
52
|
+
:base => config.base_dn])
|
53
53
|
@ms.ldap = @ldap
|
54
54
|
assert_raises(LdapFluff::Posix::MemberService::UIDNotFoundException) { @ms.find_user('john') }
|
55
55
|
@ldap.verify
|
@@ -58,7 +58,7 @@ class TestPosixNetgroupMemberService < MiniTest::Test
|
|
58
58
|
def test_group_exists
|
59
59
|
group = posix_netgroup_payload('broze')
|
60
60
|
@ldap.expect(:search, group, [:filter => @ms.group_filter('broze'),
|
61
|
-
:base
|
61
|
+
:base => config.group_base])
|
62
62
|
@ms.ldap = @ldap
|
63
63
|
assert @ms.find_group('broze')
|
64
64
|
@ldap.verify
|
@@ -66,7 +66,7 @@ class TestPosixNetgroupMemberService < MiniTest::Test
|
|
66
66
|
|
67
67
|
def test_group_doesnt_exists
|
68
68
|
@ldap.expect(:search, nil, [:filter => @ms.group_filter('broze'),
|
69
|
-
:base
|
69
|
+
:base => config.group_base])
|
70
70
|
@ms.ldap = @ldap
|
71
71
|
assert_raises(LdapFluff::Posix::MemberService::GIDNotFoundException) { @ms.find_group('broze') }
|
72
72
|
@ldap.verify
|
data/test/posix_test.rb
CHANGED
@@ -16,12 +16,12 @@ class TestPosix < MiniTest::Test
|
|
16
16
|
def test_groups
|
17
17
|
service_bind
|
18
18
|
basic_user
|
19
|
-
assert_equal(@posix.groups_for_uid("john"), %w
|
19
|
+
assert_equal(@posix.groups_for_uid("john"), %w[bros])
|
20
20
|
end
|
21
21
|
|
22
22
|
def test_missing_user
|
23
23
|
md = MiniTest::Mock.new
|
24
|
-
md.expect(:find_user_groups, [], %w
|
24
|
+
md.expect(:find_user_groups, [], %w[john])
|
25
25
|
@posix.member_service = md
|
26
26
|
assert_equal([], @posix.groups_for_uid('john'))
|
27
27
|
end
|
@@ -29,13 +29,13 @@ class TestPosix < MiniTest::Test
|
|
29
29
|
def test_isnt_in_groups
|
30
30
|
service_bind
|
31
31
|
basic_user
|
32
|
-
assert_equal(@posix.is_in_groups('john', %w
|
32
|
+
assert_equal(@posix.is_in_groups('john', %w[broskies], true), false)
|
33
33
|
end
|
34
34
|
|
35
35
|
def test_is_in_groups
|
36
36
|
service_bind
|
37
37
|
basic_user
|
38
|
-
assert_equal(@posix.is_in_groups('john', %w
|
38
|
+
assert_equal(@posix.is_in_groups('john', %w[bros], true), true)
|
39
39
|
end
|
40
40
|
|
41
41
|
def test_is_in_no_groups
|
@@ -49,7 +49,7 @@ class TestPosix < MiniTest::Test
|
|
49
49
|
@md = MiniTest::Mock.new
|
50
50
|
user_result = MiniTest::Mock.new
|
51
51
|
user_result.expect(:dn, 'uid=internet,dn=example')
|
52
|
-
@md.expect(:find_user, [user_result], %w
|
52
|
+
@md.expect(:find_user, [user_result], %w[internet])
|
53
53
|
@posix.member_service = @md
|
54
54
|
service_bind
|
55
55
|
@ldap.expect(:auth, nil, %w[uid=internet,dn=example password])
|
@@ -76,7 +76,7 @@ class TestPosix < MiniTest::Test
|
|
76
76
|
def test_user_exists
|
77
77
|
service_bind
|
78
78
|
md = MiniTest::Mock.new
|
79
|
-
md.expect(:find_user, 'notnilluser', %w
|
79
|
+
md.expect(:find_user, 'notnilluser', %w[john])
|
80
80
|
@posix.member_service = md
|
81
81
|
assert(@posix.user_exists?('john'))
|
82
82
|
end
|
@@ -84,8 +84,8 @@ class TestPosix < MiniTest::Test
|
|
84
84
|
def test_missing_user
|
85
85
|
service_bind
|
86
86
|
md = MiniTest::Mock.new
|
87
|
-
md.expect(:find_user, nil, %w
|
88
|
-
def md.find_user(
|
87
|
+
md.expect(:find_user, nil, %w[john])
|
88
|
+
def md.find_user(_uid)
|
89
89
|
raise LdapFluff::Posix::MemberService::UIDNotFoundException
|
90
90
|
end
|
91
91
|
@posix.member_service = md
|
@@ -95,7 +95,7 @@ class TestPosix < MiniTest::Test
|
|
95
95
|
def test_group_exists
|
96
96
|
service_bind
|
97
97
|
md = MiniTest::Mock.new
|
98
|
-
md.expect(:find_group, 'notnillgroup', %w
|
98
|
+
md.expect(:find_group, 'notnillgroup', %w[broskies])
|
99
99
|
@posix.member_service = md
|
100
100
|
assert(@posix.group_exists?('broskies'))
|
101
101
|
end
|
@@ -103,8 +103,8 @@ class TestPosix < MiniTest::Test
|
|
103
103
|
def test_missing_group
|
104
104
|
service_bind
|
105
105
|
md = MiniTest::Mock.new
|
106
|
-
md.expect(:find_group, nil, %w
|
107
|
-
def md.find_group(
|
106
|
+
md.expect(:find_group, nil, %w[broskies])
|
107
|
+
def md.find_group(_uid)
|
108
108
|
raise LdapFluff::Posix::MemberService::GIDNotFoundException
|
109
109
|
end
|
110
110
|
@posix.member_service = md
|
@@ -119,12 +119,12 @@ class TestPosix < MiniTest::Test
|
|
119
119
|
nested_group[:memberuid] = ['testuser']
|
120
120
|
|
121
121
|
@ldap.expect(:search,
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
122
|
+
[nested_group],
|
123
|
+
[{ :base => group.dn,
|
124
|
+
:filter => Net::LDAP::Filter.eq('objectClass', 'posixGroup') |
|
125
|
+
Net::LDAP::Filter.eq('objectClass', 'organizationalunit') |
|
126
|
+
Net::LDAP::Filter.eq('objectClass', 'groupOfUniqueNames') |
|
127
|
+
Net::LDAP::Filter.eq('objectClass', 'groupOfNames')}])
|
128
128
|
@posix.ldap = @ldap
|
129
129
|
|
130
130
|
md = MiniTest::Mock.new
|
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.
|
4
|
+
version: 0.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jordan O'Mara
|
@@ -13,38 +13,38 @@ authors:
|
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
|
-
date:
|
16
|
+
date: 2021-06-25 00:00:00.000000000 Z
|
17
17
|
dependencies:
|
18
18
|
- !ruby/object:Gem::Dependency
|
19
|
-
name:
|
19
|
+
name: activesupport
|
20
20
|
requirement: !ruby/object:Gem::Requirement
|
21
21
|
requirements:
|
22
22
|
- - ">="
|
23
23
|
- !ruby/object:Gem::Version
|
24
|
-
version: '0
|
24
|
+
version: '0'
|
25
25
|
type: :runtime
|
26
26
|
prerelease: false
|
27
27
|
version_requirements: !ruby/object:Gem::Requirement
|
28
28
|
requirements:
|
29
29
|
- - ">="
|
30
30
|
- !ruby/object:Gem::Version
|
31
|
-
version: '0
|
31
|
+
version: '0'
|
32
32
|
- !ruby/object:Gem::Dependency
|
33
|
-
name:
|
33
|
+
name: net-ldap
|
34
34
|
requirement: !ruby/object:Gem::Requirement
|
35
35
|
requirements:
|
36
36
|
- - ">="
|
37
37
|
- !ruby/object:Gem::Version
|
38
|
-
version: '0'
|
38
|
+
version: '0.11'
|
39
39
|
type: :runtime
|
40
40
|
prerelease: false
|
41
41
|
version_requirements: !ruby/object:Gem::Requirement
|
42
42
|
requirements:
|
43
43
|
- - ">="
|
44
44
|
- !ruby/object:Gem::Version
|
45
|
-
version: '0'
|
45
|
+
version: '0.11'
|
46
46
|
- !ruby/object:Gem::Dependency
|
47
|
-
name:
|
47
|
+
name: minitest
|
48
48
|
requirement: !ruby/object:Gem::Requirement
|
49
49
|
requirements:
|
50
50
|
- - ">="
|
@@ -58,7 +58,7 @@ dependencies:
|
|
58
58
|
- !ruby/object:Gem::Version
|
59
59
|
version: '0'
|
60
60
|
- !ruby/object:Gem::Dependency
|
61
|
-
name:
|
61
|
+
name: rake
|
62
62
|
requirement: !ruby/object:Gem::Requirement
|
63
63
|
requirements:
|
64
64
|
- - ">="
|
@@ -131,19 +131,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
131
131
|
- !ruby/object:Gem::Version
|
132
132
|
version: '0'
|
133
133
|
requirements: []
|
134
|
-
rubygems_version: 3.1.
|
134
|
+
rubygems_version: 3.1.4
|
135
135
|
signing_key:
|
136
136
|
specification_version: 4
|
137
137
|
summary: LDAP querying tools for Active Directory, FreeIPA and POSIX-style
|
138
138
|
test_files:
|
139
|
-
- test/
|
139
|
+
- test/lib/ldap_test_helper.rb
|
140
140
|
- test/ad_test.rb
|
141
141
|
- test/config_test.rb
|
142
142
|
- test/ipa_member_services_test.rb
|
143
143
|
- test/ipa_netgroup_member_services_test.rb
|
144
144
|
- test/ipa_test.rb
|
145
145
|
- test/ldap_test.rb
|
146
|
-
- test/lib/ldap_test_helper.rb
|
147
146
|
- test/posix_member_services_test.rb
|
148
147
|
- test/posix_netgroup_member_services_test.rb
|
149
148
|
- test/posix_test.rb
|
149
|
+
- test/ad_member_services_test.rb
|