+++ /dev/null
-BEGIN;
-
--- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
-
-INSERT INTO config.global_flag (name, label, enabled) VALUES (
- 'extras.enable_digital_resource_search_tab',
- oils_i18n_gettext(
- 'extras.enable_digital_resource_search_tab',
- 'Extras: Enable public catalog search tab for digital resource searches (e.g., RBDigital)',
- 'cgf',
- 'label'
- ),
- FALSE
-);
-
-INSERT INTO config.org_unit_setting_type
- (name, label, description, grp, datatype)
-VALUES (
- 'ebook_api.rbdigital.base_uri',
- oils_i18n_gettext(
- 'ebook_api.rbdigital.base_uri',
- 'RBDigital Base URI',
- 'coust',
- 'label'
- ),
- oils_i18n_gettext(
- 'ebook_api.rbdigital.base_uri',
- 'Base URI for RBDigital API (defaults to https://api.rbdigital.com/v1). Using HTTPS here is strongly encouraged.',
- 'coust',
- 'description'
- ),
- 'ebook_api',
- 'string'
-),(
- 'ebook_api.rbdigital.library_id',
- oils_i18n_gettext(
- 'ebook_api.rbdigital.library_id',
- 'RBDigital Library ID',
- 'coust',
- 'label'
- ),
- oils_i18n_gettext(
- 'ebook_api.rbdigital.library_id',
- 'Identifier assigned to this library by RBDigital',
- 'coust',
- 'description'
- ),
- 'ebook_api',
- 'string'
-),(
- 'ebook_api.rbdigital.basic_token',
- oils_i18n_gettext(
- 'ebook_api.rbdigital.basic_token',
- 'RBDigital Basic Token',
- 'coust',
- 'label'
- ),
- oils_i18n_gettext(
- 'ebook_api.rbdigital.basic_token',
- 'Basic token for client authentication with RBDigital API (supplied by RBDigital)',
- 'coust',
- 'description'
- ),
- 'ebook_api',
- 'string'
-);
-
-
--- SELECT evergreen.upgrade_deps_block_check('XXXX', :eg_version);
-
-CREATE SCHEMA extra; -- schema for various extensions
-
-CREATE TABLE extra.rbdigital_digital_services (
- id SERIAL PRIMARY KEY,
- name CHARACTER VARYING(50) NOT NULL,
- is_enabled BOOLEAN NOT NULL,
- search_uri CHARACTER VARYING(120) NOT NULL,
- vendor_key CHARACTER VARYING(20) NOT NULL,
- display_order SMALLINT DEFAULT 1,
- api_url TEXT
-);
-COMMENT ON TABLE extra.rbdigital_digital_services IS 'This table should contain a single record for each digital media service integrated into Evergreen. ';
-
-INSERT INTO extra.rbdigital_digital_services (id, name, is_enabled, search_uri, vendor_key, display_order) VALUES (1, 'Evergreen', true, '/results', 'default', 1);
-INSERT INTO extra.rbdigital_digital_services (id, name, is_enabled, search_uri, vendor_key, display_order, api_url) VALUES (2, 'RBdigital', false, '/ebook_api/rbdigital/results', 'rbdigital', 2, 'http://api.rbdigitalstage.com/v1');
-
-CREATE TABLE extra.rbdigital_digital_services_authorized (
- digital_services_id SMALLSERIAL PRIMARY KEY,
- digital_services_library_id CHARACTER VARYING(64),
- digital_services_library_token CHARACTER VARYING(64),
- digital_services_name CHARACTER VARYING(100),
- digital_services_library_url CHARACTER VARYING(250),
- id SERIAL NOT NULL,
- library_id INTEGER,
- home_ou INTEGER
-);
-COMMENT ON TABLE extra.rbdigital_digital_services_authorized IS 'A table listing the digital services authorized for each entity listed in the library table described above.';
-
-CREATE TABLE extra.rbdigital_search_field_mappings (
- id BIGSERIAL PRIMARY KEY,
- evergreen_field_value CHARACTER VARYING(120),
- digital_services_field_value CHARACTER VARYING(120),
- search_fields_id INTEGER,
- evergreen_field_code CHARACTER VARYING(15),
- digital_services_field_code CHARACTER VARYING(25)
-);
-
-CREATE TABLE extra.rbdigital_search_fields (
- id SERIAL PRIMARY KEY,
- digital_services_id INTEGER,
- evergreen_field CHARACTER VARYING(125),
- digital_services_field CHARACTER VARYING(125),
- field_type CHARACTER VARYING(50)
-);
-
-COMMENT ON TABLE extra.rbdigital_search_fields IS 'The purpose of this table is to map the Evergreen search fields to the analogous fields for each digital service. Therefore each integrated digital service will have a record in this table.';
-
-COMMIT;
+++ /dev/null
-BEGIN;
-
--- parent/guardian field
-
-ALTER TABLE actor.usr ADD COLUMN guardian TEXT;
-
-CREATE INDEX actor_usr_guardian_idx
- ON actor.usr (evergreen.lowercase(guardian));
-CREATE INDEX actor_usr_guardian_unaccent_idx
- ON actor.usr (evergreen.unaccent_and_squash(guardian));
-
--- Modify auditor tables accordingly.
-SELECT auditor.update_auditors();
-
--- clear the guardian field on delete
-CREATE OR REPLACE FUNCTION actor.usr_delete(
- src_usr IN INTEGER,
- dest_usr IN INTEGER
-) RETURNS VOID AS $$
-DECLARE
- old_profile actor.usr.profile%type;
- old_home_ou actor.usr.home_ou%type;
- new_profile actor.usr.profile%type;
- new_home_ou actor.usr.home_ou%type;
- new_name text;
- new_dob actor.usr.dob%type;
-BEGIN
- SELECT
- id || '-PURGED-' || now(),
- profile,
- home_ou,
- dob
- INTO
- new_name,
- old_profile,
- old_home_ou,
- new_dob
- FROM
- actor.usr
- WHERE
- id = src_usr;
- --
- -- Quit if no such user
- --
- IF old_profile IS NULL THEN
- RETURN;
- END IF;
- --
- perform actor.usr_purge_data( src_usr, dest_usr );
- --
- -- Find the root grp_tree and the root org_unit. This would be simpler if we
- -- could assume that there is only one root. Theoretically, someday, maybe,
- -- there could be multiple roots, so we take extra trouble to get the right ones.
- --
- SELECT
- id
- INTO
- new_profile
- FROM
- permission.grp_ancestors( old_profile )
- WHERE
- parent is null;
- --
- SELECT
- id
- INTO
- new_home_ou
- FROM
- actor.org_unit_ancestors( old_home_ou )
- WHERE
- parent_ou is null;
- --
- -- Truncate date of birth
- --
- IF new_dob IS NOT NULL THEN
- new_dob := date_trunc( 'year', new_dob );
- END IF;
- --
- UPDATE
- actor.usr
- SET
- card = NULL,
- profile = new_profile,
- usrname = new_name,
- email = NULL,
- passwd = random()::text,
- standing = DEFAULT,
- ident_type =
- (
- SELECT MIN( id )
- FROM config.identification_type
- ),
- ident_value = NULL,
- ident_type2 = NULL,
- ident_value2 = NULL,
- net_access_level = DEFAULT,
- photo_url = NULL,
- prefix = NULL,
- first_given_name = new_name,
- guardian = NULL,
- family_name = new_name,
- suffix = NULL,
- alias = NULL,
- guardian = NULL,
- day_phone = NULL,
- evening_phone = NULL,
- other_phone = NULL,
- mailing_address = NULL,
- billing_address = NULL,
- home_ou = new_home_ou,
- dob = new_dob,
- active = FALSE,
- master_account = DEFAULT,
- super_user = DEFAULT,
- barred = FALSE,
- deleted = TRUE,
- juvenile = DEFAULT,
- usrgroup = 0,
- claims_returned_count = DEFAULT,
- credit_forward_balance = DEFAULT,
- last_xact_id = DEFAULT,
- alert_message = NULL,
- create_date = now(),
- expire_date = now()
- WHERE
- id = src_usr;
-END;
-$$ LANGUAGE plpgsql;
-
-INSERT into config.org_unit_setting_type (name, label, description, datatype)
-VALUES (
- 'ui.patron.edit.au.guardian.show',
- oils_i18n_gettext(
- 'ui.patron.edit.au.guardian.show',
- 'GUI: Show guardian field on patron registration',
- 'coust', 'label'
- ),
- oils_i18n_gettext(
- 'ui.patron.edit.au.guardian.show',
- 'The guardian field will be shown on the patron registration screen. Showing a field makes it appear with required fields even when not required. If the field is required this setting is ignored.',
- 'coust', 'description'
- ),
- 'bool'
-), (
- 'ui.patron.edit.au.guardian.suggest',
- oils_i18n_gettext(
- 'ui.patron.edit.au.guardian.suggest',
- 'GUI: Suggest guardian field on patron registration',
- 'coust', 'label'
- ),
- oils_i18n_gettext(
- 'ui.patron.edit.au.guardian.suggest',
- 'The guardian field will be suggested on the patron registration screen. Suggesting a field makes it appear when suggested fields are shown. If the field is shown or required this setting is ignored.',
- 'coust', 'description'),
- 'bool'
-), (
- 'ui.patron.edit.guardian_required_for_juv',
- oils_i18n_gettext(
- 'ui.patron.edit.guardian_required_for_juv',
- 'GUI: Juvenile account requires parent/guardian',
- 'coust', 'label'
- ),
- oils_i18n_gettext(
- 'ui.patron.edit.guardian_required_for_juv',
- 'Require a value for the parent/guardian field in the patron editor for patrons marked as juvenile',
- 'coust', 'description'),
- 'bool'
-);
-
--- Refresh rmsr so normalization is gone
-SELECT reporter.refresh_materialized_simple_record();
-
--- permissions
-
-INSERT INTO permission.grp_perm_map (grp, perm, depth)
-VALUES (
--- APPLY_WORKSTATION_SETTING perms go to Staff and CatVendor
-(SELECT id FROM permission.grp_tree WHERE name = 'Staff'), -- name may vary
-(SELECT id FROM permission.perm_list WHERE code = 'APPLY_WORKSTATION_SETTING'),
-0 -- or 1, 2, etc.
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'CatVendor'), -- name may vary
-(SELECT id FROM permission.perm_list WHERE code = 'APPLY_WORKSTATION_SETTING'),
-0 -- or 1, 2, etc.
-),
--- new EMERGENCY_CLOSING perm to admin groups
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LocalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'EMERGENCY_CLOSING'),
-1
-),
--- map new COPY_ALERT perms to the right groups
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat1'),
-(SELECT id FROM permission.perm_list WHERE code = 'CREATE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat2'),
-(SELECT id FROM permission.perm_list WHERE code = 'CREATE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LocalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'CREATE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LibraryManager'),
-(SELECT id FROM permission.perm_list WHERE code = 'CREATE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat1'),
-(SELECT id FROM permission.perm_list WHERE code = 'UPDATE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat2'),
-(SELECT id FROM permission.perm_list WHERE code = 'UPDATE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LocalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'UPDATE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LibraryManager'),
-(SELECT id FROM permission.perm_list WHERE code = 'UPDATE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat1'),
-(SELECT id FROM permission.perm_list WHERE code = 'DELETE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat2'),
-(SELECT id FROM permission.perm_list WHERE code = 'DELETE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LocalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'DELETE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LibraryManager'),
-(SELECT id FROM permission.perm_list WHERE code = 'DELETE_COPY_ALERT'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'ADMIN_COPY_ALERT_SUPPRESS'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'ADMIN_COPY_ALERT_TYPE'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'CREATE_COPY_ALERT_SUPPRESS'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'CREATE_COPY_ALERT_TYPE'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'UPDATE_COPY_ALERT_SUPPRESS'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'UPDATE_COPY_ALERT_TYPE'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'DELETE_COPY_ALERT_SUPPRESS'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'DELETE_COPY_ALERT_TYPE'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'ADMIN_COPY_ALERT'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Staff'),
-(SELECT id FROM permission.perm_list WHERE code = 'VIEW_COPY_ALERT'),
-0
-),
--- new EMERGENCY_CLOSING perm to admin groups
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LibraryManager'),
-(SELECT id FROM permission.perm_list WHERE code = 'EMERGENCY_CLOSING'),
-2
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'EMERGENCY_CLOSING'),
-0
-),
--- add MARK_ITEM_DISCARD perms to Catatlogers, Circulators, Administrators
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LocalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LibraryManager'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-2
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'SuperCat'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-0
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat1'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat2'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Cat3'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Circ1'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Circ2'),
-(SELECT id FROM permission.perm_list WHERE code = 'MARK_ITEM_DISCARD'),
-1
-),
--- copy delete warning override for discard/weed feature to work
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'Circ1'),
-(SELECT id FROM permission.perm_list WHERE code = 'COPY_DELETE_WARNING.override'),
-1
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'SuperCat'),
-(SELECT id FROM permission.perm_list WHERE code = 'COPY_DELETE_WARNING.override'),
-0
-)
-;
-
---need to set grantable for these perms/groups
-INSERT INTO permission.grp_perm_map (grp, perm, depth, grantable)
-VALUES (
-(SELECT id FROM permission.grp_tree WHERE name = 'GlobalAdmin'),
-(SELECT id FROM permission.perm_list WHERE code = 'COPY_DELETE_WARNING.override'),
-0,
-TRUE
-),
-(
-(SELECT id FROM permission.grp_tree WHERE name = 'LibraryManager'),
-(SELECT id FROM permission.perm_list WHERE code = 'COPY_DELETE_WARNING.override'),
-1,
-TRUE
-)
-;
-
--- allow multiple email addresses to be entered in patron reg form
-UPDATE actor.org_unit_setting SET value = '"[^@<> ]+@[^@<> ]+\\.[^@.*<> ]{2,}"' WHERE name = 'ui.patron.edit.au.email.regex' and org_unit = 1;
-
--- settings
-INSERT INTO actor.org_unit_setting (org_unit, name, value) VALUES
--- new setting for max duplicate holds
-(1, 'circ.holds.max_duplicate_holds', '"20"'),
--- settings for parent/guardian field
-(1, 'ui.patron.edit.guardian_required_for_juv', 'true'),
-(1, 'ui.patron.edit.au.guardian.show', 'true'),
-(1, 'ui.patron.edit.au.guardian.suggest', 'true'),
--- date formatting for web client
-(1, 'webstaff.format.dates', '"MM/dd/yyyy"'),
-(1, 'webstaff.format.date_and_time', '"MM/dd/yyyy HH:mm"') --,
--- allow emailing records without logging in
---(1, 'opac.email_record.allow_without_login', 'true')
-;
-
--- move parent/guardian field data to new field
-UPDATE actor.usr SET guardian = ident_value2, ident_value2 = NULL WHERE NOT deleted AND ident_value2 IS NOT NULL AND ident_value2 <> '';
-
-
-COMMIT;
-