-
Notifications
You must be signed in to change notification settings - Fork 27
Merge dev-v2 branch into master #50
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
How could I forget.
Didn't match DN so resulted in false positives.
Membership Validators
Helpful for debugging since quiet will override verbose in practice.
The original posixGroup schema was mostly made up, so this duplicates the reference: http://www.zytrax.com/books/ldap/ape/nis.html
Add CI build for OpenLDAP integration
Fix membership validation tests
module MembershipValidators | ||
autoload :Base, 'github/ldap/membership_validators/base' | ||
autoload :Classic, 'github/ldap/membership_validators/classic' | ||
autoload :Recursive, 'github/ldap/membership_validators/recursive' |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@jch will want to change this from autoload
since it's deprecated (thanks for the pointer).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍
Pass through search options for GitHub::Ldap::Domain#user?
Removed deprecated autoload. h/t @jch
🚢 I think we can make further tweaks from master as needed. I only skimmed over this since we've reviewed them separately in other PR's. |
This PR merges in the
dev-v2
branch into master, including these fixes:This does not signify that v2 is ready, just that this code is at a point where we want to keep iterating on master and that v2 is on the horizon.
Membership Validation
This introduces
MembershipValidators
module withClassic
andRecursive
(with more to come) objects intended to replace the expensive/inefficientGitHub::Ldap::Domain#is_member?
method. (TheClassic
strategy wraps that method so it's still available if required.)The
GitHub::Ldap::MembershipValidators::Recursive
strategy efficiently determines whether a user is a member of any of the supplied groups, recursing down a chain until membership is validated, no more groups can be checked, or we hit the maximum depth. Very little data is transferred to the client side for these queried, resulting in much faster operation and much less data transferred over the wire.An ActiveDirectory-specific strategy is planned before v2.
Tests
cc @jch