github-ldap 1.3.3 → 1.4.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +15 -2
  3. data/CHANGELOG.md +13 -0
  4. data/Gemfile +4 -0
  5. data/README.md +15 -1
  6. data/Rakefile +1 -1
  7. data/github-ldap.gemspec +2 -2
  8. data/lib/github/ldap.rb +55 -12
  9. data/lib/github/ldap/domain.rb +6 -2
  10. data/lib/github/ldap/filter.rb +15 -7
  11. data/lib/github/ldap/group.rb +1 -1
  12. data/lib/github/ldap/instrumentation.rb +28 -0
  13. data/lib/github/ldap/membership_validators.rb +18 -0
  14. data/lib/github/ldap/membership_validators/active_directory.rb +56 -0
  15. data/lib/github/ldap/membership_validators/base.rb +37 -0
  16. data/lib/github/ldap/membership_validators/classic.rb +34 -0
  17. data/lib/github/ldap/membership_validators/recursive.rb +93 -0
  18. data/lib/github/ldap/server.rb +2 -0
  19. data/script/changelog +29 -0
  20. data/script/cibuild-apacheds +7 -0
  21. data/script/cibuild-openldap +7 -0
  22. data/script/install-openldap +44 -0
  23. data/script/package +7 -0
  24. data/script/release +16 -0
  25. data/test/domain_test.rb +71 -89
  26. data/test/filter_test.rb +12 -1
  27. data/test/fixtures/common/seed.ldif +369 -0
  28. data/test/fixtures/openldap/memberof.ldif +33 -0
  29. data/test/fixtures/openldap/slapd.conf.ldif +67 -0
  30. data/test/fixtures/posixGroup.schema.ldif +34 -8
  31. data/test/group_test.rb +19 -25
  32. data/test/ldap_test.rb +28 -21
  33. data/test/membership_validators/active_directory_test.rb +68 -0
  34. data/test/membership_validators/classic_test.rb +51 -0
  35. data/test/membership_validators/recursive_test.rb +56 -0
  36. data/test/membership_validators_test.rb +46 -0
  37. data/test/posix_group_test.rb +25 -28
  38. data/test/support/vm/openldap/.gitignore +1 -0
  39. data/test/support/vm/openldap/README.md +32 -0
  40. data/test/support/vm/openldap/Vagrantfile +35 -0
  41. data/test/test_helper.rb +72 -10
  42. metadata +52 -27
  43. data/test/fixtures/github-with-looped-subgroups.ldif +0 -82
  44. data/test/fixtures/github-with-missing-entries.ldif +0 -85
  45. data/test/fixtures/github-with-posixGroups.ldif +0 -50
  46. data/test/fixtures/github-with-subgroups.ldif +0 -146
@@ -1,82 +0,0 @@
1
- version: 1
2
-
3
- # Admin user
4
-
5
- dn: uid=admin,dc=github,dc=com
6
- objectClass: top
7
- objectClass: person
8
- objectClass: organizationalPerson
9
- objectClass: inetOrgPerson
10
- cn: system administrator
11
- sn: administrator
12
- displayName: Directory Superuser
13
- uid: admin
14
- userPassword: secret
15
-
16
- # Groups
17
-
18
- dn: ou=groups,dc=github,dc=com
19
- objectclass: organizationalUnit
20
-
21
- dn: cn=enterprise,ou=groups,dc=github,dc=com
22
- cn: Enterprise
23
- objectClass: groupOfNames
24
- member: uid=calavera,ou=users,dc=github,dc=com
25
- member: cn=enterprise-devs,ou=groups,dc=github,dc=com
26
- member: cn=enterprise-ops,ou=groups,dc=github,dc=com
27
-
28
- dn: cn=enterprise-devs,ou=groups,dc=github,dc=com
29
- cn: enterprise-devs
30
- objectClass: groupOfNames
31
- member: uid=benburkert,ou=users,dc=github,dc=com
32
- member: cn=enterprise,ou=groups,dc=github,dc=com
33
-
34
- dn: cn=enterprise-ops,ou=groups,dc=github,dc=com
35
- cn: enterprise-ops
36
- objectClass: groupOfNames
37
- member: uid=sbryant,ou=users,dc=github,dc=com
38
- member: cn=spaniards,ou=groups,dc=github,dc=com
39
-
40
- dn: cn=spaniards,ou=groups,dc=github,dc=com
41
- cn: spaniards
42
- objectClass: groupOfNames
43
- member: uid=calavera,ou=users,dc=github,dc=com
44
- member: uid=rubiojr,ou=users,dc=github,dc=com
45
-
46
- # Users
47
-
48
- dn: ou=users,dc=github,dc=com
49
- objectclass: organizationalUnit
50
-
51
- dn: uid=calavera,ou=users,dc=github,dc=com
52
- cn: David Calavera
53
- cn: David
54
- sn: Calavera
55
- uid: calavera
56
- userPassword: passworD1
57
- mail: calavera@github.com
58
- objectClass: inetOrgPerson
59
-
60
- dn: uid=benburkert,ou=users,dc=github,dc=com
61
- cn: benburkert
62
- sn: benburkert
63
- uid: benburkert
64
- userPassword: passworD1
65
- mail: benburkert@github.com
66
- objectClass: inetOrgPerson
67
-
68
- dn: uid=sbryant,ou=users,dc=github,dc=com
69
- cn: sbryant
70
- sn: sbryant
71
- uid: sbryant
72
- userPassword: passworD1
73
- mail: sbryant@github.com
74
- objectClass: inetOrgPerson
75
-
76
- dn: uid=rubiojr,ou=users,dc=github,dc=com
77
- cn: rubiojr
78
- sn: rubiojr
79
- uid: rubiojr
80
- userPassword: passworD1
81
- mail: rubiojr@github.com
82
- objectClass: inetOrgPerson
@@ -1,85 +0,0 @@
1
- version: 1
2
-
3
- # Admin user
4
-
5
- dn: uid=admin,dc=github,dc=com
6
- objectClass: top
7
- objectClass: person
8
- objectClass: organizationalPerson
9
- objectClass: inetOrgPerson
10
- cn: system administrator
11
- sn: administrator
12
- displayName: Directory Superuser
13
- uid: admin
14
- userPassword: secret
15
-
16
- # Groups
17
-
18
- dn: ou=groups,dc=github,dc=com
19
- objectclass: organizationalUnit
20
-
21
- dn: cn=enterprise,ou=groups,dc=github,dc=com
22
- cn: Enterprise
23
- objectClass: groupOfNames
24
- member: uid=calavera,ou=users,dc=github,dc=com
25
- member: cn=enterprise-devs,ou=groups,dc=github,dc=com
26
- member: cn=enterprise-ops,ou=groups,dc=github,dc=com
27
-
28
- dn: cn=enterprise-devs,ou=groups,dc=github,dc=com
29
- cn: enterprise-devs
30
- objectClass: groupOfNames
31
- member: uid=benburkert,ou=users,dc=github,dc=com
32
- member: cn=enterprise,ou=groups,dc=github,dc=com
33
-
34
- dn: cn=enterprise-ops,ou=groups,dc=github,dc=com
35
- cn: enterprise-ops
36
- objectClass: groupOfNames
37
- member: uid=sbryant,ou=users,dc=github,dc=com
38
- member: cn=spaniards,ou=groups,dc=github,dc=com
39
-
40
- # The last member of this group is missing on purpose.
41
- # See: https://github.com/github/github-ldap/pull/18
42
- dn: cn=spaniards,ou=groups,dc=github,dc=com
43
- cn: spaniards
44
- objectClass: groupOfNames
45
- member: uid=calavera,ou=users,dc=github,dc=com
46
- member: uid=rubiojr,ou=users,dc=github,dc=com
47
- member: uid=felipe,ou=users,dc=github,dc=com
48
-
49
- # Users
50
-
51
- dn: ou=users,dc=github,dc=com
52
- objectclass: organizationalUnit
53
-
54
- dn: uid=calavera,ou=users,dc=github,dc=com
55
- cn: David Calavera
56
- cn: David
57
- sn: Calavera
58
- uid: calavera
59
- userPassword: passworD1
60
- mail: calavera@github.com
61
- objectClass: inetOrgPerson
62
-
63
- dn: uid=benburkert,ou=users,dc=github,dc=com
64
- cn: benburkert
65
- sn: benburkert
66
- uid: benburkert
67
- userPassword: passworD1
68
- mail: benburkert@github.com
69
- objectClass: inetOrgPerson
70
-
71
- dn: uid=sbryant,ou=users,dc=github,dc=com
72
- cn: sbryant
73
- sn: sbryant
74
- uid: sbryant
75
- userPassword: passworD1
76
- mail: sbryant@github.com
77
- objectClass: inetOrgPerson
78
-
79
- dn: uid=rubiojr,ou=users,dc=github,dc=com
80
- cn: rubiojr
81
- sn: rubiojr
82
- uid: rubiojr
83
- userPassword: passworD1
84
- mail: rubiojr@github.com
85
- objectClass: inetOrgPerson
@@ -1,50 +0,0 @@
1
- version: 1
2
-
3
- # Admin user
4
-
5
- dn: uid=admin,dc=github,dc=com
6
- objectClass: top
7
- objectClass: person
8
- objectClass: organizationalPerson
9
- objectClass: inetOrgPerson
10
- cn: system administrator
11
- sn: administrator
12
- displayName: Directory Superuser
13
- uid: admin
14
- userPassword: secret
15
-
16
- # Groups
17
-
18
- dn: ou=groups,dc=github,dc=com
19
- objectclass: organizationalUnit
20
- ou: groups
21
-
22
- # Posix Groups
23
-
24
- dn: cn=enterprise-posix-devs,ou=groups,dc=github,dc=com
25
- cn: enterprise-posix-devs
26
- objectClass: posixGroup
27
- memberUid: benburkert
28
- memberUid: mtodd
29
-
30
- # Users
31
-
32
- dn: ou=users,dc=github,dc=com
33
- objectclass: organizationalUnit
34
- ou: users
35
-
36
- dn: uid=benburkert,ou=users,dc=github,dc=com
37
- cn: benburkert
38
- sn: benburkert
39
- uid: benburkert
40
- userPassword: passworD1
41
- mail: benburkert@github.com
42
- objectClass: inetOrgPerson
43
-
44
- dn: uid=mtodd,ou=users,dc=github,dc=com
45
- cn: mtodd
46
- sn: mtodd
47
- uid: mtodd
48
- userPassword: passworD1
49
- mail: mtodd@github.com
50
- objectClass: inetOrgPerson
@@ -1,146 +0,0 @@
1
- version: 1
2
-
3
- # Admin user
4
-
5
- dn: uid=admin,dc=github,dc=com
6
- objectClass: top
7
- objectClass: person
8
- objectClass: organizationalPerson
9
- objectClass: inetOrgPerson
10
- cn: system administrator
11
- sn: administrator
12
- displayName: Directory Superuser
13
- uid: admin
14
- userPassword: secret
15
-
16
- # Groups
17
-
18
- dn: ou=groups,dc=github,dc=com
19
- objectclass: organizationalUnit
20
- ou: groups
21
-
22
- dn: cn=enterprise,ou=groups,dc=github,dc=com
23
- cn: Enterprise
24
- objectClass: groupOfNames
25
- member: uid=calavera,ou=users,dc=github,dc=com
26
- member: cn=enterprise-devs,ou=groups,dc=github,dc=com
27
- member: cn=enterprise-ops,ou=groups,dc=github,dc=com
28
-
29
- dn: cn=enterprise-devs,ou=groups,dc=github,dc=com
30
- cn: enterprise-devs
31
- objectClass: groupOfNames
32
- member: uid=benburkert,ou=users,dc=github,dc=com
33
-
34
- dn: cn=enterprise-ops,ou=groups,dc=github,dc=com
35
- cn: enterprise-ops
36
- objectClass: groupOfNames
37
- member: uid=sbryant,ou=users,dc=github,dc=com
38
- member: cn=spaniards,ou=groups,dc=github,dc=com
39
-
40
- dn: cn=spaniards,ou=groups,dc=github,dc=com
41
- cn: spaniards
42
- objectClass: groupOfNames
43
- member: uid=calavera,ou=users,dc=github,dc=com
44
- member: uid=rubiojr,ou=users,dc=github,dc=com
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
-
69
- # Users
70
-
71
- dn: ou=users,dc=github,dc=com
72
- objectclass: organizationalUnit
73
- ou: users
74
-
75
- dn: uid=calavera,ou=users,dc=github,dc=com
76
- cn: David Calavera
77
- cn: David
78
- sn: Calavera
79
- uid: calavera
80
- userPassword: passworD1
81
- mail: calavera@github.com
82
- objectClass: inetOrgPerson
83
-
84
- dn: uid=benburkert,ou=users,dc=github,dc=com
85
- cn: benburkert
86
- sn: benburkert
87
- uid: benburkert
88
- userPassword: passworD1
89
- mail: benburkert@github.com
90
- objectClass: inetOrgPerson
91
-
92
- dn: uid=sbryant,ou=users,dc=github,dc=com
93
- cn: sbryant
94
- sn: sbryant
95
- uid: sbryant
96
- userPassword: passworD1
97
- mail: sbryant@github.com
98
- objectClass: inetOrgPerson
99
-
100
- dn: uid=rubiojr,ou=users,dc=github,dc=com
101
- cn: rubiojr
102
- sn: rubiojr
103
- uid: rubiojr
104
- userPassword: passworD1
105
- mail: rubiojr@github.com
106
- objectClass: inetOrgPerson
107
-
108
- dn: uid=mtodd,ou=users,dc=github,dc=com
109
- cn: mtodd
110
- sn: mtodd
111
- uid: mtodd
112
- userPassword: passworD1
113
- mail: mtodd@github.com
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