omniauth-aleph 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- data/Gemfile +1 -1
- data/README.md +148 -0
- data/lib/omniauth/aleph/adaptor.rb +1 -1
- data/lib/omniauth/aleph/version.rb +2 -2
- data/spec/omniauth/strategies/aleph_spec.rb +24 -25
- data/spec/vcr_cassettes/valid.yml +3 -4
- metadata +4 -4
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -23,3 +23,151 @@ Use the Aleph strategy as a middleware in your application:
|
|
23
23
|
use OmniAuth::Strategies::Aleph, title: 'My Library's Aleph',
|
24
24
|
host: 'aleph.library.edu', port: 80, library: 'ADM50', sub_library: 'SUB'
|
25
25
|
|
26
|
+
## Configuring
|
27
|
+
You can configure several options, which you pass in to the `provider` method via a `Hash`:
|
28
|
+
|
29
|
+
- `title`: title for the `request_phase` form; defaults to `Aleph Authentication`
|
30
|
+
- `scheme`: scheme for your Aleph X-Server as a String; defaults to `http`
|
31
|
+
- `host`: host name for your Aleph X-Server as a String; required
|
32
|
+
- `port`: port for your Aleph X-Server as an Integer; defaults to `80`
|
33
|
+
- `library`: Aleph administrative library for authentication; required
|
34
|
+
- `sub_library`: Aleph sub library for authentication; required
|
35
|
+
|
36
|
+
## Auth Hash
|
37
|
+
Here's an example _Auth Hash_ available in `request.env['omniauth.auth']`:
|
38
|
+
|
39
|
+
{
|
40
|
+
:provider => 'aleph',
|
41
|
+
:uid => 'USERNAME',
|
42
|
+
:info => {
|
43
|
+
:name => "USERNAME, TEST-RECORD",
|
44
|
+
:nickname => "USERNAME",
|
45
|
+
:email => "username@library.edu",
|
46
|
+
:phone => nil
|
47
|
+
},
|
48
|
+
:credentials => {},
|
49
|
+
:extra => {
|
50
|
+
:raw_info => {
|
51
|
+
:bor_auth => {
|
52
|
+
:z303 => {
|
53
|
+
:z303_id => "USERNAME",
|
54
|
+
:z303_proxy_for_id => nil,
|
55
|
+
:z303_primary_id => nil,
|
56
|
+
:z303_name_key => "username test record USERNAME",
|
57
|
+
:z303_user_type => nil,
|
58
|
+
:z303_user_library => nil,
|
59
|
+
:z303_open_date => "09/30/2013",
|
60
|
+
:z303_update_date => "10/26/2013",
|
61
|
+
:z303_con_lng => "ENG",
|
62
|
+
:z303_alpha => "L",
|
63
|
+
:z303_name => "USERNAME, TEST-RECORD",
|
64
|
+
:z303_title => nil,
|
65
|
+
:z303_delinq_1 => "00",
|
66
|
+
:z303_delinq_n_1 => nil,
|
67
|
+
:z303_delinq_1_update_date => "00000000",
|
68
|
+
:z303_delinq_1_cat_name => nil,
|
69
|
+
:z303_delinq_2 => "00",
|
70
|
+
:z303_delinq_n_2 => nil,
|
71
|
+
:z303_delinq_2_update_date => "00000000",
|
72
|
+
:z303_delinq_2_cat_name => nil,
|
73
|
+
:z303_delinq_3 => "00",
|
74
|
+
:z303_delinq_n_3 => nil,
|
75
|
+
:z303_delinq_3_update_date => "00000000",
|
76
|
+
:z303_delinq_3_cat_name => nil,
|
77
|
+
:z303_budget => nil,
|
78
|
+
:z303_profile_id => nil,
|
79
|
+
:z303_ill_library => nil,
|
80
|
+
:z303_home_library => "Home Library",
|
81
|
+
:z303_field_1 => nil,
|
82
|
+
:z303_field_2 => nil,
|
83
|
+
:z303_field_3 => nil,
|
84
|
+
:z303_note_1 => nil,
|
85
|
+
:z303_note_2 => nil,
|
86
|
+
:z303_salutation => nil,
|
87
|
+
:z303_ill_total_limit => "0000",
|
88
|
+
:z303_ill_active_limit => "0000",
|
89
|
+
:z303_dispatch_library => nil,
|
90
|
+
:z303_birth_date => nil,
|
91
|
+
:z303_export_consent => "Y",
|
92
|
+
:z303_proxy_id_type => "00",
|
93
|
+
:z303_send_all_letters => "Y",
|
94
|
+
:z303_plain_html => "P",
|
95
|
+
:z303_want_sms => nil,
|
96
|
+
:z303_plif_modification => nil,
|
97
|
+
:z303_title_req_limit => "0000",
|
98
|
+
:z303_gender => nil,
|
99
|
+
:z303_birthplace => nil},
|
100
|
+
:z304 => {
|
101
|
+
:z304_id => "USERNAME",
|
102
|
+
:z304_sequence => "02",
|
103
|
+
:z304_address_0 => "USERNAME, TEST-RECORD",
|
104
|
+
:z304_address_1 => "100 Testing Lane",
|
105
|
+
:z304_address_2 => "Testing Town",
|
106
|
+
:z304_address_3 => "NY",
|
107
|
+
:z304_zip => "10012",
|
108
|
+
:z304_email_address => "username@library.edu",
|
109
|
+
:z304_telephone => nil,
|
110
|
+
:z304_date_from => "20100101",
|
111
|
+
:z304_date_to => "20201231",
|
112
|
+
:z304_address_type => "02",
|
113
|
+
:z304_telephone_2 => nil,
|
114
|
+
:z304_telephone_3 => nil,
|
115
|
+
:z304_telephone_4 => nil,
|
116
|
+
:z304_sms_number => nil,
|
117
|
+
:z304_update_date => "20131026",
|
118
|
+
:z304_cat_name => "BATCH"
|
119
|
+
},
|
120
|
+
:z305 => {
|
121
|
+
:z305_id => "USERNAME",
|
122
|
+
:z305_sub_library => "SUB",
|
123
|
+
:z305_open_date => "09/30/2013",
|
124
|
+
:z305_update_date => "10/26/2013",
|
125
|
+
:z305_bor_type => nil,
|
126
|
+
:z305_bor_status => "Adjunct Faculty",
|
127
|
+
:z305_registration_date => "00000000",
|
128
|
+
:z305_expiry_date => "12/31/2020",
|
129
|
+
:z305_note => nil,
|
130
|
+
:z305_loan_permission => "Y",
|
131
|
+
:z305_photo_permission => "N",
|
132
|
+
:z305_over_permission => "Y",
|
133
|
+
:z305_multi_hold => "N",
|
134
|
+
:z305_loan_check => "Y",
|
135
|
+
:z305_hold_permission => "Y",
|
136
|
+
:z305_renew_permission => "Y",
|
137
|
+
:z305_rr_permission => "N",
|
138
|
+
:z305_ignore_late_return => "N",
|
139
|
+
:z305_last_activity_date => nil,
|
140
|
+
:z305_photo_charge => "F",
|
141
|
+
:z305_no_loan => "0000",
|
142
|
+
:z305_no_hold => "0000",
|
143
|
+
:z305_no_photo => "0000",
|
144
|
+
:z305_no_cash => "0000",
|
145
|
+
:z305_cash_limit => "5.00",
|
146
|
+
:z305_credit_debit => nil,
|
147
|
+
:z305_sum => "0.00",
|
148
|
+
:z305_delinq_1 => "00",
|
149
|
+
:z305_delinq_n_1 => nil,
|
150
|
+
:z305_delinq_1_update_date => "00000000",
|
151
|
+
:z305_delinq_1_cat_name => nil,
|
152
|
+
:z305_delinq_2 => "00",
|
153
|
+
:z305_delinq_n_2 => nil,
|
154
|
+
:z305_delinq_2_update_date => "00000000",
|
155
|
+
:z305_delinq_2_cat_name => nil,
|
156
|
+
:z305_delinq_3 => "00",
|
157
|
+
:z305_delinq_n_3 => nil,
|
158
|
+
:z305_delinq_3_update_date => "00000000",
|
159
|
+
:z305_delinq_3_cat_name => nil,
|
160
|
+
:z305_field_1 => nil,
|
161
|
+
:z305_field_2 => nil,
|
162
|
+
:z305_field_3 => nil,
|
163
|
+
:z305_hold_on_shelf => "N",
|
164
|
+
:z305_end_block_date => nil,
|
165
|
+
:z305_booking_permission => "N",
|
166
|
+
:z305_booking_ignore_hours => "N",
|
167
|
+
:z305_rush_cat_request => "N"
|
168
|
+
},
|
169
|
+
:session_id => "B3S4C6Y7DLQCA41NAYH1BQHLU6F24AKJRRSPRTF99FXECEUMIS"
|
170
|
+
}
|
171
|
+
}
|
172
|
+
}
|
173
|
+
}
|
@@ -31,7 +31,7 @@ module OmniAuth
|
|
31
31
|
url = bor_auth_url + "&bor_id=#{username}&verification=#{password}"
|
32
32
|
response = Faraday.get url
|
33
33
|
# If we get a successful response AND we are looking at XML and we have a body
|
34
|
-
if response.status == 200 && response.headers["content-type"]
|
34
|
+
if response.status == 200 && response.headers["content-type"].include?('text/xml') && response.body
|
35
35
|
json = MultiXml.parse(response.body)
|
36
36
|
if json["bor_auth"] && (error = json["bor_auth"]["error"]).nil?
|
37
37
|
return json
|
@@ -43,52 +43,50 @@ describe "OmniAuth::Strategies::Aleph" do
|
|
43
43
|
end
|
44
44
|
|
45
45
|
describe '#options' do
|
46
|
-
it 'should not error' do
|
47
|
-
expect{ strategy.options }.not_to raise_error
|
48
|
-
end
|
49
|
-
|
50
46
|
subject(:options) { strategy.options }
|
51
47
|
|
48
|
+
it { should_not raise_error }
|
49
|
+
|
52
50
|
describe'#name' do
|
53
|
-
|
54
|
-
|
55
|
-
|
51
|
+
subject { options.name }
|
52
|
+
it { should_not be_nil }
|
53
|
+
it { should eq("aleph") }
|
56
54
|
end
|
57
55
|
|
58
56
|
describe '#title' do
|
59
|
-
|
60
|
-
|
61
|
-
|
57
|
+
subject { options.title }
|
58
|
+
it { should_not be_nil }
|
59
|
+
it { should eq("Aleph Authentication") }
|
62
60
|
end
|
63
61
|
|
64
62
|
describe '#scheme' do
|
65
|
-
|
66
|
-
|
67
|
-
|
63
|
+
subject { options.scheme }
|
64
|
+
it { should_not be_nil }
|
65
|
+
it { should eq("http") }
|
68
66
|
end
|
69
67
|
|
70
68
|
describe '#host' do
|
71
|
-
|
72
|
-
|
73
|
-
|
69
|
+
subject { options.host }
|
70
|
+
it { should_not be_nil }
|
71
|
+
it { should eq(aleph_host) }
|
74
72
|
end
|
75
73
|
|
76
74
|
describe '#port' do
|
77
|
-
|
78
|
-
|
79
|
-
|
75
|
+
subject { options.port }
|
76
|
+
it { should_not be_nil }
|
77
|
+
it { should be(80) }
|
80
78
|
end
|
81
79
|
|
82
80
|
describe '#library' do
|
83
|
-
|
84
|
-
|
85
|
-
|
81
|
+
subject { options.library }
|
82
|
+
it { should_not be_nil }
|
83
|
+
it { should eq(aleph_library) }
|
86
84
|
end
|
87
85
|
|
88
86
|
describe '#sub_library' do
|
89
|
-
|
90
|
-
|
91
|
-
|
87
|
+
subject { options.sub_library }
|
88
|
+
it { should_not be_nil }
|
89
|
+
it { should eq(aleph_sub_library) }
|
92
90
|
end
|
93
91
|
end
|
94
92
|
|
@@ -239,6 +237,7 @@ describe "OmniAuth::Strategies::Aleph" do
|
|
239
237
|
expect(auth_hash.info.nickname).to eq('USERNAME')
|
240
238
|
expect(auth_hash.info.email).to eq('username@library.edu')
|
241
239
|
expect(auth_hash.info.phone).to be_nil
|
240
|
+
expect(auth_hash.extra.raw_info.bor_auth.z303.z303_id).to eq('USERNAME')
|
242
241
|
end
|
243
242
|
end
|
244
243
|
end
|
@@ -36,11 +36,10 @@ http_interactions:
|
|
36
36
|
encoding: US-ASCII
|
37
37
|
string: ! "<?xml version = \"1.0\" encoding = \"UTF-8\"?>\n<bor-auth>\n<z303>\n<z303-id>USERNAME</z303-id>\n<z303-proxy-for-id></z303-proxy-for-id>\n<z303-primary-id></z303-primary-id>\n<z303-name-key>username
|
38
38
|
test record USERNAME</z303-name-key>\n<z303-user-type></z303-user-type>\n<z303-user-library></z303-user-library>\n<z303-open-date>09/30/2013</z303-open-date>\n<z303-update-date>10/26/2013</z303-update-date>\n<z303-con-lng>ENG</z303-con-lng>\n<z303-alpha>L</z303-alpha>\n<z303-name>USERNAME,
|
39
|
-
TEST-RECORD</z303-name>\n<z303-title></z303-title>\n<z303-delinq-1>00</z303-delinq-1>\n<z303-delinq-n-1></z303-delinq-n-1>\n<z303-delinq-1-update-date>00000000</z303-delinq-1-update-date>\n<z303-delinq-1-cat-name></z303-delinq-1-cat-name>\n<z303-delinq-2>00</z303-delinq-2>\n<z303-delinq-n-2></z303-delinq-n-2>\n<z303-delinq-2-update-date>00000000</z303-delinq-2-update-date>\n<z303-delinq-2-cat-name></z303-delinq-2-cat-name>\n<z303-delinq-3>00</z303-delinq-3>\n<z303-delinq-n-3></z303-delinq-n-3>\n<z303-delinq-3-update-date>00000000</z303-delinq-3-update-date>\n<z303-delinq-3-cat-name></z303-delinq-3-cat-name>\n<z303-budget></z303-budget>\n<z303-profile-id></z303-profile-id>\n<z303-ill-library></z303-ill-library>\n<z303-home-library>
|
40
|
-
|
41
|
-
LOADED</z303-birthplace>\n</z303>\n<z304>\n<z304-id>USERNAME</z304-id>\n<z304-sequence>02</z304-sequence>\n<z304-address-0>USERNAME,
|
39
|
+
TEST-RECORD</z303-name>\n<z303-title></z303-title>\n<z303-delinq-1>00</z303-delinq-1>\n<z303-delinq-n-1></z303-delinq-n-1>\n<z303-delinq-1-update-date>00000000</z303-delinq-1-update-date>\n<z303-delinq-1-cat-name></z303-delinq-1-cat-name>\n<z303-delinq-2>00</z303-delinq-2>\n<z303-delinq-n-2></z303-delinq-n-2>\n<z303-delinq-2-update-date>00000000</z303-delinq-2-update-date>\n<z303-delinq-2-cat-name></z303-delinq-2-cat-name>\n<z303-delinq-3>00</z303-delinq-3>\n<z303-delinq-n-3></z303-delinq-n-3>\n<z303-delinq-3-update-date>00000000</z303-delinq-3-update-date>\n<z303-delinq-3-cat-name></z303-delinq-3-cat-name>\n<z303-budget></z303-budget>\n<z303-profile-id></z303-profile-id>\n<z303-ill-library></z303-ill-library>\n<z303-home-library>Home
|
40
|
+
Library</z303-home-library>\n<z303-field-1></z303-field-1>\n<z303-field-2></z303-field-2>\n<z303-field-3></z303-field-3>\n<z303-note-1></z303-note-1>\n<z303-note-2></z303-note-2>\n<z303-salutation></z303-salutation>\n<z303-ill-total-limit>0000</z303-ill-total-limit>\n<z303-ill-active-limit>0000</z303-ill-active-limit>\n<z303-dispatch-library></z303-dispatch-library>\n<z303-birth-date></z303-birth-date>\n<z303-export-consent>Y</z303-export-consent>\n<z303-proxy-id-type>00</z303-proxy-id-type>\n<z303-send-all-letters>Y</z303-send-all-letters>\n<z303-plain-html>P</z303-plain-html>\n<z303-want-sms></z303-want-sms>\n<z303-plif-modification></z303-plif-modification>\n<z303-title-req-limit>0000</z303-title-req-limit>\n<z303-gender></z303-gender>\n<z303-birthplace></z303-birthplace>\n</z303>\n<z304>\n<z304-id>USERNAME</z304-id>\n<z304-sequence>02</z304-sequence>\n<z304-address-0>USERNAME,
|
42
41
|
TEST-RECORD</z304-address-0>\n<z304-address-1>100 Testing Lane</z304-address-1>\n<z304-address-2>Testing
|
43
|
-
Town</z304-address-2>\n<z304-address-3>NY</z304-address-3>\n<z304-zip>10012</z304-zip>\n<z304-email-address>username@library.edu</z304-email-address>\n<z304-telephone></z304-telephone>\n<z304-date-from>20100101</z304-date-from>\n<z304-date-to>20201231</z304-date-to>\n<z304-address-type>02</z304-address-type>\n<z304-telephone-2></z304-telephone-2>\n<z304-telephone-3></z304-telephone-3>\n<z304-telephone-4></z304-telephone-4>\n<z304-sms-number></z304-sms-number>\n<z304-update-date>20131026</z304-update-date>\n<z304-cat-name>BATCH</z304-cat-name>\n</z304>\n<z305>\n<z305-id>USERNAME</z305-id>\n<z305-sub-library>SUB</z305-sub-library>\n<z305-open-date>09/30/2013</z305-open-date>\n<z305-update-date>10/26/2013</z305-update-date>\n<z305-bor-type></z305-bor-type>\n<z305-bor-status>
|
42
|
+
Town</z304-address-2>\n<z304-address-3>NY</z304-address-3>\n<z304-zip>10012</z304-zip>\n<z304-email-address>username@library.edu</z304-email-address>\n<z304-telephone></z304-telephone>\n<z304-date-from>20100101</z304-date-from>\n<z304-date-to>20201231</z304-date-to>\n<z304-address-type>02</z304-address-type>\n<z304-telephone-2></z304-telephone-2>\n<z304-telephone-3></z304-telephone-3>\n<z304-telephone-4></z304-telephone-4>\n<z304-sms-number></z304-sms-number>\n<z304-update-date>20131026</z304-update-date>\n<z304-cat-name>BATCH</z304-cat-name>\n</z304>\n<z305>\n<z305-id>USERNAME</z305-id>\n<z305-sub-library>SUB</z305-sub-library>\n<z305-open-date>09/30/2013</z305-open-date>\n<z305-update-date>10/26/2013</z305-update-date>\n<z305-bor-type></z305-bor-type>\n<z305-bor-status>Adjunct
|
44
43
|
Faculty</z305-bor-status>\n<z305-registration-date>00000000</z305-registration-date>\n<z305-expiry-date>12/31/2020</z305-expiry-date>\n<z305-note></z305-note>\n<z305-loan-permission>Y</z305-loan-permission>\n<z305-photo-permission>N</z305-photo-permission>\n<z305-over-permission>Y</z305-over-permission>\n<z305-multi-hold>N</z305-multi-hold>\n<z305-loan-check>Y</z305-loan-check>\n<z305-hold-permission>Y</z305-hold-permission>\n<z305-renew-permission>Y</z305-renew-permission>\n<z305-rr-permission>N</z305-rr-permission>\n<z305-ignore-late-return>N</z305-ignore-late-return>\n<z305-last-activity-date></z305-last-activity-date>\n<z305-photo-charge>F</z305-photo-charge>\n<z305-no-loan>0000</z305-no-loan>\n<z305-no-hold>0000</z305-no-hold>\n<z305-no-photo>0000</z305-no-photo>\n<z305-no-cash>0000</z305-no-cash>\n<z305-cash-limit>5.00</z305-cash-limit>\n<z305-credit-debit></z305-credit-debit>\n<z305-sum>0.00</z305-sum>\n<z305-delinq-1>00</z305-delinq-1>\n<z305-delinq-n-1></z305-delinq-n-1>\n<z305-delinq-1-update-date>00000000</z305-delinq-1-update-date>\n<z305-delinq-1-cat-name></z305-delinq-1-cat-name>\n<z305-delinq-2>00</z305-delinq-2>\n<z305-delinq-n-2></z305-delinq-n-2>\n<z305-delinq-2-update-date>00000000</z305-delinq-2-update-date>\n<z305-delinq-2-cat-name></z305-delinq-2-cat-name>\n<z305-delinq-3>00</z305-delinq-3>\n<z305-delinq-n-3></z305-delinq-n-3>\n<z305-delinq-3-update-date>00000000</z305-delinq-3-update-date>\n<z305-delinq-3-cat-name></z305-delinq-3-cat-name>\n<z305-field-1></z305-field-1>\n<z305-field-2></z305-field-2>\n<z305-field-3></z305-field-3>\n<z305-hold-on-shelf>N</z305-hold-on-shelf>\n<z305-end-block-date></z305-end-block-date>\n<z305-booking-permission>N</z305-booking-permission>\n<z305-booking-ignore-hours>N</z305-booking-ignore-hours>\n<z305-rush-cat-request>N</z305-rush-cat-request>\n</z305>\n<session-id>B3S4C6Y7DLQCA41NAYH1BQHLU6F24AKJRRSPRTF99FXECEUMIS</session-id>\n</bor-auth>\n "
|
45
44
|
http_version:
|
46
45
|
recorded_at: Wed, 22 Jan 2014 15:53:06 GMT
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: omniauth-aleph
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
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: 2014-
|
12
|
+
date: 2014-08-15 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: omniauth
|
@@ -185,7 +185,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
185
185
|
version: '0'
|
186
186
|
segments:
|
187
187
|
- 0
|
188
|
-
hash:
|
188
|
+
hash: 563932762752653555
|
189
189
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
190
|
none: false
|
191
191
|
requirements:
|
@@ -194,7 +194,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
194
194
|
version: '0'
|
195
195
|
segments:
|
196
196
|
- 0
|
197
|
-
hash:
|
197
|
+
hash: 563932762752653555
|
198
198
|
requirements: []
|
199
199
|
rubyforge_project:
|
200
200
|
rubygems_version: 1.8.23
|