github-ldap 1.3.2 → 1.3.3
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/github-ldap.gemspec +1 -1
- data/lib/github/ldap.rb +1 -1
- data/lib/github/ldap/group.rb +4 -1
- data/test/domain_test.rb +7 -0
- data/test/fixtures/github-with-subgroups.ldif +55 -0
- data/test/group_test.rb +7 -1
- 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: f417737b5a49cba30ca466e8ef2a361894d4069a
|
4
|
+
data.tar.gz: fad20f08e322deb3b0a3303f4a5b9b2c0fce1469
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7fed87fe08383e0a6a264e99396aa8a7e9ed22d85dd5bdba0f100f9b558c5ac548718d1e7825cc01022329a877f0471138bab7eca2679d5f6c602ba9fb7bba1b
|
7
|
+
data.tar.gz: ee4bf4726436769b4109d052b2d5071e1f1ef26029ee3ab5b29ee020d60dcfdfff867ef11a8b4f624ec271ac60f46f153007f6dbe8220825e1aff8f380327a42
|
data/github-ldap.gemspec
CHANGED
data/lib/github/ldap.rb
CHANGED
@@ -112,7 +112,7 @@ module GitHub
|
|
112
112
|
def load_group(group_entry)
|
113
113
|
if @virtual_attributes.enabled?
|
114
114
|
VirtualGroup.new(self, group_entry)
|
115
|
-
elsif PosixGroup.valid?(group_entry)
|
115
|
+
elsif posix_support_enabled? && PosixGroup.valid?(group_entry)
|
116
116
|
PosixGroup.new(self, group_entry)
|
117
117
|
else
|
118
118
|
Group.new(self, group_entry)
|
data/lib/github/ldap/group.rb
CHANGED
@@ -72,9 +72,12 @@ module GitHub
|
|
72
72
|
# Internal - Check if an object class includes the member names
|
73
73
|
# Use `&` rathen than `include?` because both are arrays.
|
74
74
|
#
|
75
|
+
# NOTE: object classes are downcased by default in Net::LDAP, so this
|
76
|
+
# will fail to match correctly unless we also downcase our group classes.
|
77
|
+
#
|
75
78
|
# Returns true if the object class includes one of the group class names.
|
76
79
|
def group?(object_class)
|
77
|
-
!(GROUP_CLASS_NAMES & object_class).empty?
|
80
|
+
!(GROUP_CLASS_NAMES.map(&:downcase) & object_class.map(&:downcase)).empty?
|
78
81
|
end
|
79
82
|
|
80
83
|
# Internal - Generate a hash with all the group DNs for caching purposes.
|
data/test/domain_test.rb
CHANGED
@@ -158,6 +158,13 @@ class GitHubLdapDomainNestedGroupsTest < GitHub::Ldap::Test
|
|
158
158
|
assert @domain.is_member?(user, %w(enterprise-ops)),
|
159
159
|
"Expected `enterprise-ops` to include the member `#{user.dn}`"
|
160
160
|
end
|
161
|
+
|
162
|
+
def test_membership_in_deeply_nested_subgroups
|
163
|
+
assert user = @ldap.domain('uid=user1.1.1.1,ou=users,dc=github,dc=com').bind
|
164
|
+
|
165
|
+
assert @domain.is_member?(user, %w(group1)),
|
166
|
+
"Expected `group1` to include the member `#{user.dn}` via deep recursion"
|
167
|
+
end
|
161
168
|
end
|
162
169
|
|
163
170
|
class GitHubLdapPosixGroupsWithRecursionFallbackTest < GitHub::Ldap::Test
|
@@ -43,6 +43,29 @@ objectClass: groupOfNames
|
|
43
43
|
member: uid=calavera,ou=users,dc=github,dc=com
|
44
44
|
member: uid=rubiojr,ou=users,dc=github,dc=com
|
45
45
|
|
46
|
+
dn: cn=group1,ou=groups,dc=github,dc=com
|
47
|
+
cn: group1
|
48
|
+
objectClass: groupOfNames
|
49
|
+
member: uid=user1,ou=users,dc=github,dc=com
|
50
|
+
member: cn=group1.1,ou=groups,dc=github,dc=com
|
51
|
+
|
52
|
+
dn: cn=group1.1,ou=groups,dc=github,dc=com
|
53
|
+
cn: group1
|
54
|
+
objectClass: groupOfNames
|
55
|
+
member: uid=user1.1,ou=users,dc=github,dc=com
|
56
|
+
member: cn=group1.1.1,ou=groups,dc=github,dc=com
|
57
|
+
|
58
|
+
dn: cn=group1.1.1,ou=groups,dc=github,dc=com
|
59
|
+
cn: group1
|
60
|
+
objectClass: groupOfNames
|
61
|
+
member: uid=user1.1.1,ou=users,dc=github,dc=com
|
62
|
+
member: cn=group1.1.1.1,ou=groups,dc=github,dc=com
|
63
|
+
|
64
|
+
dn: cn=group1.1.1.1,ou=groups,dc=github,dc=com
|
65
|
+
cn: group1
|
66
|
+
objectClass: groupOfNames
|
67
|
+
member: uid=user1.1.1.1,ou=users,dc=github,dc=com
|
68
|
+
|
46
69
|
# Users
|
47
70
|
|
48
71
|
dn: ou=users,dc=github,dc=com
|
@@ -89,3 +112,35 @@ uid: mtodd
|
|
89
112
|
userPassword: passworD1
|
90
113
|
mail: mtodd@github.com
|
91
114
|
objectClass: inetOrgPerson
|
115
|
+
|
116
|
+
dn: uid=user1,ou=users,dc=github,dc=com
|
117
|
+
uid: user1
|
118
|
+
sn: user1
|
119
|
+
cn: user1
|
120
|
+
userPassword: passworD1
|
121
|
+
mail: user1@github.com
|
122
|
+
objectClass: inetOrgPerson
|
123
|
+
|
124
|
+
dn: uid=user1.1,ou=users,dc=github,dc=com
|
125
|
+
uid: user1.1
|
126
|
+
sn: user1.1
|
127
|
+
cn: user1.1
|
128
|
+
userPassword: passworD1
|
129
|
+
mail: user1.1@github.com
|
130
|
+
objectClass: inetOrgPerson
|
131
|
+
|
132
|
+
dn: uid=user1.1.1,ou=users,dc=github,dc=com
|
133
|
+
uid: user1.1.1
|
134
|
+
sn: user1.1.1
|
135
|
+
cn: user1.1.1
|
136
|
+
userPassword: passworD1
|
137
|
+
mail: user1.1.1@github.com
|
138
|
+
objectClass: inetOrgPerson
|
139
|
+
|
140
|
+
dn: uid=user1.1.1.1,ou=users,dc=github,dc=com
|
141
|
+
uid: user1.1.1.1
|
142
|
+
sn: user1.1.1.1
|
143
|
+
cn: user1.1.1.1
|
144
|
+
userPassword: passworD1
|
145
|
+
mail: user1.1.1.1@github.com
|
146
|
+
objectClass: inetOrgPerson
|
data/test/group_test.rb
CHANGED
@@ -14,6 +14,12 @@ class GitHubLdapGroupTest < GitHub::Ldap::Test
|
|
14
14
|
@group = @ldap.group("cn=enterprise,ou=groups,dc=github,dc=com")
|
15
15
|
end
|
16
16
|
|
17
|
+
def test_group?
|
18
|
+
object_classes = %w(groupOfNames)
|
19
|
+
assert @group.group?(object_classes)
|
20
|
+
assert @group.group?(object_classes.map(&:downcase))
|
21
|
+
end
|
22
|
+
|
17
23
|
def test_subgroups
|
18
24
|
assert_equal 3, @group.subgroups.size
|
19
25
|
end
|
@@ -24,7 +30,7 @@ class GitHubLdapGroupTest < GitHub::Ldap::Test
|
|
24
30
|
|
25
31
|
def test_all_domain_groups
|
26
32
|
groups = groups_domain.all_groups
|
27
|
-
assert_equal
|
33
|
+
assert_equal 8, groups.size
|
28
34
|
end
|
29
35
|
|
30
36
|
def test_filter_domain_groups
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: github-ldap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Calavera
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-08-
|
11
|
+
date: 2014-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-ldap
|