github-ldap 1.0.5 → 1.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/github-ldap.gemspec CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  Gem::Specification.new do |spec|
4
4
  spec.name = "github-ldap"
5
- spec.version = "1.0.5"
5
+ spec.version = "1.0.6"
6
6
  spec.authors = ["David Calavera"]
7
7
  spec.email = ["david.calavera@gmail.com"]
8
8
  spec.description = %q{Ldap authentication for humans}
data/lib/github/ldap.rb CHANGED
@@ -3,7 +3,21 @@ module GitHub
3
3
  require 'net/ldap'
4
4
  require 'github/ldap/domain'
5
5
 
6
- attr_reader :connection
6
+ extend Forwardable
7
+
8
+ # Utility method to perform searches against the ldap server.
9
+ #
10
+ # It takes the same arguments than Net:::LDAP#search.
11
+ # Returns an Array with the entries that match the search.
12
+ # Returns nil if there are no entries that match the search.
13
+ def_delegator :@connection, :search
14
+
15
+ # Utility method to get the last operation result with a human friendly message.
16
+ #
17
+ # Returns an OpenStruct with `code` and `message`.
18
+ # If `code` is 0, the operation succeeded and there is no message.
19
+ def_delegator :@connection, :get_operation_result, :last_operation_result
20
+
7
21
 
8
22
  def initialize(options = {})
9
23
  @uid = options[:uid] || "sAMAccountName"
@@ -40,15 +54,7 @@ module GitHub
40
54
  # If `code` is 0, the operation succeeded and there is no message.
41
55
  def test_connection
42
56
  @connection.bind
43
- get_last_operation_result
44
- end
45
-
46
- # Utility method to get the last operation result with a human friendly message.
47
- #
48
- # Returns an OpenStruct with `code` and `message`.
49
- # If `code` is 0, the operation succeeded and there is no message.
50
- def get_last_operation_result
51
- @connection.get_operation_result
57
+ last_operation_result
52
58
  end
53
59
 
54
60
  # Creates a new domain object to perform operations
data/test/ldap_test.rb CHANGED
@@ -30,4 +30,15 @@ class GitHubLdapTest < Minitest::Test
30
30
  assert_equal :start_tls, @ldap.check_encryption('TLS')
31
31
  assert_equal :start_tls, @ldap.check_encryption(:start_tls)
32
32
  end
33
+
34
+ def test_search_delegator
35
+ user = @ldap.domain('dc=github,dc=com').valid_login? 'calavera', 'secret'
36
+
37
+ result = @ldap.search(
38
+ {:base => 'dc=github,dc=com',
39
+ :attributes => %w(uid),
40
+ :filter => Net::LDAP::Filter.eq('uid', 'calavera')})
41
+
42
+ assert_equal 'calavera', result.first[:uid].first
43
+ end
33
44
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: github-ldap
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.5
4
+ version: 1.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-07-09 00:00:00.000000000 Z
12
+ date: 2013-07-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: net-ldap