authpds 0.2.0 → 0.2.1

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.
Files changed (44) hide show
  1. data/README.rdoc +1 -3
  2. data/Rakefile +1 -2
  3. data/lib/authpds.rb +4 -14
  4. data/lib/authpds/acts_as_authentic.rb +3 -60
  5. data/lib/authpds/acts_as_authentic/core_attributes.rb +24 -0
  6. data/lib/authpds/acts_as_authentic/expiration.rb +19 -0
  7. data/lib/authpds/acts_as_authentic/institutions_attributes.rb +34 -0
  8. data/lib/authpds/controllers/authpds_controller.rb +3 -61
  9. data/lib/authpds/controllers/authpds_controller/core_attributes.rb +24 -0
  10. data/lib/authpds/controllers/authpds_controller/institution_attributes.rb +54 -0
  11. data/lib/authpds/controllers/authpds_controller/url_handling.rb +18 -0
  12. data/lib/authpds/controllers/authpds_sessions_controller.rb +0 -1
  13. data/lib/authpds/session.rb +15 -247
  14. data/lib/authpds/session/authentication.rb +24 -0
  15. data/lib/authpds/session/authlogic_callbacks.rb +12 -0
  16. data/lib/authpds/session/authorization.rb +16 -0
  17. data/lib/authpds/session/callbacks.rb +30 -0
  18. data/lib/authpds/session/config.rb +60 -0
  19. data/lib/authpds/session/core_attributes.rb +45 -0
  20. data/lib/authpds/session/exception_handling.rb +22 -0
  21. data/lib/authpds/session/institution_attributes.rb +15 -0
  22. data/lib/authpds/session/pds_user.rb +17 -0
  23. data/lib/authpds/session/record.rb +32 -0
  24. data/lib/authpds/session/url_handling.rb +55 -0
  25. data/lib/authpds/version.rb +1 -1
  26. data/test/{unit/authpds_controller_test.rb → authpds_controller_test.rb} +19 -11
  27. data/test/{unit/authpds_user_sessions_controller_test.rb → authpds_user_sessions_controller_test.rb} +3 -1
  28. data/test/fixtures/users.yml +2 -2
  29. data/test/pds_test.rb +83 -0
  30. data/test/support/config/institutions.yml +4 -4
  31. data/test/test_helper.rb +10 -4
  32. data/test/{unit/user_session_test.rb → user_session_test.rb} +34 -28
  33. data/test/{unit/user_test.rb → user_test.rb} +2 -2
  34. data/test/vcr_cassettes/bor_info_valid_newschool.yml +35 -0
  35. data/test/vcr_cassettes/bor_info_valid_nyu.yml +40 -0
  36. data/test/vcr_cassettes/get_attribute_authenticate.yml +36 -0
  37. data/test/vcr_cassettes/get_attribute_bor_id.yml +32 -0
  38. data/test/vcr_cassettes/get_attribute_bor_info.yml +40 -0
  39. data/test/vcr_cassettes/get_attribute_bor_verification.yml +32 -0
  40. data/test/vcr_cassettes/get_attribute_invalid_bor_info.yml +33 -0
  41. data/test/vcr_cassettes/invalid_bor_info.yml +33 -0
  42. data/test/vcr_cassettes/nyu.yml +40 -0
  43. metadata +104 -21
  44. data/test/unit/pds_test.rb +0 -62
@@ -0,0 +1,40 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: https://logindev.library.nyu.edu/pds
6
+ body:
7
+ encoding: US-ASCII
8
+ string: func=get-attribute&attribute=bor_info&calling_system=authpds&pds_handle=12112012141859298424685706599355
9
+ headers:
10
+ Accept:
11
+ - ! '*/*'
12
+ User-Agent:
13
+ - Ruby
14
+ response:
15
+ status:
16
+ code: 200
17
+ message: OK
18
+ headers:
19
+ Date:
20
+ - Mon, 12 Nov 2012 19:21:03 GMT
21
+ Server:
22
+ - Apache/2.2.15 (Unix) mod_ssl/2.2.15 OpenSSL/0.9.8n mod_perl/2.0.4 Perl/v5.8.9
23
+ Transfer-Encoding:
24
+ - chunked
25
+ Content-Type:
26
+ - text/html; charset=UTF-8
27
+ body:
28
+ encoding: US-ASCII
29
+ string: ! '<?xml version = "1.0" encoding = "UTF-8"?><bor-info><id>N12162279</id><expiry-date>20121031</expiry-date><alpha>L</alpha><birth-date>00000000</birth-date><con-lng>ENG</con-lng><delinq-1>00</delinq-1><delinq-1-update-date>00000000</delinq-1-update-date><delinq-2>03</delinq-2><delinq-2-cat-name>CROWEC</delinq-2-cat-name><delinq-2-update-date>20120619</delinq-2-update-date><delinq-3>00</delinq-3><delinq-3-update-date>00000000</delinq-3-update-date><delinq-n-2>Added
30
+ to arrears</delinq-n-2><field-2>Added to Arrears 6/19/12 CTC</field-2><home-library>BOBST</home-library><id>N12162279</id><name>DALTON,SCOT
31
+ THOMAS</name><name-key>dalton scot thomas N12162279</name-key><open-date>20041119</open-date><update-date>20120728</update-date><address-0>DALTON,SCOT
32
+ THOMAS</address-0><address-1>274 PROSPECT PARK WEST, #2L</address-1><address-2>BROOKLYN</address-2><address-3>NY</address-3><zip>11215</zip><bor-status>51</bor-status><expiry-date>20121031</expiry-date><barcode>21142224061247</barcode><bor-status>51</bor-status><bor-type>CB</bor-type><name>SCOT
33
+ THOMAS</name><email>std5@nyu.edu</email><cn>DALTON,SCOT THOMAS</cn><givenname>SCOT
34
+ THOMAS</givenname><sn>DALTON</sn><verification>DALT</verification><nyuidn>N12162279</nyuidn><ill-permission>Y</ill-permission><college_code>GA</college_code><college_name>Graduate
35
+ School of Arts and Science</college_name><dept_code>CSCI</dept_code><dept_name>DIVISION
36
+ OF LIBRARIES</dept_name><major_code>GAINFOMS</major_code><major>Information
37
+ Systems</major><email_address>std5@nyu.edu</email_address><institute>NYU</institute></bor-info>'
38
+ http_version:
39
+ recorded_at: Mon, 12 Nov 2012 19:21:03 GMT
40
+ recorded_with: VCR 2.3.0
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: authpds
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.2.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,8 +9,24 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-11-10 00:00:00.000000000 Z
12
+ date: 2012-11-12 00:00:00.000000000 Z
13
13
  dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: require_all
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ~>
20
+ - !ruby/object:Gem::Version
21
+ version: 1.2.1
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ~>
28
+ - !ruby/object:Gem::Version
29
+ version: 1.2.1
14
30
  - !ruby/object:Gem::Dependency
15
31
  name: rails
16
32
  requirement: !ruby/object:Gem::Requirement
@@ -50,7 +66,7 @@ dependencies:
50
66
  requirements:
51
67
  - - ~>
52
68
  - !ruby/object:Gem::Version
53
- version: 1.5.5
69
+ version: 1.5.0
54
70
  type: :runtime
55
71
  prerelease: false
56
72
  version_requirements: !ruby/object:Gem::Requirement
@@ -58,7 +74,7 @@ dependencies:
58
74
  requirements:
59
75
  - - ~>
60
76
  - !ruby/object:Gem::Version
61
- version: 1.5.5
77
+ version: 1.5.0
62
78
  - !ruby/object:Gem::Dependency
63
79
  name: institutions
64
80
  requirement: !ruby/object:Gem::Requirement
@@ -76,21 +92,53 @@ dependencies:
76
92
  - !ruby/object:Gem::Version
77
93
  version: '0'
78
94
  - !ruby/object:Gem::Dependency
79
- name: sqlite3
95
+ name: rake
80
96
  requirement: !ruby/object:Gem::Requirement
81
97
  none: false
82
98
  requirements:
83
- - - ! '>='
99
+ - - ~>
84
100
  - !ruby/object:Gem::Version
85
- version: '0'
101
+ version: 0.9.2.2
86
102
  type: :development
87
103
  prerelease: false
88
104
  version_requirements: !ruby/object:Gem::Requirement
89
105
  none: false
90
106
  requirements:
91
- - - ! '>='
107
+ - - ~>
92
108
  - !ruby/object:Gem::Version
93
- version: '0'
109
+ version: 0.9.2.2
110
+ - !ruby/object:Gem::Dependency
111
+ name: vcr
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ~>
116
+ - !ruby/object:Gem::Version
117
+ version: 2.3.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ~>
124
+ - !ruby/object:Gem::Version
125
+ version: 2.3.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: webmock
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ~>
132
+ - !ruby/object:Gem::Version
133
+ version: 1.9.0
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ~>
140
+ - !ruby/object:Gem::Version
141
+ version: 1.9.0
94
142
  description: Libraries that use Ex Libris products, can integrate Rails application
95
143
  with PDS to provide single sign-on across systems.
96
144
  email:
@@ -99,10 +147,27 @@ executables: []
99
147
  extensions: []
100
148
  extra_rdoc_files: []
101
149
  files:
150
+ - lib/authpds/acts_as_authentic/core_attributes.rb
151
+ - lib/authpds/acts_as_authentic/expiration.rb
152
+ - lib/authpds/acts_as_authentic/institutions_attributes.rb
102
153
  - lib/authpds/acts_as_authentic.rb
154
+ - lib/authpds/controllers/authpds_controller/core_attributes.rb
155
+ - lib/authpds/controllers/authpds_controller/institution_attributes.rb
156
+ - lib/authpds/controllers/authpds_controller/url_handling.rb
103
157
  - lib/authpds/controllers/authpds_controller.rb
104
158
  - lib/authpds/controllers/authpds_sessions_controller.rb
105
159
  - lib/authpds/exlibris/pds.rb
160
+ - lib/authpds/session/authentication.rb
161
+ - lib/authpds/session/authlogic_callbacks.rb
162
+ - lib/authpds/session/authorization.rb
163
+ - lib/authpds/session/callbacks.rb
164
+ - lib/authpds/session/config.rb
165
+ - lib/authpds/session/core_attributes.rb
166
+ - lib/authpds/session/exception_handling.rb
167
+ - lib/authpds/session/institution_attributes.rb
168
+ - lib/authpds/session/pds_user.rb
169
+ - lib/authpds/session/record.rb
170
+ - lib/authpds/session/url_handling.rb
106
171
  - lib/authpds/session.rb
107
172
  - lib/authpds/version.rb
108
173
  - lib/authpds.rb
@@ -110,17 +175,26 @@ files:
110
175
  - MIT-LICENSE
111
176
  - Rakefile
112
177
  - README.rdoc
178
+ - test/authpds_controller_test.rb
113
179
  - test/authpds_test.rb
180
+ - test/authpds_user_sessions_controller_test.rb
114
181
  - test/fixtures/users.yml
182
+ - test/pds_test.rb
115
183
  - test/support/config/institutions.yml
116
184
  - test/support/user.rb
117
185
  - test/support/user_session.rb
118
186
  - test/test_helper.rb
119
- - test/unit/authpds_controller_test.rb
120
- - test/unit/authpds_user_sessions_controller_test.rb
121
- - test/unit/pds_test.rb
122
- - test/unit/user_session_test.rb
123
- - test/unit/user_test.rb
187
+ - test/user_session_test.rb
188
+ - test/user_test.rb
189
+ - test/vcr_cassettes/bor_info_valid_newschool.yml
190
+ - test/vcr_cassettes/bor_info_valid_nyu.yml
191
+ - test/vcr_cassettes/get_attribute_authenticate.yml
192
+ - test/vcr_cassettes/get_attribute_bor_id.yml
193
+ - test/vcr_cassettes/get_attribute_bor_info.yml
194
+ - test/vcr_cassettes/get_attribute_bor_verification.yml
195
+ - test/vcr_cassettes/get_attribute_invalid_bor_info.yml
196
+ - test/vcr_cassettes/invalid_bor_info.yml
197
+ - test/vcr_cassettes/nyu.yml
124
198
  homepage: http://github.com/scotdalton/authpds
125
199
  licenses: []
126
200
  post_install_message:
@@ -135,7 +209,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
135
209
  version: '0'
136
210
  segments:
137
211
  - 0
138
- hash: -3555265848561160058
212
+ hash: 890743191205962912
139
213
  required_rubygems_version: !ruby/object:Gem::Requirement
140
214
  none: false
141
215
  requirements:
@@ -144,7 +218,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
144
218
  version: '0'
145
219
  segments:
146
220
  - 0
147
- hash: -3555265848561160058
221
+ hash: 890743191205962912
148
222
  requirements: []
149
223
  rubyforge_project:
150
224
  rubygems_version: 1.8.24
@@ -153,14 +227,23 @@ specification_version: 3
153
227
  summary: Allows applications to use Ex Libris' Patron Directory Service (PDS) for
154
228
  authentication.
155
229
  test_files:
230
+ - test/authpds_controller_test.rb
156
231
  - test/authpds_test.rb
232
+ - test/authpds_user_sessions_controller_test.rb
157
233
  - test/fixtures/users.yml
234
+ - test/pds_test.rb
158
235
  - test/support/config/institutions.yml
159
236
  - test/support/user.rb
160
237
  - test/support/user_session.rb
161
238
  - test/test_helper.rb
162
- - test/unit/authpds_controller_test.rb
163
- - test/unit/authpds_user_sessions_controller_test.rb
164
- - test/unit/pds_test.rb
165
- - test/unit/user_session_test.rb
166
- - test/unit/user_test.rb
239
+ - test/user_session_test.rb
240
+ - test/user_test.rb
241
+ - test/vcr_cassettes/bor_info_valid_newschool.yml
242
+ - test/vcr_cassettes/bor_info_valid_nyu.yml
243
+ - test/vcr_cassettes/get_attribute_authenticate.yml
244
+ - test/vcr_cassettes/get_attribute_bor_id.yml
245
+ - test/vcr_cassettes/get_attribute_bor_info.yml
246
+ - test/vcr_cassettes/get_attribute_bor_verification.yml
247
+ - test/vcr_cassettes/get_attribute_invalid_bor_info.yml
248
+ - test/vcr_cassettes/invalid_bor_info.yml
249
+ - test/vcr_cassettes/nyu.yml
@@ -1,62 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PdsTest < ActiveSupport::TestCase
4
-
5
- def setup
6
- @pds_url = "https://logindev.library.nyu.edu"
7
- @calling_system = "authpds"
8
- @valid_pds_handle_for_nyu = VALID_PDS_HANDLE_FOR_NYU
9
- @valid_pds_handle_for_newschool = VALID_PDS_HANDLE_FOR_NEWSCHOOL
10
- @invalid_pds_handle = INVALID_PDS_HANDLE
11
- @attribute = "bor_info"
12
- end
13
-
14
- test "get_attribute_valid" do
15
- get_attribute = Authpds::Exlibris::Pds::GetAttribute.new(@pds_url, @calling_system, @valid_pds_handle_for_nyu, "bor_info")
16
- assert_equal("N12162279", get_attribute.response.at("//id").inner_text)
17
- get_attribute = Authpds::Exlibris::Pds::GetAttribute.new(@pds_url, @calling_system, @valid_pds_handle_for_nyu, "bor_verification")
18
- assert_equal("N12162279", get_attribute.response.at("//id").inner_text)
19
- get_attribute = Authpds::Exlibris::Pds::GetAttribute.new(@pds_url, @calling_system, @valid_pds_handle_for_nyu, "bor_id")
20
- assert_equal("N12162279", get_attribute.response.at("//id").inner_text)
21
- get_attribute = Authpds::Exlibris::Pds::GetAttribute.new(@pds_url, @calling_system, @valid_pds_handle_for_nyu, "authenticate")
22
- assert_equal("N12162279", get_attribute.response.at("//id").inner_text)
23
- end
24
-
25
- test "get_attribute_invalid" do
26
- get_attribute = Authpds::Exlibris::Pds::GetAttribute.new(@pds_url, @calling_system, @invalid_pds_handle, "bor_info")
27
- assert_equal("Error User does not exist", get_attribute.error)
28
- end
29
-
30
- test "bor_info_valid_nyu" do
31
- nyu = Authpds::Exlibris::Pds::BorInfo.new(@pds_url, @calling_system, @valid_pds_handle_for_nyu)
32
- assert_equal("N12162279", nyu.id)
33
- assert_equal("N12162279", nyu.nyuidn)
34
- assert_equal("51", nyu.bor_status)
35
- assert_equal("CB", nyu.bor_type)
36
- assert_equal("SCOT THOMAS", nyu.name)
37
- assert_equal("SCOT THOMAS", nyu.givenname)
38
- assert_equal("DALTON", nyu.sn)
39
- assert_equal("Y", nyu.ill_permission)
40
- assert_equal("GA", nyu.college_code)
41
- assert_equal("CSCI", nyu.dept_code)
42
- assert_equal("Information Systems", nyu.major)
43
- end
44
-
45
- test "bor_info_valid_newschool" do
46
- newschool = Authpds::Exlibris::Pds::BorInfo.new(@pds_url, @calling_system, @valid_pds_handle_for_newschool)
47
- assert_equal("N00206454", newschool.id)
48
- assert_equal("N00206454", newschool.nyuidn)
49
- assert_equal("31", newschool.bor_status)
50
- assert_equal("0", newschool.bor_type)
51
- assert_equal("true", newschool.newschool_ldap)
52
- assert_equal("Allen", newschool.name)
53
- assert_equal("Allen", newschool.givenname)
54
- assert_equal("Jones", newschool.sn)
55
- assert_equal("Y", newschool.ill_permission)
56
- end
57
-
58
- test "bor_info_invalid" do
59
- get_attribute = Authpds::Exlibris::Pds::BorInfo.new(@pds_url, @calling_system, @invalid_pds_handle)
60
- assert_equal("Error User does not exist", get_attribute.error)
61
- end
62
- end