/omniauth-aleph

Aleph strategy for OmniAuth

Primary LanguageRubyMIT LicenseMIT

OmniAuth Aleph

Gem Version Build Status Dependency Status Code Climate Coverage Status

Aleph patron login strategy for OmniAuth.

Installation

Add to your Gemfile:

gem 'omniauth-aleph'

Then bundle install.

Usage

OmniAuth::Strategies::Aleph simply makes a call to the Aleph bor_auth X-Service and returns the attributes from the returned XML.

Use the Aleph strategy as a middleware in your application:

use OmniAuth::Strategies::Aleph, title: 'My Library's Aleph', 
  host: 'aleph.library.edu', port: 80, library: 'ADM50', sub_library: 'SUB'

Configuring

You can configure several options, which you pass in to the provider method via a Hash:

  • title: title for the request_phase form; defaults to Aleph Authentication
  • scheme: scheme for your Aleph X-Server as a String; defaults to http
  • host: host name for your Aleph X-Server as a String; required
  • port: port for your Aleph X-Server as an Integer; defaults to 80
  • library: Aleph administrative library for authentication; required
  • sub_library: Aleph sub library for authentication; required

Auth Hash

Here's an example Auth Hash available in request.env['omniauth.auth']:

{
  :provider => 'aleph',
  :uid => 'USERNAME',
  :info => {
    :name => "USERNAME, TEST-RECORD",
    :nickname => "USERNAME",
    :email => "username@library.edu",
    :phone => nil
  },
  :credentials => {},
  :extra => {
    :raw_info => {
      :bor_auth => {
        :z303 => {
          :z303_id => "USERNAME",
          :z303_proxy_for_id => nil,
          :z303_primary_id => nil,
          :z303_name_key => "username test record                     USERNAME",
          :z303_user_type => nil,
          :z303_user_library => nil,
          :z303_open_date => "09/30/2013",
          :z303_update_date => "10/26/2013",
          :z303_con_lng => "ENG",
          :z303_alpha => "L",
          :z303_name => "USERNAME, TEST-RECORD",
          :z303_title => nil,
          :z303_delinq_1 => "00",
          :z303_delinq_n_1 => nil,
          :z303_delinq_1_update_date => "00000000",
          :z303_delinq_1_cat_name => nil,
          :z303_delinq_2 => "00",
          :z303_delinq_n_2 => nil,
          :z303_delinq_2_update_date => "00000000",
          :z303_delinq_2_cat_name => nil,
          :z303_delinq_3 => "00",
          :z303_delinq_n_3 => nil,
          :z303_delinq_3_update_date => "00000000",
          :z303_delinq_3_cat_name => nil,
          :z303_budget => nil,
          :z303_profile_id => nil,
          :z303_ill_library => nil,
          :z303_home_library => "Home Library",
          :z303_field_1 => nil,
          :z303_field_2 => nil,
          :z303_field_3 => nil,
          :z303_note_1 => nil,
          :z303_note_2 => nil,
          :z303_salutation => nil,
          :z303_ill_total_limit => "0000",
          :z303_ill_active_limit => "0000",
          :z303_dispatch_library => nil,
          :z303_birth_date => nil,
          :z303_export_consent => "Y",
          :z303_proxy_id_type => "00",
          :z303_send_all_letters => "Y",
          :z303_plain_html => "P",
          :z303_want_sms => nil,
          :z303_plif_modification => nil,
          :z303_title_req_limit => "0000",
          :z303_gender => nil,
          :z303_birthplace => nil},
        :z304 => {
          :z304_id => "USERNAME",
          :z304_sequence => "02",
          :z304_address_0 => "USERNAME, TEST-RECORD",
          :z304_address_1 => "100 Testing Lane",
          :z304_address_2 => "Testing Town",
          :z304_address_3 => "NY",
          :z304_zip => "10012",
          :z304_email_address => "username@library.edu",
          :z304_telephone => nil,
          :z304_date_from => "20100101",
          :z304_date_to => "20201231",
          :z304_address_type => "02",
          :z304_telephone_2 => nil,
          :z304_telephone_3 => nil,
          :z304_telephone_4 => nil,
          :z304_sms_number => nil,
          :z304_update_date => "20131026",
          :z304_cat_name => "BATCH"
        },
        :z305 => {
          :z305_id => "USERNAME",
          :z305_sub_library => "SUB",
          :z305_open_date => "09/30/2013",
          :z305_update_date => "10/26/2013",
          :z305_bor_type => nil,
          :z305_bor_status => "Adjunct Faculty",
          :z305_registration_date => "00000000",
          :z305_expiry_date => "12/31/2020",
          :z305_note => nil,
          :z305_loan_permission => "Y",
          :z305_photo_permission => "N",
          :z305_over_permission => "Y",
          :z305_multi_hold => "N",
          :z305_loan_check => "Y",
          :z305_hold_permission => "Y",
          :z305_renew_permission => "Y",
          :z305_rr_permission => "N",
          :z305_ignore_late_return => "N",
          :z305_last_activity_date => nil,
          :z305_photo_charge => "F",
          :z305_no_loan => "0000",
          :z305_no_hold => "0000",
          :z305_no_photo => "0000",
          :z305_no_cash => "0000",
          :z305_cash_limit => "5.00",
          :z305_credit_debit => nil,
          :z305_sum => "0.00",
          :z305_delinq_1 => "00",
          :z305_delinq_n_1 => nil,
          :z305_delinq_1_update_date => "00000000",
          :z305_delinq_1_cat_name => nil,
          :z305_delinq_2 => "00",
          :z305_delinq_n_2 => nil,
          :z305_delinq_2_update_date => "00000000",
          :z305_delinq_2_cat_name => nil,
          :z305_delinq_3 => "00",
          :z305_delinq_n_3 => nil,
          :z305_delinq_3_update_date => "00000000",
          :z305_delinq_3_cat_name => nil,
          :z305_field_1 => nil,
          :z305_field_2 => nil,
          :z305_field_3 => nil,
          :z305_hold_on_shelf => "N",
          :z305_end_block_date => nil,
          :z305_booking_permission => "N",
          :z305_booking_ignore_hours => "N",
          :z305_rush_cat_request => "N"
        },
        :session_id => "B3S4C6Y7DLQCA41NAYH1BQHLU6F24AKJRRSPRTF99FXECEUMIS"
      }
    }
  }
}