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.
@@ -2,7 +2,6 @@ require 'net/ldap'
2
2
 
3
3
  # handles the naughty bits of posix ldap
4
4
  class LdapFluff::Posix::MemberService < LdapFluff::GenericMemberService
5
-
6
5
  def initialize(ldap, config)
7
6
  @attr_login = (config.attr_login || 'memberuid')
8
7
  super
@@ -41,7 +40,7 @@ class LdapFluff::Posix::MemberService < LdapFluff::GenericMemberService
41
40
  filters[1..(filters.size - 1)].each do |gfilter|
42
41
  filter = (all ? filter & gfilter : filter | gfilter)
43
42
  end
44
- return filter
43
+ filter
45
44
  end
46
45
  end
47
46
 
@@ -50,5 +49,4 @@ class LdapFluff::Posix::MemberService < LdapFluff::GenericMemberService
50
49
 
51
50
  class GIDNotFoundException < LdapFluff::Error
52
51
  end
53
-
54
52
  end
@@ -2,7 +2,6 @@ require 'net/ldap'
2
2
 
3
3
  # handles the naughty bits of posix ldap
4
4
  class LdapFluff::Posix::NetgroupMemberService < LdapFluff::Posix::MemberService
5
-
6
5
  # return list of group CNs for a user
7
6
  def find_user_groups(uid)
8
7
  groups = []
@@ -12,5 +11,4 @@ class LdapFluff::Posix::NetgroupMemberService < LdapFluff::Posix::MemberService
12
11
  end
13
12
  groups
14
13
  end
15
-
16
14
  end
@@ -11,6 +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, [{ :domainfunctionality => ['5'] }], [:base => "", :scope => 0, :attributes => ['domainFunctionality']])
14
15
  @ldap.expect(:search, ad_parent_payload(1), [:base => ad_group_dn, :scope => 0, :attributes => ['memberof']])
15
16
  end
16
17
 
@@ -20,7 +21,7 @@ class TestADMemberService < MiniTest::Test
20
21
 
21
22
  def nest_deep(n)
22
23
  # add all the expects
23
- 1.upto(n-1) do |i|
24
+ 1.upto(n - 1) do |i|
24
25
  @ldap.expect(:search, ad_parent_payload(i + 1), [:base => ad_group_dn("bros#{i}"), :scope => 0, :attributes => ['memberof']])
25
26
  end
26
27
  # terminate or we loop FOREVER
@@ -39,11 +40,19 @@ class TestADMemberService < MiniTest::Test
39
40
  end
40
41
  end
41
42
 
43
+ def transitive_user
44
+ ad_transitive_payload = [{ 'msds-memberoftransitive' => [ad_group_dn("bros#1"), ad_group_dn("bros#2"), ad_group_dn("bros#3"), ad_group_dn("bros#4"), ad_group_dn("bros#5")] }]
45
+
46
+ @ldap.expect(:search, ad_user_payload('john'), [:filter => ad_name_filter("john")])
47
+ @ldap.expect(:search, [{ :domainfunctionality => ['6'] }], [:base => "", :scope => 0, :attributes => ['domainFunctionality']])
48
+ @ldap.expect(:search, ad_transitive_payload, [:base => ad_user_dn("john"), :scope => 0, :attributes => ['msds-memberOfTransitive']])
49
+ end
50
+
42
51
  def test_find_user
43
52
  basic_user
44
53
  @ldap.expect(:search, [], [:base => ad_group_dn('bros1'), :scope => 0, :attributes => ['memberof']])
45
54
  @adms.ldap = @ldap
46
- assert_equal(%w(group bros1), @adms.find_user_groups("john"))
55
+ assert_equal(%w[group bros1], @adms.find_user_groups("john"))
47
56
  @ldap.verify
48
57
  end
49
58
 
@@ -53,7 +62,7 @@ class TestADMemberService < MiniTest::Test
53
62
  # now make 'bros1' be memberof 'group' again
54
63
  @ldap.expect(:search, ad_user_payload, [:base => ad_group_dn('bros1'), :scope => 0, :attributes => ['memberof']])
55
64
  @adms.ldap = @ldap
56
- assert_equal(%w(group bros1), @adms.find_user_groups("john"))
65
+ assert_equal(%w[group bros1], @adms.find_user_groups("john"))
57
66
  @ldap.verify
58
67
  end
59
68
 
@@ -82,6 +91,13 @@ class TestADMemberService < MiniTest::Test
82
91
  @ldap.verify
83
92
  end
84
93
 
94
+ def test_transitive_groups
95
+ transitive_user
96
+ @adms.ldap = @ldap
97
+ assert_equal(5, @adms.find_user_groups('john').size)
98
+ @ldap.verify
99
+ end
100
+
85
101
  def test_nil_payload
86
102
  assert_equal([], @adms._groups_from_ldap_data(nil))
87
103
  end
@@ -160,5 +176,4 @@ class TestADMemberService < MiniTest::Test
160
176
  entry = Net::LDAP::Entry.new('Example User')
161
177
  assert_nil(@adms.get_login_from_entry(entry))
162
178
  end
163
-
164
179
  end
data/test/ad_test.rb CHANGED
@@ -5,12 +5,12 @@ class TestAD < MiniTest::Test
5
5
 
6
6
  def setup
7
7
  super
8
- @ad = LdapFluff::ActiveDirectory.new(@config)
8
+ @ad = LdapFluff::ActiveDirectory.new(@config)
9
9
  end
10
10
 
11
11
  # default setup for service bind users
12
12
  def service_bind
13
- @ldap.expect(:auth, nil, %w(service pass))
13
+ @ldap.expect(:auth, nil, %w[service pass])
14
14
  super
15
15
  end
16
16
 
@@ -37,7 +37,7 @@ class TestAD < MiniTest::Test
37
37
  @md = MiniTest::Mock.new
38
38
  user_result = MiniTest::Mock.new
39
39
  user_result.expect(:dn, ad_user_dn('Internet User'))
40
- @md.expect(:find_user, [user_result], %w(internet))
40
+ @md.expect(:find_user, [user_result], %w[internet])
41
41
  @ad.member_service = @md
42
42
  service_bind
43
43
  @ldap.expect(:auth, nil, [ad_user_dn('Internet User'), "password"])
@@ -47,7 +47,7 @@ class TestAD < MiniTest::Test
47
47
  end
48
48
 
49
49
  def test_bad_bind
50
- @ldap.expect(:auth, nil, %w(EXAMPLE\\internet password))
50
+ @ldap.expect(:auth, nil, %w[EXAMPLE\\internet password])
51
51
  @ldap.expect(:bind, false)
52
52
  @ad.ldap = @ldap
53
53
  assert_equal(@ad.bind?("EXAMPLE\\internet", "password"), false)
@@ -57,14 +57,14 @@ class TestAD < MiniTest::Test
57
57
  def test_groups
58
58
  service_bind
59
59
  basic_user
60
- assert_equal(@ad.groups_for_uid('john'), %w(bros))
60
+ assert_equal(@ad.groups_for_uid('john'), %w[bros])
61
61
  end
62
62
 
63
63
  def test_bad_user
64
64
  service_bind
65
65
  md = MiniTest::Mock.new
66
- md.expect(:find_user_groups, nil, %w(john))
67
- def md.find_user_groups(*args)
66
+ md.expect(:find_user_groups, nil, %w[john])
67
+ def md.find_user_groups(*_args)
68
68
  raise LdapFluff::ActiveDirectory::MemberService::UIDNotFoundException
69
69
  end
70
70
  @ad.member_service = md
@@ -72,7 +72,7 @@ class TestAD < MiniTest::Test
72
72
  end
73
73
 
74
74
  def test_bad_service_user
75
- @ldap.expect(:auth, nil, %w(service pass))
75
+ @ldap.expect(:auth, nil, %w[service pass])
76
76
  @ldap.expect(:bind, false)
77
77
  @ad.ldap = @ldap
78
78
  assert_raises(LdapFluff::ActiveDirectory::UnauthenticatedException) do
@@ -83,39 +83,39 @@ class TestAD < MiniTest::Test
83
83
  def test_is_in_groups
84
84
  service_bind
85
85
  basic_user
86
- assert_equal(@ad.is_in_groups("john", %w(bros), false), true)
86
+ assert_equal(@ad.is_in_groups("john", %w[bros], false), true)
87
87
  end
88
88
 
89
89
  def test_is_some_groups
90
90
  service_bind
91
91
  basic_user
92
- assert_equal(@ad.is_in_groups("john", %w(bros buds), false), true)
92
+ assert_equal(@ad.is_in_groups("john", %w[bros buds], false), true)
93
93
  end
94
94
 
95
95
  def test_isnt_in_all_groups
96
96
  service_bind
97
97
  basic_user
98
- assert_equal(@ad.is_in_groups("john", %w(bros buds), true), false)
98
+ assert_equal(@ad.is_in_groups("john", %w[bros buds], true), false)
99
99
  end
100
100
 
101
101
  def test_isnt_in_groups
102
102
  service_bind
103
103
  basic_user
104
- assert_equal(@ad.is_in_groups("john", %w(broskies), false), false)
104
+ assert_equal(@ad.is_in_groups("john", %w[broskies], false), false)
105
105
  end
106
106
 
107
107
  def test_group_subset
108
108
  service_bind
109
109
  bigtime_user
110
- assert_equal(@ad.is_in_groups("john", %w(broskies), true), true)
110
+ assert_equal(@ad.is_in_groups("john", %w[broskies], true), true)
111
111
  end
112
112
 
113
113
  def test_subgroups_in_groups_are_ignored
114
- group = Net::LDAP::Entry.new('foremaners')
114
+ group = Net::LDAP::Entry.new('foremaners')
115
115
  md = MiniTest::Mock.new
116
116
  2.times { md.expect(:find_group, [group], ['foremaners']) }
117
117
  2.times { service_bind }
118
- def md.find_by_dn(dn)
118
+ def md.find_by_dn(_dn)
119
119
  raise LdapFluff::ActiveDirectory::MemberService::UIDNotFoundException
120
120
  end
121
121
  @ad.member_service = md
@@ -125,7 +125,7 @@ class TestAD < MiniTest::Test
125
125
 
126
126
  def test_user_exists
127
127
  md = MiniTest::Mock.new
128
- md.expect(:find_user, 'notnilluser', %w(john))
128
+ md.expect(:find_user, 'notnilluser', %w[john])
129
129
  @ad.member_service = md
130
130
  service_bind
131
131
  assert(@ad.user_exists?('john'))
@@ -133,8 +133,8 @@ class TestAD < MiniTest::Test
133
133
 
134
134
  def test_missing_user
135
135
  md = MiniTest::Mock.new
136
- md.expect(:find_user, nil, %w(john))
137
- def md.find_user(uid)
136
+ md.expect(:find_user, nil, %w[john])
137
+ def md.find_user(_uid)
138
138
  raise LdapFluff::ActiveDirectory::MemberService::UIDNotFoundException
139
139
  end
140
140
  @ad.member_service = md
@@ -144,7 +144,7 @@ class TestAD < MiniTest::Test
144
144
 
145
145
  def test_group_exists
146
146
  md = MiniTest::Mock.new
147
- md.expect(:find_group, 'notnillgroup', %w(broskies))
147
+ md.expect(:find_group, 'notnillgroup', %w[broskies])
148
148
  @ad.member_service = md
149
149
  service_bind
150
150
  assert(@ad.group_exists?('broskies'))
@@ -152,8 +152,8 @@ class TestAD < MiniTest::Test
152
152
 
153
153
  def test_missing_group
154
154
  md = MiniTest::Mock.new
155
- md.expect(:find_group, nil, %w(broskies))
156
- def md.find_group(uid)
155
+ md.expect(:find_group, nil, %w[broskies])
156
+ def md.find_group(_uid)
157
157
  raise LdapFluff::ActiveDirectory::MemberService::GIDNotFoundException
158
158
  end
159
159
  @ad.member_service = md
@@ -194,7 +194,7 @@ class TestAD < MiniTest::Test
194
194
  nested_group[:cn] = ['katellers']
195
195
  nested_group[:objectclass] = ['organizationalunit']
196
196
  nested_group[:memberof] = ['CN=foremaners,DC=corp,DC=windows,DC=com']
197
- nested_user[:objectclass] = ['person']
197
+ nested_user[:objectclass] = ['person']
198
198
 
199
199
  md = MiniTest::Mock.new
200
200
  2.times { md.expect(:find_group, [group], ['foremaners']) }
@@ -208,5 +208,4 @@ class TestAD < MiniTest::Test
208
208
  assert_equal @ad.users_for_gid('foremaners'), ['testuser']
209
209
  md.verify
210
210
  end
211
-
212
211
  end
data/test/config_test.rb CHANGED
@@ -4,27 +4,27 @@ class ConfigTest < MiniTest::Test
4
4
  include LdapTestHelper
5
5
 
6
6
  def test_unsupported_type
7
- assert_raises(LdapFluff::Config::ConfigError) { LdapFluff.new(config_hash.update :server_type => 'inactive_directory') }
7
+ assert_raises(LdapFluff::Config::ConfigError) { LdapFluff.new(config_hash.update(:server_type => 'inactive_directory')) }
8
8
  end
9
9
 
10
10
  def test_load_posix
11
- ldap = LdapFluff.new(config_hash.update :server_type => 'posix')
11
+ ldap = LdapFluff.new(config_hash.update(:server_type => 'posix'))
12
12
  assert_instance_of LdapFluff::Posix, ldap.ldap
13
13
  end
14
14
 
15
15
  def test_load_ad
16
- ldap = LdapFluff.new(config_hash.update :server_type => 'active_directory')
16
+ ldap = LdapFluff.new(config_hash.update(:server_type => 'active_directory'))
17
17
  assert_instance_of LdapFluff::ActiveDirectory, ldap.ldap
18
18
  end
19
19
 
20
20
  def test_load_free_ipa
21
- ldap = LdapFluff.new(config_hash.update :server_type => 'free_ipa')
21
+ ldap = LdapFluff.new(config_hash.update(:server_type => 'free_ipa'))
22
22
  assert_instance_of LdapFluff::FreeIPA, ldap.ldap
23
23
  end
24
24
 
25
25
  def test_instrumentation_service
26
26
  is = Object.new
27
- net_ldap = LdapFluff.new(config_hash.update :instrumentation_service => is).ldap.ldap
27
+ net_ldap = LdapFluff.new(config_hash.update(:instrumentation_service => is)).ldap.ldap
28
28
  assert_equal is, net_ldap.send(:instrumentation_service)
29
29
  end
30
30
  end
@@ -19,7 +19,7 @@ class TestIPAMemberService < MiniTest::Test
19
19
  def test_find_user
20
20
  basic_user
21
21
  @ipams.ldap = @ldap
22
- assert_equal(%w(group bros), @ipams.find_user_groups("john"))
22
+ assert_equal(%w[group bros], @ipams.find_user_groups("john"))
23
23
  @ldap.verify
24
24
  end
25
25
 
@@ -35,7 +35,7 @@ class TestIPAMemberService < MiniTest::Test
35
35
  def test_no_groups
36
36
  entry = Net::LDAP::Entry.new
37
37
  entry['memberof'] = []
38
- @ldap.expect(:search, [ Net::LDAP::Entry.new, entry ], [:filter => ipa_name_filter("john")])
38
+ @ldap.expect(:search, [Net::LDAP::Entry.new, entry], [:filter => ipa_name_filter("john")])
39
39
  @ipams.ldap = @ldap
40
40
  assert_equal([], @ipams.find_user_groups('john'))
41
41
  @ldap.verify
@@ -68,5 +68,4 @@ class TestIPAMemberService < MiniTest::Test
68
68
  @ipams.find_group('broze')
69
69
  end
70
70
  end
71
-
72
71
  end
@@ -64,5 +64,4 @@ class TestIPANetgroupMemberService < MiniTest::Test
64
64
  @ipams.find_group('broze')
65
65
  end
66
66
  end
67
-
68
67
  end
data/test/ipa_test.rb CHANGED
@@ -19,7 +19,7 @@ class TestIPA < MiniTest::Test
19
19
  @md = MiniTest::Mock.new
20
20
  user_result = MiniTest::Mock.new
21
21
  user_result.expect(:dn, ipa_user_bind('internet'))
22
- @md.expect(:find_user, [user_result], %w(internet))
22
+ @md.expect(:find_user, [user_result], %w[internet])
23
23
  @ipa.member_service = @md
24
24
  service_bind
25
25
  @ldap.expect(:auth, nil, [ipa_user_bind('internet'), "password"])
@@ -48,14 +48,14 @@ class TestIPA < MiniTest::Test
48
48
  def test_groups
49
49
  service_bind
50
50
  basic_user
51
- assert_equal(@ipa.groups_for_uid('john'), %w(bros))
51
+ assert_equal(@ipa.groups_for_uid('john'), %w[bros])
52
52
  end
53
53
 
54
54
  def test_bad_user
55
55
  service_bind
56
56
  @md = MiniTest::Mock.new
57
- @md.expect(:find_user_groups, nil, %w(john))
58
- def @md.find_user_groups(*args)
57
+ @md.expect(:find_user_groups, nil, %w[john])
58
+ def @md.find_user_groups(*_args)
59
59
  raise LdapFluff::FreeIPA::MemberService::UIDNotFoundException
60
60
  end
61
61
  @ipa.member_service = @md
@@ -74,42 +74,42 @@ class TestIPA < MiniTest::Test
74
74
  def test_is_in_groups
75
75
  service_bind
76
76
  basic_user
77
- assert_equal(@ipa.is_in_groups("john", %w(bros), false), true)
77
+ assert_equal(@ipa.is_in_groups("john", %w[bros], false), true)
78
78
  end
79
79
 
80
80
  def test_is_some_groups
81
81
  service_bind
82
82
  basic_user
83
- assert_equal(@ipa.is_in_groups("john", %w(bros buds), false), true)
83
+ assert_equal(@ipa.is_in_groups("john", %w[bros buds], false), true)
84
84
  end
85
85
 
86
86
  def test_is_in_all_groupss
87
87
  service_bind
88
88
  bigtime_user
89
- assert_equal(true, @ipa.is_in_groups("john", %w(broskies bros), true))
89
+ assert_equal(true, @ipa.is_in_groups("john", %w[broskies bros], true))
90
90
  end
91
91
 
92
92
  def test_isnt_in_all_groups
93
93
  service_bind
94
94
  basic_user
95
- assert_equal(@ipa.is_in_groups("john", %w(bros buds), true), false)
95
+ assert_equal(@ipa.is_in_groups("john", %w[bros buds], true), false)
96
96
  end
97
97
 
98
98
  def test_isnt_in_groups
99
99
  service_bind
100
100
  basic_user
101
- assert_equal(@ipa.is_in_groups("john", %w(broskies), false), false)
101
+ assert_equal(@ipa.is_in_groups("john", %w[broskies], false), false)
102
102
  end
103
103
 
104
104
  def test_group_subset
105
105
  service_bind
106
106
  bigtime_user
107
- assert_equal(@ipa.is_in_groups('john', %w(broskies), true), true)
107
+ assert_equal(@ipa.is_in_groups('john', %w[broskies], true), true)
108
108
  end
109
109
 
110
110
  def test_user_exists
111
111
  @md = MiniTest::Mock.new
112
- @md.expect(:find_user, 'notnilluser', %w(john))
112
+ @md.expect(:find_user, 'notnilluser', %w[john])
113
113
  @ipa.member_service = @md
114
114
  service_bind
115
115
  assert(@ipa.user_exists?('john'))
@@ -117,8 +117,8 @@ class TestIPA < MiniTest::Test
117
117
 
118
118
  def test_missing_user
119
119
  @md = MiniTest::Mock.new
120
- @md.expect(:find_user, nil, %w(john))
121
- def @md.find_user(uid)
120
+ @md.expect(:find_user, nil, %w[john])
121
+ def @md.find_user(_uid)
122
122
  raise LdapFluff::FreeIPA::MemberService::UIDNotFoundException
123
123
  end
124
124
  @ipa.member_service = @md
@@ -128,7 +128,7 @@ class TestIPA < MiniTest::Test
128
128
 
129
129
  def test_group_exists
130
130
  @md = MiniTest::Mock.new
131
- @md.expect(:find_group, 'notnillgroup', %w(broskies))
131
+ @md.expect(:find_group, 'notnillgroup', %w[broskies])
132
132
  @ipa.member_service = @md
133
133
  service_bind
134
134
  assert(@ipa.group_exists?('broskies'))
@@ -136,8 +136,8 @@ class TestIPA < MiniTest::Test
136
136
 
137
137
  def test_missing_group
138
138
  @md = MiniTest::Mock.new
139
- @md.expect(:find_group, nil, %w(broskies))
140
- def @md.find_group(uid)
139
+ @md.expect(:find_group, nil, %w[broskies])
140
+ def @md.find_group(_uid)
141
141
  raise LdapFluff::FreeIPA::MemberService::GIDNotFoundException
142
142
  end
143
143
  @ipa.member_service = @md
@@ -162,6 +162,4 @@ class TestIPA < MiniTest::Test
162
162
  assert_equal @ipa.users_for_gid('foremaners'), ['testuser']
163
163
  md.verify
164
164
  end
165
-
166
165
  end
167
-
data/test/ldap_test.rb CHANGED
@@ -9,42 +9,42 @@ class TestLDAP < MiniTest::Test
9
9
  end
10
10
 
11
11
  def test_bind
12
- @ldap.expect(:bind?, true, %w(john password))
12
+ @ldap.expect(:bind?, true, %w[john password])
13
13
  @fluff.ldap = @ldap
14
14
  assert_equal(@fluff.authenticate?("john", "password"), true)
15
15
  @ldap.verify
16
16
  end
17
17
 
18
18
  def test_groups
19
- @ldap.expect(:groups_for_uid, %w(bros), %w(john))
19
+ @ldap.expect(:groups_for_uid, %w[bros], %w[john])
20
20
  @fluff.ldap = @ldap
21
- assert_equal(@fluff.group_list('john'), %w(bros))
21
+ assert_equal(@fluff.group_list('john'), %w[bros])
22
22
  @ldap.verify
23
23
  end
24
24
 
25
25
  def test_group_membership
26
- @ldap.expect(:is_in_groups, false, ['john', %w(broskies girlfriends), true])
26
+ @ldap.expect(:is_in_groups, false, ['john', %w[broskies girlfriends], true])
27
27
  @fluff.ldap = @ldap
28
- assert_equal(@fluff.is_in_groups?('john', %w(broskies girlfriends)), false)
28
+ assert_equal(@fluff.is_in_groups?('john', %w[broskies girlfriends]), false)
29
29
  @ldap.verify
30
30
  end
31
31
 
32
32
  def test_valid_user
33
- @ldap.expect(:user_exists?, true, %w(john))
33
+ @ldap.expect(:user_exists?, true, %w[john])
34
34
  @fluff.ldap = @ldap
35
35
  assert(@fluff.valid_user?('john'))
36
36
  @ldap.verify
37
37
  end
38
38
 
39
39
  def test_valid_group
40
- @ldap.expect(:group_exists?, true, %w(broskies))
40
+ @ldap.expect(:group_exists?, true, %w[broskies])
41
41
  @fluff.ldap = @ldap
42
42
  assert(@fluff.valid_group?('broskies'))
43
43
  @ldap.verify
44
44
  end
45
45
 
46
46
  def test_invalid_group
47
- @ldap.expect(:group_exists?, false, %w(broskerinos))
47
+ @ldap.expect(:group_exists?, false, %w[broskerinos])
48
48
  @fluff.ldap = @ldap
49
49
  refute(@fluff.valid_group?('broskerinos'))
50
50
  @ldap.verify
@@ -56,7 +56,4 @@ class TestLDAP < MiniTest::Test
56
56
  refute(@fluff.valid_user?('johnny rotten'))
57
57
  @ldap.verify
58
58
  end
59
-
60
59
  end
61
-
62
-