From: oajulianclementson <51331324+oajulianclementson@users.noreply.github.com>
Date: Wed, 8 Sep 2021 19:01:32 +0000 (+0100)
Subject: LP#1842297: Add barcode attribute
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=fb2c22907a8391ed4d5c5f6bfcc8b19ada3f510a;p=evergreen%2Fpines.git
LP#1842297: Add barcode attribute
---
diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml
index d30f715928..a609dcaa69 100644
--- a/Open-ILS/examples/fm_IDL.xml
+++ b/Open-ILS/examples/fm_IDL.xml
@@ -15542,6 +15542,7 @@ SELECT usr,
+
diff --git a/Open-ILS/src/eg2/src/app/staff/admin/local/openathens-identity.component.html b/Open-ILS/src/eg2/src/app/staff/admin/local/openathens-identity.component.html
index d0fb001954..5c6b7d4769 100644
--- a/Open-ILS/src/eg2/src/app/staff/admin/local/openathens-identity.component.html
+++ b/Open-ILS/src/eg2/src/app/staff/admin/local/openathens-identity.component.html
@@ -57,5 +57,5 @@
idlClass="{{idlClass}}"
[preloadLinkedValues]="true"
[fieldOptions]="{owning_lib_filter:{customTemplate:{template:orgTemplate}}}"
- fieldOrder="id,org_unit,active,api_key,connection_id,connection_uri,auto_signon_enabled,auto_signout_enabled,unique_identifier,display_name,release_prefix,release_first_given_name,release_second_given_name,release_family_name,release_suffix,release_email,release_home_ou"
+ fieldOrder="id,org_unit,active,api_key,connection_id,connection_uri,auto_signon_enabled,auto_signout_enabled,unique_identifier,display_name,release_prefix,release_first_given_name,release_second_given_name,release_family_name,release_suffix,release_email,release_home_ou,release_barcode"
>
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/OpenAthens.pm b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/OpenAthens.pm
index 7bca2db831..cf15e0349b 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/OpenAthens.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/OpenAthens.pm
@@ -17,6 +17,7 @@ use constant OA_ATTR_FAMILY_NAME => 'family_name';
use constant OA_ATTR_SUFFIX => 'suffix';
use constant OA_ATTR_EMAIL => 'email';
use constant OA_ATTR_HOME_OU => 'home_ou';
+use constant OA_ATTR_BARCODE => 'barcode';
use constant OA_SIGNOUT_URL => 'https://login.openathens.net/signout';
use constant OA_SESSION_REQUEST_TYPE =>
'application/vnd.eduserv.iam.auth.localAccountSessionRequest+json';
@@ -24,7 +25,7 @@ use constant OA_SESSION_REQUEST_TYPE =>
my @oa_config_fields = qw/active api_key connection_id connection_uri
auto_signon_enabled auto_signout_enabled release_prefix
release_first_given_name release_second_given_name release_family_name
- release_suffix release_email release_home_ou/;
+ release_suffix release_email release_home_ou release_barcode/;
# -----------------------------------------------------------------------------
@@ -325,6 +326,10 @@ sub _get_openathens_session_initiator_url {
}
}
+ if ($U->is_true($openathens_config->{release_barcode})) {
+ $request_obj->{attributes}->{&OA_ATTR_BARCODE} = $ctx->{active_card};
+ }
+
if ($return_url) {
$request_obj->{returnUrl} = $return_url;
} elsif ($return_data) {
diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 56bf2e8aae..2bf1624086 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -1401,11 +1401,19 @@ CREATE TABLE config.ui_staff_portal_page_entry (
owner INT NOT NULL -- REFERENCES actor.org_unit (id)
);
+-- Add OpenAthens Integration
CREATE TABLE config.openathens_uid_field (
id SERIAL PRIMARY KEY,
name TEXT NOT NULL
);
+INSERT INTO config.openathens_uid_field
+ (id, name)
+VALUES
+ (1,'id'),
+ (2,'usrname')
+;
+
SELECT SETVAL('config.openathens_uid_field_id_seq'::TEXT, 100);
CREATE TABLE config.openathens_name_field (
@@ -1413,12 +1421,20 @@ CREATE TABLE config.openathens_name_field (
name TEXT NOT NULL
);
+INSERT INTO config.openathens_name_field
+ (id, name)
+VALUES
+ (1,'id'),
+ (2,'usrname'),
+ (3,'fullname')
+;
+
SELECT SETVAL('config.openathens_name_field_id_seq'::TEXT, 100);
CREATE TABLE config.openathens_identity (
id SERIAL PRIMARY KEY,
active BOOL NOT NULL DEFAULT true,
- org_unit INT NOT NULL REFERENCES actor.org_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+ org_unit INT NOT NULL, -- REFERENCES actor.org_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
api_key TEXT NOT NULL,
connection_id TEXT NOT NULL,
connection_uri TEXT NOT NULL,
@@ -1432,7 +1448,8 @@ CREATE TABLE config.openathens_identity (
release_family_name BOOL NOT NULL DEFAULT false,
release_suffix BOOL NOT NULL DEFAULT false,
release_email BOOL NOT NULL DEFAULT false,
- release_home_ou BOOL NOT NULL DEFAULT false
+ release_home_ou BOOL NOT NULL DEFAULT false,
+ release_barcode BOOL NOT NULL DEFAULT false
);
COMMIT;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.openathens_identity.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.openathens_identity.sql
index e43010d478..118a4fbb95 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.openathens_identity.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.openathens_identity.sql
@@ -48,7 +48,8 @@ CREATE TABLE config.openathens_identity (
release_family_name BOOL NOT NULL DEFAULT false,
release_suffix BOOL NOT NULL DEFAULT false,
release_email BOOL NOT NULL DEFAULT false,
- release_home_ou BOOL NOT NULL DEFAULT false
+ release_home_ou BOOL NOT NULL DEFAULT false,
+ release_barcode BOOL NOT NULL DEFAULT false
);
COMMIT;
diff --git a/docs/RELEASE_NOTES_NEXT/Administration/OpenAthens_SignOn.adoc b/docs/RELEASE_NOTES_NEXT/Administration/OpenAthens_SignOn.adoc
index 7060645c87..87ed3f06f0 100644
--- a/docs/RELEASE_NOTES_NEXT/Administration/OpenAthens_SignOn.adoc
+++ b/docs/RELEASE_NOTES_NEXT/Administration/OpenAthens_SignOn.adoc
@@ -137,6 +137,10 @@ implementation partner.
|home_ou
|the _shortcode_ of the patron's home library (e.g. 'BR1' in the Concerto
sample data set)
+
+|Release barcode
+|barcode
+|the patron's barcode
|===
Network access