mit-ldap 0.0.1 → 0.2.0
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.
- data/lib/mit/ldap/version.rb +1 -1
- data/lib/mit/ldap.rb +23 -2
- data/lib/mit-ldap.rb +18 -6
- data/mit-ldap.gemspec +3 -3
- data/spec/ldap_spec.rb +54 -0
- data/spec/mit_spec.rb +16 -0
- metadata +15 -17
- data/lib/mit/ldap/search.rb +0 -27
- data/spec/lib/ldap/search_spec.rb +0 -19
- data/spec/lib/mit_spec.rb +0 -15
data/lib/mit/ldap/version.rb
CHANGED
data/lib/mit/ldap.rb
CHANGED
@@ -1,2 +1,23 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
module MIT
|
2
|
+
module LDAP
|
3
|
+
|
4
|
+
class << self
|
5
|
+
attr_accessor :connection
|
6
|
+
end
|
7
|
+
|
8
|
+
def self.connect!
|
9
|
+
if MIT.on_campus?
|
10
|
+
self.connection = ::LDAP::Conn.new('ldap-too.mit.edu')
|
11
|
+
singleton_class.send(:include,
|
12
|
+
Ldaptic::Module(
|
13
|
+
adapter: :ldap_conn,
|
14
|
+
connection: connection,
|
15
|
+
host: 'ldap-too.mit.edu',
|
16
|
+
base: 'dc=mit,dc=edu',
|
17
|
+
)
|
18
|
+
)
|
19
|
+
end
|
20
|
+
return !self.connection.nil?
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
data/lib/mit-ldap.rb
CHANGED
@@ -1,14 +1,26 @@
|
|
1
|
+
require 'rbconfig'
|
2
|
+
require 'ldap'
|
3
|
+
require 'ldaptic'
|
4
|
+
|
1
5
|
module MIT
|
2
6
|
|
3
|
-
|
4
|
-
|
5
|
-
|
7
|
+
class << self
|
8
|
+
|
9
|
+
def on_campus?
|
10
|
+
ip_addresses.split(/\n/).map { |ip| !(ip =~ /^18\./).nil? }.any?
|
11
|
+
end
|
6
12
|
|
7
|
-
|
13
|
+
private
|
8
14
|
|
9
|
-
|
10
|
-
|
15
|
+
def ip_addresses
|
16
|
+
if RbConfig::CONFIG['host_os'] =~ /darwin/
|
17
|
+
`ifconfig | awk '/inet / {print $2}'`
|
18
|
+
else
|
19
|
+
`ifconfig | sed -rn 's/.*r:([^ ]+) .*/\1/p'`
|
20
|
+
end
|
21
|
+
end
|
11
22
|
end
|
12
23
|
end
|
13
24
|
|
14
25
|
require 'mit/ldap'
|
26
|
+
require 'mit/ldap/version'
|
data/mit-ldap.gemspec
CHANGED
@@ -7,9 +7,9 @@ Gem::Specification.new do |s|
|
|
7
7
|
s.version = MIT::LDAP::VERSION
|
8
8
|
s.authors = ["Eduardo Gutierrez"]
|
9
9
|
s.email = ["edd_d@mit.edu"]
|
10
|
-
s.homepage = ""
|
11
|
-
s.summary = %q{
|
12
|
-
s.description = %q{
|
10
|
+
s.homepage = "https://github.com/ecbypi/mit-ldap"
|
11
|
+
s.summary = %q{Ruby interface for querying MIT LDAP server}
|
12
|
+
s.description = %q{Ruby interface for querying MIT LDAP server (only if you're on MITnet)}
|
13
13
|
|
14
14
|
s.rubyforge_project = "mit-ldap"
|
15
15
|
|
data/spec/ldap_spec.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
require 'mit-ldap'
|
2
|
+
|
3
|
+
module MIT
|
4
|
+
describe LDAP do
|
5
|
+
|
6
|
+
# Use the legacy MIT ldap server that is accessible from off campus
|
7
|
+
# so we can use a LDAP::Conn instance for stubbing tests
|
8
|
+
#
|
9
|
+
# Server is not properly configured so the attributes required
|
10
|
+
# by Ldaptic when configuring class hierarchy do not exist resulting
|
11
|
+
# searches failing (i.e., this method should only be used to get around
|
12
|
+
# ldap-too only being accessible from campus
|
13
|
+
def stub_ldap_connection
|
14
|
+
@connection = ::LDAP::Conn.new('ldap.mit.edu')
|
15
|
+
::LDAP::Conn.stub(:new).and_return(@connection)
|
16
|
+
end
|
17
|
+
|
18
|
+
def stub_ldaptic_include
|
19
|
+
Ldaptic.stub(:Module).and_return(MIT::LDAP)
|
20
|
+
end
|
21
|
+
|
22
|
+
describe ".connect!" do
|
23
|
+
describe "when off campus" do
|
24
|
+
it "returns false" do
|
25
|
+
MIT.stub(:on_campus?).and_return(false)
|
26
|
+
LDAP.connect!.should be_false
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
describe "when on campus" do
|
31
|
+
before :each do
|
32
|
+
MIT.stub(:on_campus?).and_return(true)
|
33
|
+
stub_ldap_connection
|
34
|
+
stub_ldaptic_include
|
35
|
+
end
|
36
|
+
|
37
|
+
it "sets up ldap connection" do
|
38
|
+
::LDAP::Conn.should_receive(:new).with('ldap-too.mit.edu')
|
39
|
+
LDAP.connect!
|
40
|
+
end
|
41
|
+
|
42
|
+
it "includes Ldaptic::Module" do
|
43
|
+
Ldaptic.should_receive(:Module).
|
44
|
+
with(adapter: :ldap_conn,
|
45
|
+
base: 'dc=mit,dc=edu',
|
46
|
+
connection: @connection,
|
47
|
+
host: 'ldap-too.mit.edu'
|
48
|
+
)
|
49
|
+
LDAP.connect!
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
53
|
+
end
|
54
|
+
end
|
data/spec/mit_spec.rb
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
require 'mit-ldap'
|
2
|
+
|
3
|
+
describe MIT do
|
4
|
+
|
5
|
+
describe ".on_campus?" do
|
6
|
+
it "returns true if IP starts with 18" do
|
7
|
+
MIT.stub(:ip_addresses).and_return("18.0.0.0\n127.0.0.1")
|
8
|
+
MIT.on_campus?.should be_true
|
9
|
+
end
|
10
|
+
|
11
|
+
it "returns false if no network device has a campus address" do
|
12
|
+
MIT.stub(:ip_addresses).and_return("192.168.1.2\n127.0.0.1")
|
13
|
+
MIT.on_campus?.should be_false
|
14
|
+
end
|
15
|
+
end
|
16
|
+
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mit-ldap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0
|
4
|
+
version: 0.2.0
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-
|
12
|
+
date: 2012-04-09 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: ldaptic
|
16
|
-
requirement: &
|
16
|
+
requirement: &70244886779820 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0.2'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70244886779820
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: ruby-ldap
|
27
|
-
requirement: &
|
27
|
+
requirement: &70244886779300 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ~>
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0.9'
|
33
33
|
type: :runtime
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70244886779300
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70244886778820 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ~>
|
@@ -43,8 +43,8 @@ dependencies:
|
|
43
43
|
version: '2.0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
47
|
-
description:
|
46
|
+
version_requirements: *70244886778820
|
47
|
+
description: Ruby interface for querying MIT LDAP server (only if you're on MITnet)
|
48
48
|
email:
|
49
49
|
- edd_d@mit.edu
|
50
50
|
executables: []
|
@@ -59,12 +59,11 @@ files:
|
|
59
59
|
- Rakefile
|
60
60
|
- lib/mit-ldap.rb
|
61
61
|
- lib/mit/ldap.rb
|
62
|
-
- lib/mit/ldap/search.rb
|
63
62
|
- lib/mit/ldap/version.rb
|
64
63
|
- mit-ldap.gemspec
|
65
|
-
- spec/
|
66
|
-
- spec/
|
67
|
-
homepage:
|
64
|
+
- spec/ldap_spec.rb
|
65
|
+
- spec/mit_spec.rb
|
66
|
+
homepage: https://github.com/ecbypi/mit-ldap
|
68
67
|
licenses: []
|
69
68
|
post_install_message:
|
70
69
|
rdoc_options: []
|
@@ -87,8 +86,7 @@ rubyforge_project: mit-ldap
|
|
87
86
|
rubygems_version: 1.8.11
|
88
87
|
signing_key:
|
89
88
|
specification_version: 3
|
90
|
-
summary:
|
89
|
+
summary: Ruby interface for querying MIT LDAP server
|
91
90
|
test_files:
|
92
|
-
- spec/
|
93
|
-
- spec/
|
94
|
-
has_rdoc:
|
91
|
+
- spec/ldap_spec.rb
|
92
|
+
- spec/mit_spec.rb
|
data/lib/mit/ldap/search.rb
DELETED
@@ -1,27 +0,0 @@
|
|
1
|
-
require 'ldap'
|
2
|
-
require 'ldaptic'
|
3
|
-
|
4
|
-
module MIT
|
5
|
-
module LDAP
|
6
|
-
module Search
|
7
|
-
if MIT.on_campus_network?
|
8
|
-
include Ldaptic::Module(
|
9
|
-
host: 'ldap-too.mit.edu',
|
10
|
-
base: 'dc=mit,dc=edu',
|
11
|
-
adapter: :ldap_conn
|
12
|
-
)
|
13
|
-
else
|
14
|
-
class InetOrgPerson
|
15
|
-
end
|
16
|
-
|
17
|
-
def self.search(*args)
|
18
|
-
[]
|
19
|
-
end
|
20
|
-
|
21
|
-
def self.find(*args)
|
22
|
-
InetOrgPerson.new
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,19 +0,0 @@
|
|
1
|
-
require 'mit-ldap'
|
2
|
-
|
3
|
-
module MIT
|
4
|
-
module LDAP
|
5
|
-
describe Search do
|
6
|
-
if MIT.on_campus_network?
|
7
|
-
it "includes Ldaptic::Module" do
|
8
|
-
should respond_to :search
|
9
|
-
should respond_to :find
|
10
|
-
end
|
11
|
-
else
|
12
|
-
it "defines stubs that return empty arrays" do
|
13
|
-
Search.search.should eq []
|
14
|
-
Search.find.should be_instance_of Search::InetOrgPerson
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
data/spec/lib/mit_spec.rb
DELETED
@@ -1,15 +0,0 @@
|
|
1
|
-
require 'mit-ldap'
|
2
|
-
|
3
|
-
describe MIT do
|
4
|
-
|
5
|
-
describe ".on_campus_network?" do
|
6
|
-
it "confirms if we're on the campus network meaning we have a .mit.edu hostname" do
|
7
|
-
|
8
|
-
MIT.stub(:hostname).and_return('localhost')
|
9
|
-
MIT.on_campus_network?.should eq false
|
10
|
-
|
11
|
-
MIT.stub(:hostname).and_return('server.mit.edu')
|
12
|
-
MIT.on_campus_network?.should eq true
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|