ldap_fluff 0.4.4 → 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 +5 -5
- data/README.rdoc +11 -3
- data/lib/ldap_fluff.rb +2 -0
- data/lib/ldap_fluff/active_directory.rb +10 -8
- data/lib/ldap_fluff/ad_member_service.rb +38 -16
- data/lib/ldap_fluff/config.rb +6 -5
- data/lib/ldap_fluff/error.rb +0 -1
- data/lib/ldap_fluff/freeipa.rb +16 -30
- data/lib/ldap_fluff/freeipa_member_service.rb +13 -4
- data/lib/ldap_fluff/freeipa_netgroup_member_service.rb +12 -0
- data/lib/ldap_fluff/generic.rb +46 -11
- data/lib/ldap_fluff/generic_member_service.rb +8 -4
- data/lib/ldap_fluff/ldap_fluff.rb +9 -9
- data/lib/ldap_fluff/posix.rb +12 -20
- data/lib/ldap_fluff/posix_member_service.rb +4 -6
- data/lib/ldap_fluff/posix_netgroup_member_service.rb +14 -0
- data/test/ad_member_services_test.rb +19 -4
- data/test/ad_test.rb +33 -21
- data/test/config_test.rb +5 -5
- data/test/ipa_member_services_test.rb +2 -3
- data/test/ipa_netgroup_member_services_test.rb +67 -0
- data/test/ipa_test.rb +21 -17
- data/test/ldap_test.rb +8 -11
- data/test/lib/ldap_test_helper.rb +32 -17
- data/test/posix_member_services_test.rb +17 -8
- data/test/posix_netgroup_member_services_test.rb +74 -0
- data/test/posix_test.rb +17 -23
- metadata +26 -21
@@ -0,0 +1,74 @@
|
|
1
|
+
require 'lib/ldap_test_helper'
|
2
|
+
|
3
|
+
class TestPosixNetgroupMemberService < MiniTest::Test
|
4
|
+
include LdapTestHelper
|
5
|
+
|
6
|
+
def setup
|
7
|
+
netgroups_config
|
8
|
+
super
|
9
|
+
@ms = LdapFluff::Posix::NetgroupMemberService.new(@ldap, netgroups_config)
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_find_user
|
13
|
+
user = posix_user_payload
|
14
|
+
@ldap.expect(:search, user, [:filter => @ms.name_filter('john'),
|
15
|
+
:base => config.base_dn])
|
16
|
+
@ms.ldap = @ldap
|
17
|
+
assert_equal posix_user_payload, @ms.find_user('john')
|
18
|
+
@ldap.verify
|
19
|
+
end
|
20
|
+
|
21
|
+
def test_find_user_groups
|
22
|
+
response = posix_netgroup_payload('bros', ['(,john,)', '(,joe,)'])
|
23
|
+
@ldap.expect(:search, response, [:filter => Net::LDAP::Filter.eq('objectClass', 'nisNetgroup'),
|
24
|
+
:base => config.group_base])
|
25
|
+
|
26
|
+
@ms.ldap = @ldap
|
27
|
+
assert_equal ['bros'], @ms.find_user_groups('john')
|
28
|
+
@ldap.verify
|
29
|
+
end
|
30
|
+
|
31
|
+
def test_find_no_user_groups
|
32
|
+
response = posix_netgroup_payload('bros', ['(,joe,)'])
|
33
|
+
@ldap.expect(:search, response, [:filter => Net::LDAP::Filter.eq('objectClass', 'nisNetgroup'),
|
34
|
+
:base => config.group_base])
|
35
|
+
|
36
|
+
@ms.ldap = @ldap
|
37
|
+
assert_equal [], @ms.find_user_groups('john')
|
38
|
+
@ldap.verify
|
39
|
+
end
|
40
|
+
|
41
|
+
def test_user_exists
|
42
|
+
user = posix_user_payload
|
43
|
+
@ldap.expect(:search, user, [:filter => @ms.name_filter('john'),
|
44
|
+
:base => config.base_dn])
|
45
|
+
@ms.ldap = @ldap
|
46
|
+
assert @ms.find_user('john')
|
47
|
+
@ldap.verify
|
48
|
+
end
|
49
|
+
|
50
|
+
def test_user_doesnt_exists
|
51
|
+
@ldap.expect(:search, nil, [:filter => @ms.name_filter('john'),
|
52
|
+
:base => config.base_dn])
|
53
|
+
@ms.ldap = @ldap
|
54
|
+
assert_raises(LdapFluff::Posix::MemberService::UIDNotFoundException) { @ms.find_user('john') }
|
55
|
+
@ldap.verify
|
56
|
+
end
|
57
|
+
|
58
|
+
def test_group_exists
|
59
|
+
group = posix_netgroup_payload('broze')
|
60
|
+
@ldap.expect(:search, group, [:filter => @ms.group_filter('broze'),
|
61
|
+
:base => config.group_base])
|
62
|
+
@ms.ldap = @ldap
|
63
|
+
assert @ms.find_group('broze')
|
64
|
+
@ldap.verify
|
65
|
+
end
|
66
|
+
|
67
|
+
def test_group_doesnt_exists
|
68
|
+
@ldap.expect(:search, nil, [:filter => @ms.group_filter('broze'),
|
69
|
+
:base => config.group_base])
|
70
|
+
@ms.ldap = @ldap
|
71
|
+
assert_raises(LdapFluff::Posix::MemberService::GIDNotFoundException) { @ms.find_group('broze') }
|
72
|
+
@ldap.verify
|
73
|
+
end
|
74
|
+
end
|
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,19 +29,13 @@ class TestPosix < MiniTest::Test
|
|
29
29
|
def test_isnt_in_groups
|
30
30
|
service_bind
|
31
31
|
basic_user
|
32
|
-
|
33
|
-
md.expect(:times_in_groups, 0, ['john', %w(bros), true])
|
34
|
-
@posix.member_service = md
|
35
|
-
assert_equal(@posix.is_in_groups('john', %w(bros), true), false)
|
32
|
+
assert_equal(@posix.is_in_groups('john', %w[broskies], true), false)
|
36
33
|
end
|
37
34
|
|
38
35
|
def test_is_in_groups
|
39
36
|
service_bind
|
40
37
|
basic_user
|
41
|
-
|
42
|
-
md.expect(:times_in_groups, 1, ['john', %w(bros), true])
|
43
|
-
@posix.member_service = md
|
44
|
-
assert_equal(@posix.is_in_groups('john', %w(bros), true), true)
|
38
|
+
assert_equal(@posix.is_in_groups('john', %w[bros], true), true)
|
45
39
|
end
|
46
40
|
|
47
41
|
def test_is_in_no_groups
|
@@ -55,7 +49,7 @@ class TestPosix < MiniTest::Test
|
|
55
49
|
@md = MiniTest::Mock.new
|
56
50
|
user_result = MiniTest::Mock.new
|
57
51
|
user_result.expect(:dn, 'uid=internet,dn=example')
|
58
|
-
@md.expect(:find_user, [user_result], %w
|
52
|
+
@md.expect(:find_user, [user_result], %w[internet])
|
59
53
|
@posix.member_service = @md
|
60
54
|
service_bind
|
61
55
|
@ldap.expect(:auth, nil, %w[uid=internet,dn=example password])
|
@@ -82,7 +76,7 @@ class TestPosix < MiniTest::Test
|
|
82
76
|
def test_user_exists
|
83
77
|
service_bind
|
84
78
|
md = MiniTest::Mock.new
|
85
|
-
md.expect(:find_user, 'notnilluser', %w
|
79
|
+
md.expect(:find_user, 'notnilluser', %w[john])
|
86
80
|
@posix.member_service = md
|
87
81
|
assert(@posix.user_exists?('john'))
|
88
82
|
end
|
@@ -90,8 +84,8 @@ class TestPosix < MiniTest::Test
|
|
90
84
|
def test_missing_user
|
91
85
|
service_bind
|
92
86
|
md = MiniTest::Mock.new
|
93
|
-
md.expect(:find_user, nil, %w
|
94
|
-
def md.find_user(
|
87
|
+
md.expect(:find_user, nil, %w[john])
|
88
|
+
def md.find_user(_uid)
|
95
89
|
raise LdapFluff::Posix::MemberService::UIDNotFoundException
|
96
90
|
end
|
97
91
|
@posix.member_service = md
|
@@ -101,7 +95,7 @@ class TestPosix < MiniTest::Test
|
|
101
95
|
def test_group_exists
|
102
96
|
service_bind
|
103
97
|
md = MiniTest::Mock.new
|
104
|
-
md.expect(:find_group, 'notnillgroup', %w
|
98
|
+
md.expect(:find_group, 'notnillgroup', %w[broskies])
|
105
99
|
@posix.member_service = md
|
106
100
|
assert(@posix.group_exists?('broskies'))
|
107
101
|
end
|
@@ -109,8 +103,8 @@ class TestPosix < MiniTest::Test
|
|
109
103
|
def test_missing_group
|
110
104
|
service_bind
|
111
105
|
md = MiniTest::Mock.new
|
112
|
-
md.expect(:find_group, nil, %w
|
113
|
-
def md.find_group(
|
106
|
+
md.expect(:find_group, nil, %w[broskies])
|
107
|
+
def md.find_group(_uid)
|
114
108
|
raise LdapFluff::Posix::MemberService::GIDNotFoundException
|
115
109
|
end
|
116
110
|
@posix.member_service = md
|
@@ -125,12 +119,12 @@ class TestPosix < MiniTest::Test
|
|
125
119
|
nested_group[:memberuid] = ['testuser']
|
126
120
|
|
127
121
|
@ldap.expect(:search,
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
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')}])
|
134
128
|
@posix.ldap = @ldap
|
135
129
|
|
136
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
|
@@ -10,41 +10,41 @@ authors:
|
|
10
10
|
- Adam Price
|
11
11
|
- Marek Hulan
|
12
12
|
- Dominic Cleal
|
13
|
-
autorequire:
|
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
|
- - ">="
|
@@ -94,25 +94,29 @@ files:
|
|
94
94
|
- lib/ldap_fluff/error.rb
|
95
95
|
- lib/ldap_fluff/freeipa.rb
|
96
96
|
- lib/ldap_fluff/freeipa_member_service.rb
|
97
|
+
- lib/ldap_fluff/freeipa_netgroup_member_service.rb
|
97
98
|
- lib/ldap_fluff/generic.rb
|
98
99
|
- lib/ldap_fluff/generic_member_service.rb
|
99
100
|
- lib/ldap_fluff/ldap_fluff.rb
|
100
101
|
- lib/ldap_fluff/posix.rb
|
101
102
|
- lib/ldap_fluff/posix_member_service.rb
|
103
|
+
- lib/ldap_fluff/posix_netgroup_member_service.rb
|
102
104
|
- test/ad_member_services_test.rb
|
103
105
|
- test/ad_test.rb
|
104
106
|
- test/config_test.rb
|
105
107
|
- test/ipa_member_services_test.rb
|
108
|
+
- test/ipa_netgroup_member_services_test.rb
|
106
109
|
- test/ipa_test.rb
|
107
110
|
- test/ldap_test.rb
|
108
111
|
- test/lib/ldap_test_helper.rb
|
109
112
|
- test/posix_member_services_test.rb
|
113
|
+
- test/posix_netgroup_member_services_test.rb
|
110
114
|
- test/posix_test.rb
|
111
115
|
homepage: https://github.com/theforeman/ldap_fluff
|
112
116
|
licenses:
|
113
117
|
- GPLv2
|
114
118
|
metadata: {}
|
115
|
-
post_install_message:
|
119
|
+
post_install_message:
|
116
120
|
rdoc_options: []
|
117
121
|
require_paths:
|
118
122
|
- lib
|
@@ -120,25 +124,26 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
120
124
|
requirements:
|
121
125
|
- - ">="
|
122
126
|
- !ruby/object:Gem::Version
|
123
|
-
version:
|
127
|
+
version: 2.4.0
|
124
128
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
125
129
|
requirements:
|
126
130
|
- - ">="
|
127
131
|
- !ruby/object:Gem::Version
|
128
132
|
version: '0'
|
129
133
|
requirements: []
|
130
|
-
|
131
|
-
|
132
|
-
signing_key:
|
134
|
+
rubygems_version: 3.1.4
|
135
|
+
signing_key:
|
133
136
|
specification_version: 4
|
134
137
|
summary: LDAP querying tools for Active Directory, FreeIPA and POSIX-style
|
135
138
|
test_files:
|
136
|
-
- test/ipa_member_services_test.rb
|
137
|
-
- test/config_test.rb
|
138
|
-
- test/ipa_test.rb
|
139
139
|
- test/lib/ldap_test_helper.rb
|
140
140
|
- test/ad_test.rb
|
141
|
+
- test/config_test.rb
|
142
|
+
- test/ipa_member_services_test.rb
|
143
|
+
- test/ipa_netgroup_member_services_test.rb
|
144
|
+
- test/ipa_test.rb
|
141
145
|
- test/ldap_test.rb
|
142
|
-
- test/ad_member_services_test.rb
|
143
|
-
- test/posix_test.rb
|
144
146
|
- test/posix_member_services_test.rb
|
147
|
+
- test/posix_netgroup_member_services_test.rb
|
148
|
+
- test/posix_test.rb
|
149
|
+
- test/ad_member_services_test.rb
|