ldap_fluff 0.5.0 → 0.6.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|