yaleldap 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +27 -1
- data/lib/yaleldap/version.rb +4 -2
- data/lib/yaleldap.rb +49 -1
- data/yaleldap.gemspec +1 -1
- metadata +2 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 12d18261da5f2af81134acde14dda46077a89652
|
4
|
+
data.tar.gz: 5da0fffd53d2ec47c5486cec9f26a8a644da0ba9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5c3df73a33cf141c6383d1b6175ed7eb7413a62c22301e362719d276ffb1a36de89cc4221a228964e8aa2151ded3ab470657bbf662a30dbe648086c5e343b8d0
|
7
|
+
data.tar.gz: beac04df0d2afabfb7025b56f4bb7975746f77906b91a8169649b9df1ae65fd0b477fa0138e6e81945712a19744d981af498a6ffe20e472bd5b0ac4c7c67518d
|
data/README.md
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
[![Gem Version](https://badge.fury.io/rb/yaleldap.svg)](http://badge.fury.io/rb/yaleldap)
|
2
|
+
[![Dependency Status](https://gemnasium.com/YaleSTC/yaleldap.svg)](https://gemnasium.com/YaleSTC/yaleldap)
|
3
|
+
[![Inline docs](http://inch-ci.org/github/YaleSTC/yaleldap.png?branch=master)](http://inch-ci.org/github/YaleSTC/yaleldap)
|
4
|
+
|
1
5
|
# Yaleldap
|
2
6
|
|
3
7
|
Automatically connects to the LDAP server if you are on campus/VPN. Can be queried by UPI, and it will return a simple ruby hash with the relevant information.
|
@@ -18,9 +22,31 @@ Or install it yourself as:
|
|
18
22
|
|
19
23
|
## Usage
|
20
24
|
|
21
|
-
|
25
|
+
###UPI
|
26
|
+
```
|
27
|
+
YaleLDAP.lookup_by_upi("12714662")
|
28
|
+
=> {:first_name=>"Casey", :last_name=>"Watts", :yale_upi=>"12714662", :netid=>"csw3", :email=>"casey.watts@yale.edu", :collegename=>"", :college=>"", :class_year=>""}
|
29
|
+
```
|
30
|
+
|
31
|
+
###NetID
|
32
|
+
```
|
33
|
+
YaleLDAP.lookup_by_netid("csw3")
|
34
|
+
=> {:first_name=>"Casey", :last_name=>"Watts", :yale_upi=>"12714662", :netid=>"csw3", :email=>"casey.watts@yale.edu", :collegename=>"", :college=>"", :class_year=>""}
|
35
|
+
```
|
36
|
+
|
37
|
+
###Email
|
38
|
+
```
|
39
|
+
YaleLDAP.lookup_by_email("casey.watts@yale.edu")
|
40
|
+
=> {:first_name=>"Casey", :last_name=>"Watts", :yale_upi=>"12714662", :netid=>"csw3", :email=>"casey.watts@yale.edu", :collegename=>"", :college=>"", :class_year=>""}
|
41
|
+
```
|
42
|
+
|
43
|
+
|
44
|
+
## Documentation
|
45
|
+
The source code is documented on rdoc.info
|
22
46
|
|
47
|
+
<http://rdoc.info/github/YaleSTC/yaleldap/master/frames>
|
23
48
|
|
49
|
+
For more background on how the `net-ldap` gem works, check out this [Yale-specific gist](https://gist.github.com/caseywatts/ddea3996853050d1e5ad)
|
24
50
|
|
25
51
|
## Contributing
|
26
52
|
|
data/lib/yaleldap/version.rb
CHANGED
data/lib/yaleldap.rb
CHANGED
@@ -1,13 +1,32 @@
|
|
1
1
|
require "yaleldap/version"
|
2
2
|
require "net-ldap"
|
3
3
|
|
4
|
+
#YaleLDAP Module is xyz
|
4
5
|
module YaleLDAP
|
6
|
+
# Yale's LDAP Host
|
5
7
|
LDAP_HOST = 'directory.yale.edu'
|
8
|
+
|
9
|
+
# Yale's LDAP Port
|
6
10
|
LDAP_PORT = 389
|
11
|
+
|
12
|
+
# Specify to LDAP that we are searching for people
|
7
13
|
LDAP_BASE = 'ou=People,o=yale.edu'
|
14
|
+
|
15
|
+
# The most common Yale LDAP atttributes that we care about extracting
|
8
16
|
LDAP_ATTRS = %w(uid givenname sn mail collegename college class UPI)
|
9
17
|
|
10
|
-
|
18
|
+
##
|
19
|
+
# Lookup LDAP information by upi
|
20
|
+
#
|
21
|
+
# @param
|
22
|
+
# upi as a string, ex "12714662"
|
23
|
+
#
|
24
|
+
# @return
|
25
|
+
# Standard hash (see extract_attributes)
|
26
|
+
#
|
27
|
+
# @example
|
28
|
+
# YaleLDAP.lookup_by_upi("12714662")
|
29
|
+
|
11
30
|
def self.lookup_by_upi(upi)
|
12
31
|
ldap = Net::LDAP.new host: LDAP_HOST, port: LDAP_PORT
|
13
32
|
upifilter = Net::LDAP::Filter.eq('UPI', upi)
|
@@ -17,6 +36,18 @@ module YaleLDAP
|
|
17
36
|
extract_attributes(ldap_response)
|
18
37
|
end
|
19
38
|
|
39
|
+
##
|
40
|
+
# Lookup LDAP information by netid
|
41
|
+
#
|
42
|
+
# @param
|
43
|
+
# netid as a string, ex "csw3"
|
44
|
+
#
|
45
|
+
# @return
|
46
|
+
# Standard hash (see extract_attributes)
|
47
|
+
#
|
48
|
+
# @example
|
49
|
+
# YaleLDAP.lookup_by_netid("csw3")
|
50
|
+
#
|
20
51
|
def self.lookup_by_netid(netid)
|
21
52
|
ldap = Net::LDAP.new host: LDAP_HOST, port: LDAP_PORT
|
22
53
|
upifilter = Net::LDAP::Filter.eq('uid', netid)
|
@@ -26,6 +57,18 @@ module YaleLDAP
|
|
26
57
|
extract_attributes(ldap_response)
|
27
58
|
end
|
28
59
|
|
60
|
+
##
|
61
|
+
# Lookup LDAP information by Yale email address
|
62
|
+
#
|
63
|
+
# @param
|
64
|
+
# email as a string, ex "casey.watts@yale.edu"
|
65
|
+
#
|
66
|
+
# @return
|
67
|
+
# Standard hash (see extract_attributes)
|
68
|
+
#
|
69
|
+
# @example
|
70
|
+
# YaleLDAP.lookup_by_email("casey.watts@yale.edu")
|
71
|
+
#
|
29
72
|
def self.lookup_by_email(email)
|
30
73
|
ldap = Net::LDAP.new host: LDAP_HOST, port: LDAP_PORT
|
31
74
|
upifilter = Net::LDAP::Filter.eq('mail', email)
|
@@ -36,6 +79,11 @@ module YaleLDAP
|
|
36
79
|
end
|
37
80
|
|
38
81
|
private
|
82
|
+
#
|
83
|
+
# Input a raw LDAP response
|
84
|
+
#
|
85
|
+
# Output is a hash with keys: first_name, last_name, upi, netid, email, collegename, college, class_year
|
86
|
+
#
|
39
87
|
def self.extract_attributes(ldap_response)
|
40
88
|
# everyone has these
|
41
89
|
first_name = ldap_response[0][:givenname][0]
|
data/yaleldap.gemspec
CHANGED
@@ -5,7 +5,7 @@ require 'yaleldap/version'
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |spec|
|
7
7
|
spec.name = "yaleldap"
|
8
|
-
spec.version =
|
8
|
+
spec.version = YaleLDAP::VERSION
|
9
9
|
spec.authors = ["caseywatts"]
|
10
10
|
spec.email = ["casey.s.watts@gmail.com"]
|
11
11
|
spec.summary = %q{Easy connection to Yale's LDAP}
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yaleldap
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- caseywatts
|
@@ -93,3 +93,4 @@ signing_key:
|
|
93
93
|
specification_version: 4
|
94
94
|
summary: Easy connection to Yale's LDAP
|
95
95
|
test_files: []
|
96
|
+
has_rdoc:
|