[open-ils-commits] [GIT] Evergreen ILS branch tags/rel_2_3_1 created. 8a4414fd8a5047faa91352c5005588976d82b079
Evergreen Git
git at git.evergreen-ils.org
Thu Nov 8 13:32:10 EST 2012
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Evergreen ILS".
The branch, tags/rel_2_3_1 has been created
at 8a4414fd8a5047faa91352c5005588976d82b079 (commit)
- Log -----------------------------------------------------------------
commit 8a4414fd8a5047faa91352c5005588976d82b079
Author: Bill Erickson <berick at esilibrary.com>
Date: Tue Nov 6 15:48:06 2012 -0500
Bumping version numbers, adding Upgrade Script and Changelog
Signed-off-by: Bill Erickson <berick at esilibrary.com>
diff --git a/ChangeLog b/ChangeLog
index 1f72b2c..08d011c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,1143 @@
-Evergreen doesn't keep a GNU-style ChangeLog except in release tarballs.
-Those seeking a change log are encouraged to run 'git log -v', or read
-it online at: http://git.evergreen-ils.org/?p=Evergreen.git;a=log
+commit 2df098c59ae23e8abba05ec75db446941141c398
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Fri Nov 2 15:28:27 2012 -0400
+
+ CStoreEditor auto-activity log redaction
+
+ CStoreEditor logs all update calls to the activity log as key/value
+ pairs on the updated object. Avoid loging key/value pairs for objects
+ when the API call being relayed by CStoreEditor is on the list of
+ log-protect API calls. Instead, log "**DETAILS REDACTED**".
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+20 3 Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
+
+commit f2f53421e3df78639a07a99088ba610f6a5d0731
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Tue Nov 6 15:28:28 2012 -0500
+
+ Move 'initial host' feature docs into 2.3 release notes
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+15 0 docs/RELEASE_NOTES_2_3.txt
+0 12 docs/RELEASE_NOTES_NEXT/initial_host.txt
+ delete mode 100644 docs/RELEASE_NOTES_NEXT/initial_host.txt
+
+commit d5a0f1f5edf78857d5227874998f95daf4ec0f63
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Mon Nov 5 22:14:34 2012 -0500
+
+ Document log redaction XML chunk for opensrf_core.xml
+
+ Based on Bill Erickson's original version.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+26 1 docs/RELEASE_NOTES_2_3.txt
+
+commit f502344088bac86af1634663de2d7a647987b873
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Wed Oct 31 09:00:19 2012 -0400
+
+ Add sample log redaction config to EG opensrf_core
+
+ Redact parameter logging for the following API calls:
+
+ Login:
+ open-ils.auth.authenticate.verify
+ open-ils.auth.authenticate.complete
+ open-ils.auth_proxy.login
+
+ User updates:
+ open-ils.actor.user.password
+ open-ils.actor.user.username
+ open-ils.actor.user.email
+ open-ils.actor.patron.update
+ open-ils.cstore.direct.actor.user.create
+ open-ils.cstore.direct.actor.user.update
+ open-ils.cstore.direct.actor.user.delete
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+18 0 Open-ILS/examples/opensrf_core.xml.example
+
+commit 5224fcf99db734eed0b9d58fd5e9389b16400d5d
+Author: Mike Rylander <mrylander at gmail.com>
+Date: Wed Oct 10 17:36:52 2012 -0400
+
+ Make it possible to suppress IDL fields
+
+ Some clients of external services, particularly pcrud and reporter-store,
+ need to be able to access tables that contain columns we'd rather restrict.
+ For instance, the passwd field on actor.usr.
+
+ To effect this feature we provide a blacklist attribute for fields, called
+ suppress_controller, which works in the same way as the class controller
+ attribute but names controllers not allowed to use the field. When the field
+ is explicitly named in a query (fieldmapper select block or json_query) an
+ error is thrown, and suppressed fields are ingored in general fieldmapper
+ search/retreive requests.
+
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+1 1 Open-ILS/examples/fm_IDL.xml
+1 0 Open-ILS/examples/fm_IDL.xsd
+7 0 Open-ILS/src/c-apps/oils_idl-core.c
+27 2 Open-ILS/src/c-apps/oils_sql.c
+3 0 Open-ILS/web/reports/xul/source-browse.js
+3 0 Open-ILS/web/reports/xul/source-setup.js
+
+commit 3977a280bc7cb27e16ac890b02b68ac043c94d13
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date: Thu Aug 2 13:28:44 2012 -0400
+
+ Staff client initial hostname
+
+ Add support for an initial staff client hostname.
+
+ It can be specified during building the staff client or via configure.
+
+ During making the staff client:
+
+ make INITIAL_HOST=hostname build
+
+ During configure:
+
+ ./configure --with-initialhost=hostname
+
+ Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+2 0 Open-ILS/xul/staff_client/Makefile.am
+7 2 Open-ILS/xul/staff_client/chrome/content/auth/controller.js
+30 3 Open-ILS/xul/staff_client/chrome/content/main/main.js
+3 0 Open-ILS/xul/staff_client/defaults/preferences/initialhost.js
+8 0 configure.ac
+12 0 docs/RELEASE_NOTES_NEXT/initial_host.txt
+ create mode 100644 Open-ILS/xul/staff_client/defaults/preferences/initialhost.js
+ create mode 100644 docs/RELEASE_NOTES_NEXT/initial_host.txt
+
+commit 8645f10ad262f5c620345ab14868451ef57ebbb5
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Thu Oct 11 00:56:40 2012 -0400
+
+ TPAC: Address some search syntax leaks in links
+
+ Expand the list of filtered characters to cover all of the special
+ characters documented for the Evergreen search grammar
+ (http://evergreen-ils.org/dokuwiki/doku.php?id=documentation:technical:search_grammar)
+ when generating links in the TPAC so as to avoid inadvertently launching
+ filtered searches when a user clicks on something that should just be a
+ display value.
+
+ For example, if a title includes "Presenting a subject: tips for
+ consultants", it should _not_ launch a search for "subject" containing
+ "tips for consultants".
+
+ This commit addresses most of the link problems in the record
+ display, as well as the author links in the search results table.
+
+ Still problematic are the facets (which seem to rely on exact matching,
+ such that filtering out the problematic characters is itself
+ problematic) and autocomplete (which requires modifying the Autocomplete
+ Dojo widget).
+
+ In addition, this commit makes the series code actually display, as it
+ was using a non-standard method to attempt to return the results from
+ the BLOCK (and failing). Also, it makes the links for authors in the
+ record details match the MODS32 definition for personal name parts and
+ only use the "acdq" subfields. This enables a click on the link to
+ actually return results; previously, in the case where the author field
+ included (for example) a subfield "g" value, that value would be
+ included in the generated link and would likely lead to 0 hits.
+
+ For authors, we substitute with a space rather than just eliding the
+ substituted value. Authors are particularly likely to have dates like
+ 1899-1978; "1899 1978" matches, but "18991978" will not.
+
+ Perhaps we should take the same approach with the others, or break down
+ the search/replace logic a little further (for example, we could remove
+ the "-" only if it is preceded by a space or is at the start of the
+ string and is followed immediately by a character, and preserve it if it
+ is surrounded by digits). But this seems to take us pretty far down the
+ road of less negatively surprising results.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+4 2 Open-ILS/src/templates/opac/parts/record/authors.tt2
+6 4 Open-ILS/src/templates/opac/parts/record/series.tt2
+1 1 Open-ILS/src/templates/opac/parts/record/subjects.tt2
+1 1 Open-ILS/src/templates/opac/parts/result/table.tt2
+
+commit a97b4ba5f9e085387d7f923e85287d04c34161ec
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Wed Oct 10 23:35:13 2012 -0400
+
+ TPAC: Add search torture tests to concerto record
+
+ In addition to # signs causing problems in facets, we found that search
+ syntax in general is surfaced directly in most links that are exposed to
+ users in the TPAC. This commit adds several examples to the record with
+ the title "Trombone concerto (1991)":
+
+ In the title, there is an embedded "subject:" search which will be
+ triggered by autocomplete.
+
+ In the author (100 field), there is an embedded "author:" search which
+ will be triggered from the record details page. This also includes
+ another usage of the # sign.
+
+ In the subject fields, there are:
+ * an embedded "subject:" search which will be triggered from the
+ facets, autocomplete, and record details page
+ * an embedded negation operator which will be triggered from the
+ facets, autocomplete, and record details page
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+1 1 Open-ILS/tests/datasets/concerto.sql
+
+commit 62cb022ce0ca38dc622f1ee88abf15b804d8ab00
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Wed Oct 10 15:50:49 2012 -0400
+
+ Munge concerto to include # signs in series facets
+
+ Search for "Piano concerto in C major, op. 39" or "Beethoven: concertos
+ and overtures" and you'll get facets with # signs to assist with fixing
+ LP # 856811.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+2 2 Open-ILS/tests/datasets/concerto.sql
+
+commit feb74214accc9c710e5d0b18214113b17febb9c8
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Wed Oct 10 17:26:06 2012 -0400
+
+ Sample Apache error syslog captures stderr
+
+ Not all STDERR output and not all $req->log->foo() output makes it to
+ the Apache error log when using the 'ErrorLog syslog:local7'
+ configuration directive. This changes the sample config to match the
+ CustomLog config so that all output is captured and redirected to
+ syslog.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+1 1 Open-ILS/examples/apache/eg.conf
+
+commit fe1e9f77eb422649180e691b836a79f93aa90b08
+Author: Mark Cooper <markchristophercooper at gmail.com>
+Date: Mon Oct 22 22:01:22 2012 -0700
+
+ LP#1066629: Acq: Receiving an item should not change the status to "In Process" in many cases
+
+ As suggested, when received, restrict copy status update for lineitem copies to only those that were on-order. Otherwise copies may have the status set to 'In Process' inappropriately.
+
+ Signed-off-by: Mark Cooper <markchristophercooper at gmail.com>
+ Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+2 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm
+
+commit 4bf6dd1c717d56914230285a5d30b5b81a9e5d73
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date: Tue Oct 23 16:27:00 2012 -0400
+
+ Add missing ? to url_prefix regex check
+
+ Fixes Barcode Completion and who knows what else.
+
+ Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+ Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+
+1 1 Open-ILS/xul/staff_client/chrome/content/OpenILS/global_util.js
+
+commit ac5161f3dbab7741a0f8ac06098990d7426465f9
+Author: Mark Cooper <markchristophercooper at gmail.com>
+Date: Tue Oct 9 21:04:32 2012 -0700
+
+ LP#826917: Marc editor, CTRL+F6, F7, F8 no longer working on 2.0+
+
+ Updated marcedit.js to recognize F6/7/8 according to codes at:
+ http://www.cambiaresearch.com/articles/15/javascript-char-codes-key-codes.
+ Did not modify behavior (so input focus is not adjusted post record load).
+
+ Signed-off-by: Mark Cooper <markchristophercooper at gmail.com>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+6 6 Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit 9cbd12e03f7107aaa179cd3e1e35c5e66e74a7ce
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Thu Oct 18 14:54:08 2012 -0400
+
+ Rollback cstore transaction before bbag record load
+
+ To avoid timeouts, which results in transaction rollbacks, preemptively
+ roll back the bookbag fetching cstore transaction before we retrieve
+ what could be a very large list of bookbag records data.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+
+9 0 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
+
+commit c24e34676132640e5c652383290e4d5a5f705fc3
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Tue Oct 9 16:49:09 2012 -0400
+
+ Authority popups are empty: fix dojo.query() usage
+
+ When you right-click on a controllable field to display the contents of
+ the matching authority records, the contents of the matching authority
+ records simply appear as empty grey boxes.
+
+ This is another case of needing to iterate over multiple values
+ separately rather than using one convenient CSS selector.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+7 1 Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit f0caffee4f0fa32e897903cf6ad9773b0e6cfbe1
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Mon Oct 8 22:30:32 2012 -0400
+
+ Enable maintain_control_number() to handle new OCLCnums
+
+ In July 2013, per LP# 1049171, OCLC will begin generating control
+ numbers beginning with the "on" prefix.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ Conflicts:
+
+ Open-ILS/src/sql/Pg/002.schema.config.sql
+
+2 2 Open-ILS/src/sql/Pg/002.functions.config.sql
+1 1 Open-ILS/src/sql/Pg/002.schema.config.sql
+137 0 Open-ILS/src/sql/Pg/upgrade/0742.schema.maintain_control_number_oclc.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0742.schema.maintain_control_number_oclc.sql
+
+commit 3fcd13fb8ab41910719ca53a9d1313fd39880767
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Fri Sep 28 13:58:07 2012 -0400
+
+ ACQ invoice tabs scroll improvements
+
+ Avoid nested scrollbars on tabbed ACQ invoice UI. This is done by
+ removing a ContentPane layer and setting doLayout='false' on the
+ TabContainer, which allows the individual tabs to control their own
+ height dynamically, which means no more hard-set 600px height on the
+ tabs.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+5 3 Open-ILS/src/templates/acq/invoice/view.tt2
+
+commit af303657985f5d27bd100b14c1630f7c7b3e4524
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Mon Sep 17 14:50:36 2012 -0400
+
+ ACQ scroll back to top of lineitem info page
+
+ When displaying the lineitem "info" page (li attributes, marc record),
+ be sure to scroll to the top of the page instead of relying on the
+ previous scroll location. In particular, if you last viewed a LI
+ toward the bottom of the page, returned (causes scroll down), then go
+ back into the info page, the page will be scrolled to the bottom.
+
+ The solution is a little funkier than I'd hoped. The scroll-to point
+ has to be a node that is a) within the scrolling dojo div and b). non-
+ visible when scrollIntoView is called. Since the top-level
+ page div may be different, depending on who is loading li_table, we rely
+ on the caller to place an id=oils-scroll-to-top div in the page for
+ general top-scrolling. (Note, also, window.scrollTo does not work when
+ it's the div and not the full page that needs scrolling).
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+1 0 Open-ILS/src/templates/acq/picklist/view.tt2
+1 0 Open-ILS/src/templates/acq/po/view.tt2
+1 0 Open-ILS/src/templates/acq/search/unified.tt2
+3 0 Open-ILS/web/js/ui/default/acq/common/li_table.js
+
+commit 2cb18f20ed1c41d4d24afbcdbcb848e6b57043e0
+Author: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+Date: Thu Oct 11 16:00:36 2012 -0400
+
+ TPAC: Make facet display work as in JSPAC
+
+ Namely, this means:
+ - You see five facets per category by default, not ten.
+ - You can click a link to see all the facets in a category
+ (before this it was impossible to display more than ten).
+ - When viewing all the facets in a category, you can click a link
+ to reduce the list back to five.
+ - This number five I'm talking about is configurable in config.tt2.
+ - Alphabetical sorting of facets grouped by the same numbers of
+ results is restored.
+
+ This addresses LP #1065109.
+
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+8 2 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Util.pm
+3 1 Open-ILS/src/templates/opac/css/style.css.tt2
+1 0 Open-ILS/src/templates/opac/parts/config.tt2
+31 27 Open-ILS/src/templates/opac/parts/result/facets.tt2
+
+commit 8a929d746246b56f2670d1b71adaec3377ba67c8
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Thu Aug 23 17:29:42 2012 -0400
+
+ Improvements to custom org tree UI
+
+ This replaced the PermaCrud.js create() calls with inline transaction
+ begin, creates, and commit. We do this to solve a number of problems:
+
+ * Create all new nodes within the same transaction so that a failure
+ gracefully rolls back.
+
+ * PermaCrud.js does not currently disconnect opensrf client sessions
+ (though it has a disconnect() method). We can manage that locally.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+41 10 Open-ILS/web/js/ui/default/conify/global/actor/org_unit_custom_tree.js
+
+commit de412ce69871671af7970abba42b10fc33554b8b
+Author: Steven Callender <stevecallender at esilibrary.com>
+Date: Mon Oct 15 10:48:28 2012 -0400
+
+ Added a check for the money.collections_tracker table when using the open-ils.collections.users_of_interest.warning_penalty.retrieve API call.
+
+ Users that are already entered into the money.collections_tracker table should not be recalled from the open-ils.collections.users_of_interest.warning_penalty.retrieve API. This change will check for the existance of the user in the money.colletions_tracker table.
+
+ Signed-off-by: Steven Callender <stevecallender at esilibrary.com>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+10 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Collections.pm
+
+commit 3d12351fdf70f702df05dafeff0b860e25a89c34
+Author: Galen Charlton <gmc at esilibrary.com>
+Date: Fri Oct 12 15:38:59 2012 -0400
+
+ trivial whitespace cleanup
+
+ Locally consistent, globally all over the map in this file.
+
+ Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+1 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm
+
+commit 8b8e973310638da48d9ac92ee636e4ee6a51fe43
+Author: Chris Sharp <csharp at georgialibraries.org>
+Date: Thu Oct 11 19:33:16 2012 -0400
+
+ Adding a WHERE clause to prevent timeout of juv-to-adult function
+
+ Signed-off-by: Chris Sharp <csharp at georgialibraries.org>
+ Signed-off-by: Galen Charlton <gmc at esilibrary.com>
+
+2 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Storage/Publisher/actor.pm
+
+commit 239e70e2256b52bcb2d4dd32fa310c5e77b98e6e
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Thu Oct 11 01:43:01 2012 -0400
+
+ TPAC: Respect location visibility for result copies
+
+ Robert Soulliere noted in LP# 1062502 that copies in a location marked
+ "opac_visible = FALSE" were erroneously being displayed in search
+ results. This would occur if at least one copy on a record was in a
+ visible location, but other copies were in an invisible location.
+
+ This commit prevents copies in hidden locations from being displayed,
+ and also adds guards for the visibility of the copy status and the
+ circulation library.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Robert Soulliere <robert.soulliere at mohawkcollege.ca>
+
+5 0 Open-ILS/src/templates/opac/parts/misc_util.tt2
+
+commit b39ac1de1e4b1b598b7ada95872e012f643f8157
+Author: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+Date: Thu Sep 27 14:51:44 2012 -0400
+
+ Serials: Don't force a Receive Unit Template in Alt Serials Control
+
+ Mary Llewellyn reported that she used to be able to use serials and
+ perform copy-less receiving without any value in this field.
+
+ The requirement that a value be set in the Receive Unit Template field
+ of serial distributions was added (by me) in 2.1 to the alternate serials
+ control interface, but is not enforced at lower levels.
+
+ I now believe that requiring a value here must have been a ham-handed
+ way to avoid a difficult-to-troubleshoot issue in copy-FUL receiving,
+ but copy-LESS serials receiving workflows indeed don't need this, so
+ this commit removes the requirement.
+
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+0 1 Open-ILS/src/templates/serial/subscription/distribution.tt2
+
+commit a8e9d68e93f0a1d4fd1d2202c40180d2247d848b
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Wed Sep 5 14:39:36 2012 -0400
+
+ Use current fiscal year for PO creation (API)
+
+ When creating a PO, if no fiscal_year is specified by the caller, use
+ the current fiscal year of the ordering agency. This change primarily
+ affects the Open-ILS/src/support-scripts/acq_order_reader.pl script (and
+ any other direct API callers) which does not offer the user a chance to
+ set the fiscal year manually.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+
+11 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Acq/Order.pm
+
+commit 436fae85993182a81fdd85428949ccc26049ec8e
+Author: Mike Rylander <mrylander at gmail.com>
+Date: Thu Sep 20 15:17:36 2012 -0400
+
+ Fix autosuggest when in no-vis-check mode
+
+ When autosuggest is configured to avoid visiblity checking, it sends a
+ special org unit id of -1 to the database as a signal. However, the stored
+ procedure is expecting a NULL instead. This allows either by transforming
+ -1 to NULL within the stored procedure.
+
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+ Conflicts:
+
+ Open-ILS/src/sql/Pg/002.schema.config.sql
+
+1 1 Open-ILS/src/sql/Pg/002.schema.config.sql
+1 0 Open-ILS/src/sql/Pg/030.schema.metabib.sql
+134 0 Open-ILS/src/sql/Pg/upgrade/0740.schema.checkless_browse_fix.sql
+ create mode 100644 Open-ILS/src/sql/Pg/upgrade/0740.schema.checkless_browse_fix.sql
+
+commit 4e9aaf50a1a7e1655183bcfce1ea00255c172d72
+Author: Mark Cooper <markchristophercooper at gmail.com>
+Date: Tue Oct 9 12:41:44 2012 -0700
+
+ LP#1007020: Using checkout, last activity shows as unset
+
+ Added usr_activity to $fields for flesh_user function.
+
+ Signed-off-by: Mark Cooper <markchristophercooper at gmail.com>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+2 1 Open-ILS/src/perlmods/lib/OpenILS/Application/Actor.pm
+
+commit d2bd31086e134610602c3a6a8e17b68de775d98b
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Thu Aug 30 00:21:01 2012 -0400
+
+ Remove C compiler warning for writeAuditInfo
+
+ The C compiler was throwing the following warning:
+
+ oils_sql.c: In function 'writeAuditInfo':
+ oils_sql.c:7244:1: warning: control reaches end of non-void function
+ [-Wreturn-type]
+
+ By shifting the "return 0" to the end of the function, outside of the if
+ statements, we can ensure that we always return an int value.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+
+1 1 Open-ILS/src/c-apps/oils_sql.c
+
+commit e30193d1712cbb6f4ebb17d71d00a0b5e1eb3b10
+Author: Michael Peters <mrpeters at library.in.gov>
+Date: Fri Sep 21 11:47:41 2012 -0400
+
+ TPAC: Add a progress spinner after pressing search on Advanced Search
+
+ Advanced Search had no indication of progress once you've submitted
+ a search. We should add a "progressbar_green.gif" like the basic search
+ has, so the user knows their search is in progress, and (hopefully)
+ avoids them from hammering submit to get a result.
+
+ Signed-off-by: Michael Peters <mrpeters at library.in.gov>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+6 1 Open-ILS/src/templates/opac/parts/advanced/search.tt2
+
+commit aedb6254511dbb6656a1dceafe8085c8b4cec010
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Wed Oct 3 15:00:26 2012 -0400
+
+ ACQ invoice receive UI handles async LI retrieval
+
+ openils.acq.Linetitem.fetchAndRender() now fetches lineitems
+ asynchronously. This commit causes the invoice receive UI to calculate
+ the copies to be received after all lineitems have been (async) fetched.
+ Without this, it always appears as though there are no copies to receive
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+23 13 Open-ILS/web/js/ui/default/acq/invoice/receive.js
+
+commit 49c9f1214f2663b2a6b12af0ce20a279d095be20
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Wed Oct 10 22:06:32 2012 -0400
+
+ TPAC: Avoid 500 errs on record page due to ipv6 ignorance
+
+ Net::HTTP does not handle ipv6 addresses properly, and is subject to
+ failing to return a request object if handed one (some systems seem to
+ prefer ipv6). This commit checks the value of the request object before
+ invoking any methods on it, and also short-circuits the AC lookup loop
+ if the host could not be resolved to avoid flooding the logs with
+ multiple "Unable to connect..." warnings.
+
+ If Net::HTTP grows ipv6 support, this commit can still stay in place and
+ the lookups will just start magically working.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+5 2 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm
+
+commit 9e6ab63c189c3ac177f8422b532c76270f20cafd
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Mon Sep 10 09:32:17 2012 -0400
+
+ TPAC: Remove noise, misleading text from myopac/holds/circs/circ_history
+
+ There are many "class='hide_me'" elements that will never be displayed
+ and which are currently just extra bits to ship over the wire. Same for
+ the inline comments.
+
+ Also move most of the inline styles out to the stylesheet.
+
+ Also remove the explicit widths on the table cells; if the font size
+ changes or the translated text is wider than the table cells, then the
+ display will become comical.
+
+ Also remove explicit <br> tags from localized strings; given the
+ likelihood that font sizes and column widths will change, <br> tags
+ inside localized strings make very little sense.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+23 1 Open-ILS/src/templates/opac/css/style.css.tt2
+13 28 Open-ILS/src/templates/opac/myopac/circ_history.tt2
+19 66 Open-ILS/src/templates/opac/myopac/circs.tt2
+42 104 Open-ILS/src/templates/opac/myopac/holds.tt2
+1 3 Open-ILS/src/templates/opac/parts/login/password_hint.tt2
+1 1 Open-ILS/src/templates/opac/parts/place_hold_result.tt2
+5 1 Open-ILS/web/css/skin/default/opac/semiauto.css
+
+commit 63fcae2a0961ee9e0a4b516b678daccf9f7c9fc3
+Author: Mike Rylander <mrylander at gmail.com>
+Date: Mon Oct 8 14:12:49 2012 -0400
+
+ Be more strict about dates we generate
+
+ ISO-8601 dates must have a 4-character year component, however strftime does
+ not left-pad years to 4 characters when the century is one character long even
+ though the man page for strftime(3) suggests otherwise:
+
+ %F Equivalent to %Y-%m-%d (the ISO 8601 date format). (C99)
+
+ This makes stricter ISO-8601 parsers, such as Perl's DateTime module, unhappy.
+ So, we'll do it ourselves using the glibc extensions available to strftime for
+ specifying a padding character and desired length.
+
+ Signed-off-by: Mike Rylander <mrylander at gmail.com>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+4 4 Open-ILS/src/c-apps/oils_sql.c
+
+commit 465488439e75bbb9bc9fbbba0e23c0036cf9937d
+Author: Dan Scott <dan at coffeecode.net>
+Date: Mon Oct 8 15:08:47 2012 -0400
+
+ Checkout: further validation of due date override
+
+ The check_past() function failed if given a date that was not strictly
+ in YYYY-mm-dd format; interestingly, a common transposition typo such
+ as "0212-10-20" results in "212-10-20" getting passed to check_past(),
+ and therefore generating an invalid date. Throw an exception in
+ check_past() rather than returning true, because we are not in fact
+ stating that the due date is in the past - and catch the exception and
+ flag the due date override box accordingly in the checkout screen.
+
+ We could bubble the exception up to the user, but hopefully highlighting
+ the checkout box as being in an invalid state will catch the attention
+ of the users.
+
+ [LFW: Slightly amended a comment in OpenILS/WWW/EGCatLoader/Util.pm]
+
+ Signed-off-by: Dan Scott <dan at coffeecode.net>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+1 1 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Util.pm
+9 1 Open-ILS/xul/staff_client/chrome/content/util/date.js
+12 5 Open-ILS/xul/staff_client/server/circ/checkout.js
+
+commit 2950191dc6d56adbaf11afc5a13126d841b41b1c
+Author: Dan Scott <dan at coffeecode.net>
+Date: Mon Oct 8 11:25:41 2012 -0400
+
+ TPAC: Invalid due dates cause 500 server error
+
+ CStore appears to return dates with leading 0s (such as '0212-10-08
+ 23:59:59-05:17:32') with the leading 0s stripped off, resulting in
+ cases with 1-digit or 3-digit years for which DateTime::Format::ISO8601
+ returns an error.
+
+ We can protect against this problem by adding some defensive code to the
+ TPAC utility method to add the 0s back to the start of the year. We can
+ also log the problem when it occurs so that administrators can fix the
+ problem dates in the database.
+
+ Signed-off-by: Dan Scott <dan at coffeecode.net>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+16 1 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Util.pm
+
+commit 583bf046ad122225c749105b973b1d78293271ec
+Author: Jason Stephenson <jstephenson at mvlc.org>
+Date: Wed Oct 3 12:42:01 2012 -0400
+
+ LP1052941: Internal Server Error when adding to My List in staff client.
+
+ Don't redirect in EGCatLoader/Account.pm when in staff client context and
+ we're adding to a My List/Bookbag.
+
+ Add a wrapper macro to bookbag_actions.tt2 to wrap the add to book bag URLs
+ with some javascript that opens a new tab in the staff client. This is to
+ prevent the staff person from losing their search results as they would if
+ the new URL were opened in their current tab.
+
+ Signed-off-by: Jason Stephenson <jstephenson at mvlc.org>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+7 4 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Account.pm
+20 10 Open-ILS/src/templates/opac/parts/bookbag_actions.tt2
+
+commit c387ad7febf7f3ce9049187e18016fc5aa108e80
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Fri Sep 28 16:53:05 2012 -0400
+
+ "Select All" option in invoice search results
+
+ Adds a new Select All checkbox along the top of the invoice search
+ results page.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+3 0 Open-ILS/src/templates/acq/invoice/view.tt2
+8 0 Open-ILS/web/js/ui/default/acq/invoice/view.js
+
+commit 33c0f8439f15cb13a0c59adfd8702eb1f68b803f
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Thu Aug 30 11:55:10 2012 -0400
+
+ Slightly saner login form markup
+
+ Try to provide accessibility via label attributes and move from a
+ table-within-a-table layout to a single table for the form.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+43 124 Open-ILS/src/templates/opac/parts/login/form.tt2
+
+commit 30d325f369744adf9fb8ebc4d2f200de5d0a7ee2
+Author: Steven Chan <schan at sitka.bclibraries.ca>
+Date: Wed Jul 25 13:45:40 2012 -0700
+
+ Fix LP1029095, Acq: Receive Items on an Invoice does not work with Line Item Alerts
+
+ 1. Item reception was encountering a Javascript exception in the
+ check_lineitem_alerts() helper function, because there was a mismatch
+ between the input parameter name and the variable name actually used.
+
+ 2. Also, took the opportunity to improve the performance of the for loop
+ to scan through alerts.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+6 4 Open-ILS/web/js/ui/default/acq/invoice/receive.js
+
+commit d3e30b106d06159c0edf4f9a59e6df5dfd4bd694
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Tue Aug 28 17:03:28 2012 -0400
+
+ Use CSS selectors that new XUL can live with
+
+ Just another case of current XUL not liking Dojo 1.3's "dojo.query('foo
+ bar')" and converting it to "dojo.query('foo').query('bar')" instead.
+
+ This problem manifested as bizarrely large fixed field grids and an
+ absence of working authority context menus.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+
+3 3 Open-ILS/xul/staff_client/server/cat/marcedit.js
+
+commit c6a1c0432c437c3e84384cfa6cf83b05900e02ca
+Author: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+Date: Fri Sep 28 15:26:06 2012 -0400
+
+ Make scrollOnFocus default to false for dojo-based/conify interfaces
+
+ This change is intended to prevent a phenomenon in certain user
+ interfaces wherein clicking on a button or other widget can cause a
+ user's screen to suddenly jump and the user to need to click the widget
+ a second time before the desired function actually happens.
+
+ Dijits that have the scrollOnFocus property are the ones that tend to
+ exhibit this issue, especially, but not always, within the staff client
+ when the user's xulrunner window is not maximized.
+
+ There may be cases of interfaces actually relying on scrollOnFocus to do
+ something, but I think those cases should be so rare that this is still
+ worth doing, and exceptions can be applied there as needed.
+
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+6 1 Open-ILS/web/js/ui/base.js
+
+commit 9692199c47cb01782cfd3156a2bfd3669fe446e3
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date: Tue Jun 19 12:23:09 2012 -0400
+
+ Can't use README for version, so use configure.ac
+
+ Because one good "this works for now" being broken can be replaced with
+ another one easily.
+
+ Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2 2 Open-ILS/xul/staff_client/Makefile.am
+
+commit e07ffc9987f47d14db6347ab3f7174412af0d626
+Author: Michael Peters <mrpeters at library.in.gov>
+Date: Mon Oct 1 14:51:31 2012 -0400
+
+ LP#1020261 Better label for "Host" field in acq.edi_account
+
+ The host field of acq.edi_account is really meant to contain more than just a hostname.
+ It needs a scheme part, so that the whole contents of the field should be URI-ish, like
+
+ ftp://ftp1.somevendor.com
+
+ Otherwise Evergreen's EDI mechanism can guess wrongly that we want to use
+ SSH instead of FTP to connect.
+
+ This also adds a description for the field, in the footer, along with the other
+ "helpers".
+
+ Signed-off-by: Michael Peters <mrpeters at library.in.gov>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+1 0 Open-ILS/src/templates/conify/global/acq/edi_account.tt2
+
+commit 9e10d38b34a90e98ce4298b7fe7b63bdbed3197b
+Author: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+Date: Wed Jun 27 18:38:19 2012 -0400
+
+ Add two fields to the new FlattenerGrid-based hold pull list
+
+ Namely (current) copy status and (number of) potential copies.
+
+ I believe this implementation has a negligible impact on the efficiency
+ of the hold pull list query overall.
+
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Kathy Lussier <klussier at masslnc.org>
+
+8 1 Open-ILS/examples/fm_IDL.xml
+1 0 Open-ILS/src/templates/circ/hold_pull_list.tt2
+
+commit 36a51d2b194f6bac647630fbe67d44c2bbb84cf6
+Author: Robert Soulliere <robert.soulliere at mohawkcollege.ca>
+Date: Wed Oct 3 13:21:57 2012 -0400
+
+ Documentation: Update upgrade instructions to 2.3.0.
+
+ Signed-off-by: Robert Soulliere <robert.soulliere at mohawkcollege.ca>
+
+12 12 docs/installation/server_upgrade.txt
+
+commit 719dd030798e6dfec081af9188904f59e37142ff
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Wed Sep 26 23:13:41 2012 -0400
+
+ Teach make_release to set the eg_version var
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+1 0 build/tools/make_release
+
+commit 5c8b83b596f9289a7141d0b566bdccf441319f8c
+Author: Galen Charlton <gmc at esilibrary.com>
+Date: Wed Sep 26 22:54:06 2012 -0400
+
+ After upgrade, list records with missing or incorrect 901$c
+
+ This is a common cause of pain for upgrades. Let's try to identify the
+ problem early (even if it takes forever on a site with 3 million bibs)
+ and offer advice on correcting the problem if it is flagged.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+20 0 Open-ILS/src/sql/Pg/version-upgrade/2.2-2.3.0-upgrade-db.sql
+
+commit 06d54e49c37519409df8dd92cc7624779270d7a3
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Wed Sep 26 22:11:45 2012 -0400
+
+ Apply the 0715 update during the 2.3.0 upgrade
+
+ Per LP# 1057183, the 0715 update should have been applied during the
+ 2.1-2.2 upgrade, but appears not to have been - and that ends up
+ causing problems during the 2.2-2.3 upgrade. Thus we prophylactically
+ attempt to apply it again.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+14 0 Open-ILS/src/sql/Pg/version-upgrade/2.2-2.3.0-upgrade-db.sql
+
+commit 7e565f99e650ddd2a979a53d59416cb424ced8d2
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Wed Sep 26 22:02:17 2012 -0400
+
+ Add an explicit "set eg_version" at start of upgrade script
+
+ Thanks to Robert Soulliere for raising this issue in LP# 1057113!
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+3 0 Open-ILS/src/sql/Pg/version-upgrade/2.2-2.3.0-upgrade-db.sql
+
+commit 0b0a01d34b16078b71c5ac99804fa2a4692ecf84
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Wed Sep 26 22:00:03 2012 -0400
+
+ Add the 2.2-2.3.0 upgrade script
+
+ Cloned from b9a480e7f640e7.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+2219 0 Open-ILS/src/sql/Pg/version-upgrade/2.2-2.3.0-upgrade-db.sql
+ create mode 100644 Open-ILS/src/sql/Pg/version-upgrade/2.2-2.3.0-upgrade-db.sql
+
+commit aaf94d278b24e59000b705d14965d479576c3e54
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Mon Sep 24 17:12:11 2012 -0400
+
+ TPAC added content lookup uses local server address
+
+ Use the current Apache server's IP address instead of apache->hostname
+ to determine where to route TPAC added content lookups. This allows the
+ server to handle the added content lookup locally instead of having to
+ route out and back into the cluster.
+
+ Continue using apache->hostname as the Host header to ensure the proper
+ virtualhost is used once the request is received.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Michael Peters <mrpeters at library.in.gov>
+
+13 6 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm
+
+commit 661fe70abe324c082ab9d6d0c1f01c64e2f4c9ef
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Mon Sep 24 12:50:47 2012 -0400
+
+ Added content connect timeout
+
+ Make tpac server-side added content lookups exit after a brief timeout
+ when the apache module is unable to open a connection to its own
+ top-level hostname (the virtualhost, apache->hostname).
+
+ As noted in the code comments, even though we are using Net::Server::NB
+ (non-blocking), it's only non-blocking in the sense of content
+ retrieval, not in how it calls connect() under the covers.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Michael Peters <mrpeters at library.in.gov>
+
+12 2 Open-ILS/src/perlmods/lib/OpenILS/WWW/EGCatLoader/Record.pm
+
+commit ed4c91efd0b2994f465405a790f308d5e1c36af0
+Author: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+Date: Mon May 14 14:50:43 2012 -0400
+
+ Copy Location Order Editor: avoid interface failure with blank area
+
+ Symptom is "ll is undefined" at line 65 of previous version of this
+ file.
+
+ Reported by George Duimovich and John Jones.
+
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+6 3 Open-ILS/web/js/ui/default/conify/global/asset/copy_location_order.js
+
+commit f3e2ab810f0cf504445ddf166dce0596c421b9a3
+Author: Thomas Berezansky <tsbere at mvlc.org>
+Date: Thu Sep 20 15:45:05 2012 -0400
+
+ TPac: Disable "Enter places hold" for staff
+
+ This should prevent barcode scanners from auto-submitting on scan.
+
+ Signed-off-by: Thomas Berezansky <tsbere at mvlc.org>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+1 1 Open-ILS/src/templates/opac/parts/place_hold.tt2
+7 0 Open-ILS/web/js/ui/default/opac/staff.js
+
+commit 18966cef95eca990d4fdd39a6bbb6f36f5350367
+Author: Jeff Godin <jgodin at tadl.org>
+Date: Wed Apr 25 02:59:01 2012 -0400
+
+ Syndetic AC: Add more review sources with comments
+
+ * Add more Syndetic review sources (commented out)
+ Add additional Syndetic review sources, commented out
+ for performance reasons -- each source represents a distinct
+ request from the server to the AC provider, and we currently
+ lack a means of configuring which are on/off, short of
+ commenting / uncommenting.
+
+ * Add comments for Syndetics review sources
+ * Fix file name for School Library Journal reviews, add New
+ York Times reviews.
+
+ Signed-off-by: Jeff Godin <jgodin at tadl.org>
+ Signed-off-by: Lebbeous Fogle-Weekley <lebbeous at esilibrary.com>
+
+18 8 Open-ILS/src/perlmods/lib/OpenILS/WWW/AddedContent/Syndetic.pm
+
+commit 8292cb5d1e71715187e1adc6cee602bf65b45877
+Author: Bill Erickson <berick at esilibrary.com>
+Date: Fri Sep 21 17:10:58 2012 -0400
+
+ Copy location group searching repairs
+
+ In the get_library BLOCK, upgrade any use of 'loc' to 'locg' instead of
+ trying to determine which to use in which situation. Before this change,
+ 'loc' was being used as the loc_name for the main org unit selector,
+ which should always use 'locg'. For any other cases (related to search
+ params), it's always safe to use 'locg' over 'loc'.
+
+ Signed-off-by: Bill Erickson <berick at esilibrary.com>
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+4 10 Open-ILS/src/templates/opac/parts/misc_util.tt2
+
+commit 4dbef40874c931368c52af413860b47e89565d6b
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Fri Sep 28 01:00:54 2012 -0400
+
+ Docs want a space after the main header
+
+ Formatting gets messed up if we don't have the expected blank line after
+ the main header. Okay.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+1 0 docs/opac/new_skin_customizations.txt
+
+commit a6221b4be39335a48f659807467b167860816920
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Thu Sep 27 23:52:14 2012 -0400
+
+ Docs: Minimum list of TPAC templates to customize
+
+ In an effort to help new sites adopt the TPAC and avoid leaving
+ embarrassing placeholders around, I present... the minimum list!
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+
+91 0 docs/opac/new_skin_customizations.txt
+9 1 docs/root.txt
+ create mode 100644 docs/opac/new_skin_customizations.txt
+
+commit 2fed63c6e82e6226c56b16ba4b350b30bee58e11
+Author: Ben Shum <bshum at biblio.org>
+Date: Wed Sep 5 17:02:43 2012 -0400
+
+ Make relator_map script executable
+
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+0 0 build/tools/relator_map
+ mode change 100644 => 100755 build/tools/relator_map
+
+commit 788dc1ff65856c627e05f7deeb37541dd422edff
+Author: Dan Scott <dscott at laurentian.ca>
+Date: Wed Sep 5 00:27:03 2012 -0400
+
+ TPAC: Fine-grained credits in record details
+
+ For 7xx fields with $4 subfields containing relator codes, generate a
+ relator code map from http://www.loc.gov/marc/relators/relacode.html
+ that we can use in the record details to provide specific credits,
+ rather than the generic (and often inappropriate) "Added author" label.
+
+ For example:
+
+ 700 1. ‡aMaley, Desmond, ‡d1954- ‡4prf.
+
+ This now generates "Maley, Desmond, 1954- (Performer)" in the record
+ details credit section.
+
+ Signed-off-by: Dan Scott <dscott at laurentian.ca>
+ Signed-off-by: Ben Shum <bshum at biblio.org>
+
+8 5 Open-ILS/src/templates/opac/parts/record/authors.tt2
+228 0 Open-ILS/src/templates/opac/parts/relators.tt2
+72 0 build/tools/relator_map
+ create mode 100644 Open-ILS/src/templates/opac/parts/relators.tt2
+ create mode 100644 build/tools/relator_map
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
index cd4dbbf..b3c6e67 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Application.pm
@@ -6,7 +6,7 @@ use base qw/OpenSRF::Application/;
sub ils_version {
# version format is "x-y-z", for example "2-0-0" for Evergreen 2.0.0
# For branches, format is "x-y"
- return "HEAD";
+ return "2-3-1";
}
__PACKAGE__->register_method(
diff --git a/Open-ILS/src/sql/Pg/002.schema.config.sql b/Open-ILS/src/sql/Pg/002.schema.config.sql
index 1a5775f..64a87e9 100644
--- a/Open-ILS/src/sql/Pg/002.schema.config.sql
+++ b/Open-ILS/src/sql/Pg/002.schema.config.sql
@@ -88,6 +88,7 @@ CREATE TRIGGER no_overlapping_deps
FOR EACH ROW EXECUTE PROCEDURE evergreen.array_overlap_check ('deprecates');
INSERT INTO config.upgrade_log (version, applied_to) VALUES ('0742', :eg_version); -- dbs/senator
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.3.1', :eg_version);
CREATE TABLE config.bib_source (
id SERIAL PRIMARY KEY,
diff --git a/Open-ILS/src/sql/Pg/version-upgrade/2.3.0-2.3.1-upgrade-db.sql b/Open-ILS/src/sql/Pg/version-upgrade/2.3.0-2.3.1-upgrade-db.sql
new file mode 100644
index 0000000..089b799
--- /dev/null
+++ b/Open-ILS/src/sql/Pg/version-upgrade/2.3.0-2.3.1-upgrade-db.sql
@@ -0,0 +1,271 @@
+--Upgrade Script for 2.3.0 to 2.3.1
+BEGIN;
+INSERT INTO config.upgrade_log (version, applied_to) VALUES ('2.3.1', :eg_version);
+
+SELECT evergreen.upgrade_deps_block_check('0740', :eg_version);
+
+CREATE OR REPLACE
+ FUNCTION metabib.suggest_browse_entries(
+ raw_query_text TEXT, -- actually typed by humans at the UI level
+ search_class TEXT, -- 'alias' or 'class' or 'class|field..', etc
+ headline_opts TEXT, -- markup options for ts_headline()
+ visibility_org INTEGER,-- null if you don't want opac visibility test
+ query_limit INTEGER,-- use in LIMIT clause of interal query
+ normalization INTEGER -- argument to TS_RANK_CD()
+ ) RETURNS TABLE (
+ value TEXT, -- plain
+ field INTEGER,
+ buoyant_and_class_match BOOL,
+ field_match BOOL,
+ field_weight INTEGER,
+ rank REAL,
+ buoyant BOOL,
+ match TEXT -- marked up
+ ) AS $func$
+DECLARE
+ prepared_query_texts TEXT[];
+ query TSQUERY;
+ plain_query TSQUERY;
+ opac_visibility_join TEXT;
+ search_class_join TEXT;
+ r_fields RECORD;
+BEGIN
+ prepared_query_texts := metabib.autosuggest_prepare_tsquery(raw_query_text);
+
+ query := TO_TSQUERY('keyword', prepared_query_texts[1]);
+ plain_query := TO_TSQUERY('keyword', prepared_query_texts[2]);
+
+ visibility_org := NULLIF(visibility_org,-1);
+ IF visibility_org IS NOT NULL THEN
+ opac_visibility_join := '
+ JOIN asset.opac_visible_copies aovc ON (
+ aovc.record = x.source AND
+ aovc.circ_lib IN (SELECT id FROM actor.org_unit_descendants($4))
+ )';
+ ELSE
+ opac_visibility_join := '';
+ END IF;
+
+ -- The following determines whether we only provide suggestsons matching
+ -- the user's selected search_class, or whether we show other suggestions
+ -- too. The reason for MIN() is that for search_classes like
+ -- 'title|proper|uniform' you would otherwise get multiple rows. The
+ -- implication is that if title as a class doesn't have restrict,
+ -- nor does the proper field, but the uniform field does, you're going
+ -- to get 'false' for your overall evaluation of 'should we restrict?'
+ -- To invert that, change from MIN() to MAX().
+
+ SELECT
+ INTO r_fields
+ MIN(cmc.restrict::INT) AS restrict_class,
+ MIN(cmf.restrict::INT) AS restrict_field
+ FROM metabib.search_class_to_registered_components(search_class)
+ AS _registered (field_class TEXT, field INT)
+ JOIN
+ config.metabib_class cmc ON (cmc.name = _registered.field_class)
+ LEFT JOIN
+ config.metabib_field cmf ON (cmf.id = _registered.field);
+
+ -- evaluate 'should we restrict?'
+ IF r_fields.restrict_field::BOOL OR r_fields.restrict_class::BOOL THEN
+ search_class_join := '
+ JOIN
+ metabib.search_class_to_registered_components($2)
+ AS _registered (field_class TEXT, field INT) ON (
+ (_registered.field IS NULL AND
+ _registered.field_class = cmf.field_class) OR
+ (_registered.field = cmf.id)
+ )
+ ';
+ ELSE
+ search_class_join := '
+ LEFT JOIN
+ metabib.search_class_to_registered_components($2)
+ AS _registered (field_class TEXT, field INT) ON (
+ _registered.field_class = cmc.name
+ )
+ ';
+ END IF;
+
+ RETURN QUERY EXECUTE '
+SELECT DISTINCT
+ x.value,
+ x.id,
+ x.push,
+ x.restrict,
+ x.weight,
+ x.ts_rank_cd,
+ x.buoyant,
+ TS_HEADLINE(value, $7, $3)
+ FROM (SELECT DISTINCT
+ mbe.value,
+ cmf.id,
+ cmc.buoyant AND _registered.field_class IS NOT NULL AS push,
+ _registered.field = cmf.id AS restrict,
+ cmf.weight,
+ TS_RANK_CD(mbe.index_vector, $1, $6),
+ cmc.buoyant,
+ mbedm.source
+ FROM metabib.browse_entry_def_map mbedm
+ JOIN (SELECT * FROM metabib.browse_entry WHERE index_vector @@ $1 LIMIT 10000) mbe ON (mbe.id = mbedm.entry)
+ JOIN config.metabib_field cmf ON (cmf.id = mbedm.def)
+ JOIN config.metabib_class cmc ON (cmf.field_class = cmc.name)
+ ' || search_class_join || '
+ ORDER BY 3 DESC, 4 DESC NULLS LAST, 5 DESC, 6 DESC, 7 DESC, 1 ASC
+ LIMIT 1000) AS x
+ ' || opac_visibility_join || '
+ ORDER BY 3 DESC, 4 DESC NULLS LAST, 5 DESC, 6 DESC, 7 DESC, 1 ASC
+ LIMIT $5
+' -- sic, repeat the order by clause in the outer select too
+ USING
+ query, search_class, headline_opts,
+ visibility_org, query_limit, normalization, plain_query
+ ;
+
+ -- sort order:
+ -- buoyant AND chosen class = match class
+ -- chosen field = match field
+ -- field weight
+ -- rank
+ -- buoyancy
+ -- value itself
+
+END;
+$func$ LANGUAGE PLPGSQL;
+
+
+SELECT evergreen.upgrade_deps_block_check('0742', :eg_version);
+
+-- Prepare for the July 2013 introduction of OCLC's "on" prefix
+-- Per LP# 1049171
+
+CREATE OR REPLACE FUNCTION maintain_control_numbers() RETURNS TRIGGER AS $func$
+use strict;
+use MARC::Record;
+use MARC::File::XML (BinaryEncoding => 'UTF-8');
+use MARC::Charset;
+use Encode;
+use Unicode::Normalize;
+
+MARC::Charset->assume_unicode(1);
+
+my $record = MARC::Record->new_from_xml($_TD->{new}{marc});
+my $schema = $_TD->{table_schema};
+my $rec_id = $_TD->{new}{id};
+
+# Short-circuit if maintaining control numbers per MARC21 spec is not enabled
+my $enable = spi_exec_query("SELECT enabled FROM config.global_flag WHERE name = 'cat.maintain_control_numbers'");
+if (!($enable->{processed}) or $enable->{rows}[0]->{enabled} eq 'f') {
+ return;
+}
+
+# Get the control number identifier from an OU setting based on $_TD->{new}{owner}
+my $ou_cni = 'EVRGRN';
+
+my $owner;
+if ($schema eq 'serial') {
+ $owner = $_TD->{new}{owning_lib};
+} else {
+ # are.owner and bre.owner can be null, so fall back to the consortial setting
+ $owner = $_TD->{new}{owner} || 1;
+}
+
+my $ous_rv = spi_exec_query("SELECT value FROM actor.org_unit_ancestor_setting('cat.marc_control_number_identifier', $owner)");
+if ($ous_rv->{processed}) {
+ $ou_cni = $ous_rv->{rows}[0]->{value};
+ $ou_cni =~ s/"//g; # Stupid VIM syntax highlighting"
+} else {
+ # Fall back to the shortname of the OU if there was no OU setting
+ $ous_rv = spi_exec_query("SELECT shortname FROM actor.org_unit WHERE id = $owner");
+ if ($ous_rv->{processed}) {
+ $ou_cni = $ous_rv->{rows}[0]->{shortname};
+ }
+}
+
+my ($create, $munge) = (0, 0);
+
+my @scns = $record->field('035');
+
+foreach my $id_field ('001', '003') {
+ my $spec_value;
+ my @controls = $record->field($id_field);
+
+ if ($id_field eq '001') {
+ $spec_value = $rec_id;
+ } else {
+ $spec_value = $ou_cni;
+ }
+
+ # Create the 001/003 if none exist
+ if (scalar(@controls) == 1) {
+ # Only one field; check to see if we need to munge it
+ unless (grep $_->data() eq $spec_value, @controls) {
+ $munge = 1;
+ }
+ } else {
+ # Delete the other fields, as with more than 1 001/003 we do not know which 003/001 to match
+ foreach my $control (@controls) {
+ $record->delete_field($control);
+ }
+ $record->insert_fields_ordered(MARC::Field->new($id_field, $spec_value));
+ $create = 1;
+ }
+}
+
+my $cn = $record->field('001')->data();
+# Special handling of OCLC numbers, often found in records that lack 003
+if ($cn =~ /^o(c[nm]|n)\d/) {
+ $cn =~ s/^o(c[nm]|n)0*(\d+)/$2/;
+ $record->field('003')->data('OCoLC');
+ $create = 0;
+}
+
+# Now, if we need to munge the 001, we will first push the existing 001/003
+# into the 035; but if the record did not have one (and one only) 001 and 003
+# to begin with, skip this process
+if ($munge and not $create) {
+
+ my $scn = "(" . $record->field('003')->data() . ")" . $cn;
+
+ # Do not create duplicate 035 fields
+ unless (grep $_->subfield('a') eq $scn, @scns) {
+ $record->insert_fields_ordered(MARC::Field->new('035', '', '', 'a' => $scn));
+ }
+}
+
+# Set the 001/003 and update the MARC
+if ($create or $munge) {
+ $record->field('001')->data($rec_id);
+ $record->field('003')->data($ou_cni);
+
+ my $xml = $record->as_xml_record();
+ $xml =~ s/\n//sgo;
+ $xml =~ s/^<\?xml.+\?\s*>//go;
+ $xml =~ s/>\s+</></go;
+ $xml =~ s/\p{Cc}//go;
+
+ # Embed a version of OpenILS::Application::AppUtils->entityize()
+ # to avoid having to set PERL5LIB for PostgreSQL as well
+
+ # If we are going to convert non-ASCII characters to XML entities,
+ # we had better be dealing with a UTF8 string to begin with
+ $xml = decode_utf8($xml);
+
+ $xml = NFC($xml);
+
+ # Convert raw ampersands to entities
+ $xml =~ s/&(?!\S+;)/&/gso;
+
+ # Convert Unicode characters to entities
+ $xml =~ s/([\x{0080}-\x{fffd}])/sprintf('&#x%X;',ord($1))/sgoe;
+
+ $xml =~ s/[\x00-\x1f]//go;
+ $_TD->{new}{marc} = $xml;
+
+ return "MODIFY";
+}
+
+return;
+$func$ LANGUAGE PLPERLU;
+
+COMMIT;
diff --git a/Open-ILS/xul/staff_client/chrome/content/main/about.html b/Open-ILS/xul/staff_client/chrome/content/main/about.html
index 2609bb6..bb00306 100644
--- a/Open-ILS/xul/staff_client/chrome/content/main/about.html
+++ b/Open-ILS/xul/staff_client/chrome/content/main/about.html
@@ -1,7 +1,7 @@
<html><head><script></script></head><body onload="var x = document.getElementById('version'); var version ='/xul/server/'.split(/\//)[2]; if (version == 'server') { version = 'versionless debug build'; } x.appendChild(document.createTextNode(version));">
<h1 style="text-decoration: underline">Evergreen</h1>
<p>Target Server ID: <span id="version"></span></p>
-<p>$HeadURL$</p>
+<p>http://git.evergreen-ils.org/Evergreen.git?h=refs/heads/rel_2_3_1</p>
<h2>What is Evergreen?</h2>
<blockquote>
<p>
diff --git a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
index 6352b6e..74aa50a 100644
--- a/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
+++ b/Open-ILS/xul/staff_client/defaults/preferences/prefs.js
@@ -11,7 +11,7 @@ pref("toolkit.singletonWindowType", "eg_main");
pref("open-ils.enable_join_tabs", true);
// We'll use this one to help brand some build information into the client, and rely on subversion keywords
-pref("open-ils.repository.headURL","$HeadURL$");
+pref("open-ils.repository.headURL","http://git.evergreen-ils.org/Evergreen.git?h=refs/heads/rel_2_3_1");
pref("open-ils.repository.author","$Author$");
pref("open-ils.repository.revision","$Revision$");
pref("open-ils.repository.date","$Date$");
diff --git a/Open-ILS/xul/staff_client/windowssetup.nsi b/Open-ILS/xul/staff_client/windowssetup.nsi
index e0bc1ef..e7e96bb 100644
--- a/Open-ILS/xul/staff_client/windowssetup.nsi
+++ b/Open-ILS/xul/staff_client/windowssetup.nsi
@@ -3,7 +3,7 @@
; HM NIS Edit Wizard helper defines
; Old versions of makensis don't like this, moved to Makefile
;!define /file PRODUCT_VERSION "client/VERSION"
-!define PRODUCT_TAG "Master"
+!define PRODUCT_TAG "2.3"
!define PRODUCT_INSTALL_TAG "${PRODUCT_TAG}"
!define UI_IMAGESET "beta"
;!define UI_IMAGESET "release"
diff --git a/README b/README
deleted file mode 120000
index b57451a..0000000
--- a/README
+++ /dev/null
@@ -1 +0,0 @@
-docs/installation/server_installation.txt
\ No newline at end of file
diff --git a/README b/README
new file mode 100644
index 0000000..a9ccca2
--- /dev/null
+++ b/README
@@ -0,0 +1,549 @@
+Installing the Evergreen server
+===============================
+:toc:
+:numbered:
+
+Preamble: referenced user accounts
+----------------------------------
+
+In subsequent sections, we will refer to a number of different accounts, as
+follows:
+
+ * Linux user accounts:
+ ** The *user* Linux account is the account that you use to log onto the
+ Linux system as a regular user.
+ ** The *root* Linux account is an account that has system administrator
+ privileges. On Debian and Fedora you can switch to this account from
+ your *user* account by issuing the `su -` command and entering the
+ password for the *root* account when prompted. On Ubuntu you can switch
+ to this account from your *user* account using the `sudo su -` command
+ and entering the password for your *user* account when prompted.
+ ** The *opensrf* Linux account is an account that you create when installing
+ OpenSRF. You can switch to this account from the *root* account by
+ issuing the `su - opensrf` command.
+ ** The *postgres* Linux account is created automatically when you install
+ the PostgreSQL database server. You can switch to this account from the
+ *root* account by issuing the `su - postgres` command.
+ * PostgreSQL user accounts:
+ ** The *evergreen* PostgreSQL account is a superuser account that you will
+ create to connect to the PostgreSQL database server.
+ * Evergreen administrator account:
+ ** The *egadmin* Evergreen account is an administrator account for
+ Evergreen that you will use to test connectivity and configure your
+ Evergreen instance.
+
+Preamble: developer instructions
+--------------------------------
+
+[NOTE]
+Skip this section if you are using an official release tarball downloaded
+from http://evergreen-ils.org/downloads
+
+Developers working directly with the source code from the Git repository,
+rather than an official release tarball, must install some extra packages
+and perform one step before they can proceed with the `./configure` step.
+
+As the *root* Linux account, install the following packages:
+
+ * autoconf
+ * automake
+ * libtool
+
+As the *user* Linux account, issue the following command in the Evergreen
+source directory to generate the configure script and Makefiles:
+
+[source, bash]
+------------------------------------------------------------------------------
+autoreconf -i
+------------------------------------------------------------------------------
+
+After running `make install`, developers also need to install the Dojo Toolkit
+set of JavaScript libraries. The appropriate version of Dojo is included
+in Evergreen release tarballs. Developers should install the Dojo 1.3.3
+version of Dojo by issuing the following commands as the *opensrf* Linux
+account:
+
+[source, bash]
+------------------------------------------------------------------------------
+wget http://download.dojotoolkit.org/release-1.3.3/dojo-release-1.3.3.tar.gz
+tar -C /openils/var/web/js -xzf dojo-release-1.3.3.tar.gz
+cp -r /openils/var/web/js/dojo-release-1.3.3/* /openils/var/web/js/dojo/.
+------------------------------------------------------------------------------
+
+Installing prerequisites
+------------------------
+
+Evergreen has a number of prerequisite packages that must be installed
+before you can successfully configure, compile, and install Evergreen.
+
+1. Begin by installing the most recent version of OpenSRF (2.1 or later).
+ You can download OpenSRF releases from http://evergreen-ils.org/opensrf.php
+2. On many distributions, it is necessary to install PostgreSQL 9 from external
+ repositories.
++
+ * On Debian Squeeze, open `/etc/apt/sources.list` in a text editor as the
+ *root* Linux account and add the following line:
++
+[source, bash]
+------------------------------------------------------------------------------
+deb http://backports.debian.org/debian-backports squeeze-backports main contrib
+------------------------------------------------------------------------------
++
+ * On Ubuntu Lucid, you can use a PPA (personal package archive), which are
+ package sources hosted on Launchpad. The one most commonly used by Evergreen
+ Community members is maintained by Martin Pitt, who also maintains the
+ official PostgreSQL packages for Ubuntu. As the *root* Linux account, issue
+ the following commands to add the PPA source:
++
+[source, bash]
+------------------------------------------------------------------------------
+apt-get install python-software-properties
+add-apt-repository ppa:pitti/postgresql
+------------------------------------------------------------------------------
++
+ * Ubuntu Precise comes with PostgreSQL 9, so no additional steps are required.
++
+ * Fedora comes with PostgreSQL 9, so no additional steps are required.
++
+3. On Debian and Ubuntu, run `aptitude update` as the *root* Linux account to
+ retrieve the new packages from the backports repository.
+4. Issue the following commands as the *root* Linux account to install
+ prerequisites using the `Makefile.install` prerequisite installer,
+ substituting `debian-squeeze`, `fedora`, `ubuntu-lucid`, or
+ `ubuntu-precise` for <osname> below:
++
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install <osname>
+------------------------------------------------------------------------------
++
+5. Add the libdbi-libdbd libraries to the system dynamic library path by
+ issuing the following commands as the *root* Linux account:
++
+[NOTE]
+You should skip this step if installing on Ubuntu Precise. The ubuntu-precise
+target uses libdbd-pgsql from packages.
++
+.Debian / Ubuntu Lucid
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/local/lib/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
++
+.Fedora
+[source, bash]
+------------------------------------------------------------------------------
+echo "/usr/lib64/dbd" > /etc/ld.so.conf.d/eg.conf
+ldconfig
+------------------------------------------------------------------------------
+
+Configuration and compilation instructions
+------------------------------------------
+
+For the time being, we are still installing everything in the `/openils/`
+directory. From the Evergreen source directory, issue the following commands as
+the *user* Linux account to configure and build Evergreen:
+
+[source, bash]
+------------------------------------------------------------------------------
+./configure --prefix=/openils --sysconfdir=/openils/conf
+make
+------------------------------------------------------------------------------
+
+Installation instructions
+-------------------------
+
+1. Once you have configured and compiled Evergreen, issue the following
+ command as the *root* Linux account to install Evergreen, build the server
+ portion of the staff client, and copy example configuration files to
+ `/openils/conf`.
+ Change the value of the `STAFF_CLIENT_STAMP_ID` variable to match the version
+ of the staff client that you will use to connect to the Evergreen server.
++
+[source, bash]
+------------------------------------------------------------------------------
+make STAFF_CLIENT_STAMP_ID=rel_2_3_1 install
+------------------------------------------------------------------------------
++
+2. The server portion of the staff client expects `http://hostname/xul/server`
+ to resolve. Issue the following commands as the *root* Linux account to
+ create a symbolic link pointing to the `server` subdirectory of the server
+ portion of the staff client that we just built using the staff client ID
+ 'rel_name':
++
+[source, bash]
+------------------------------------------------------------------------------
+cd /openils/var/web/xul
+ln -sf rel_name/server server
+------------------------------------------------------------------------------
+
+Change ownership of the Evergreen files
+---------------------------------------
+
+All files in the `/openils/` directory and subdirectories must be owned by the
+`opensrf` user. Issue the following command as the *root* Linux account to
+change the ownership on the files:
+
+[source, bash]
+------------------------------------------------------------------------------
+chown -R opensrf:opensrf /openils
+------------------------------------------------------------------------------
+
+Configure the Apache Web server
+-------------------------------
+
+1. Use the example configuration files in `Open-ILS/examples/apache/` to
+configure your Web server for the Evergreen catalog, staff client, Web
+services, and administration interfaces. Issue the following commands as the
+*root* Linux account:
++
+.Debian and Ubuntu
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache/eg.conf /etc/apache2/sites-available/
+cp Open-ILS/examples/apache/eg_vhost.conf /etc/apache2/
+cp Open-ILS/examples/apache/startup.pl /etc/apache2/
+# Now set up SSL
+mkdir /etc/apache2/ssl
+cd /etc/apache2/ssl
+------------------------------------------------------------------------------
++
+.Fedora
+[source,bash]
+------------------------------------------------------------------------------
+cp Open-ILS/examples/apache/eg.conf /etc/httpd/conf.d/
+cp Open-ILS/examples/apache/eg_vhost.conf /etc/httpd/
+cp Open-ILS/examples/apache/startup.pl /etc/httpd/
+# Now set up SSL
+mkdir /etc/httpd/ssl
+cd /etc/httpd/ssl
+------------------------------------------------------------------------------
++
+2. The `openssl` command cuts a new SSL key for your Apache server. For a
+production server, you should purchase a signed SSL certificate, but you can
+just use a self-signed certificate and accept the warnings in the staff client
+and browser during testing and development. Create an SSL key for the Apache
+server by issuing the following command as the *root* Linux account:
++
+[source,bash]
+------------------------------------------------------------------------------
+openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
+------------------------------------------------------------------------------
++
+3. As the *root* Linux account, edit the `eg.conf` file that you copied into
+place.
+ a. Replace `Allow from 10.0.0.0/8` with `Allow from all` (to enable
+ access to the offline upload / execute interface from any workstation on
+ any network - note that you must secure this for a production instance)
+ b. (Fedora): Change references from the non-existent `/etc/apache2/` directory
+ to `/etc/httpd/`.
+4. Change the user for the Apache server.
+ * (Debian and Ubuntu): As the *root* Linux account, edit
+ `/etc/apache2/envvars`. Change `export APACHE_RUN_USER=www-data` to
+ `export APACHE_RUN_USER=opensrf`.
+ * (Fedora): As the *root* Linux account , edit `/etc/httpd/conf/httpd.conf`.
+ Change `User apache` to `User opensrf`.
+5. Configure Apache with performance settings appropriate for Evergreen:
+ * (Debian and Ubuntu): As the *root* Linux account, edit
+ `/etc/apache2/apache2.conf`:
+ * (Fedora): As the *root* Linux account, edit `/etc/httpd/conf/httpd.conf`:
+ a. Change `KeepAliveTimeout` to `1`. Higher values reduce the chance of
+ a request timing out unexpectedly, but increase the risk of using up
+ all available Apache child processes.
+ b. 'Optional': Change `MaxKeepAliveRequests` to `100`
+ c. Update the prefork configuration section to suit your environment. The
+ following settings apply to a busy system:
++
+[source,bash]
+------------------------------------------------------------------------------
+<IfModule mpm_prefork_module>
+ StartServers 20
+ MinSpareServers 5
+ MaxSpareServers 15
+ MaxClients 150
+ MaxRequestsPerChild 10000
+</IfModule>
+------------------------------------------------------------------------------
++
+6. (Fedora): As the *root* Linux account, edit the `/etc/httpd/eg_vhost.conf`
+ file to change references from the non-existent `/etc/apache2/` directory
+ to `/etc/httpd/`.
+7. (Debian and Ubuntu): As the *root* Linux account, enable the Evergreen site:
++
+[source,bash]
+------------------------------------------------------------------------------
+a2dissite default # OPTIONAL: disable the default site (the "It Works" page)
+a2ensite eg.conf
+------------------------------------------------------------------------------
+
+Configure OpenSRF for the Evergreen application
+-----------------------------------------------
+There are a number of example OpenSRF configuration files in `/openils/conf/`
+that you can use as a template for your Evergreen installation. Issue the
+following commands as the *opensrf* Linux account:
+
+[source, bash]
+------------------------------------------------------------------------------
+cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml
+cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml
+------------------------------------------------------------------------------
+
+When you installed OpenSRF, you created four Jabber users on two
+separate domains and edited the `opensrf_core.xml` file accordingly. Please
+refer back to the OpenSRF README and, as the *opensrf* Linux account, edit the
+Evergreen version of the `opensrf_core.xml` file using the same Jabber users
+and domains as you used while installing and testing OpenSRF.
+
+[NOTE]
+The `-b` flag tells the `cp` command to create a backup version of the
+destination file. The backup version of the destination file has a tilde (`~`)
+appended to the file name, so if you have forgotten the Jabber users and
+domains, you can retrieve the settings from the backup version of the files.
+
+`eg_db_config.pl`, described in the following section, sets the database
+connection information in `opensrf.xml` for you.
+
+Creating the Evergreen database
+-------------------------------
+
+By default, the `Makefile.install` prerequisite installer does not install
+the PostgreSQL 9 database server required by every Evergreen system;
+for production use, most libraries install the PostgreSQL database server on a
+dedicated machine. You can install the packages required by Debian or Ubuntu Lucid
+on the machine of your choice using the following commands as the *root*
+Linux account:
+
+.(Debian and Ubuntu Lucid) Installing PostgreSQL 9.1 server packages
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install install_pgsql_server_backport_debs_91
+------------------------------------------------------------------------------
+
+.(Ubuntu Precise) Installing PostgreSQL 9.1 server packages
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install install_pgsql_server_debs_91
+------------------------------------------------------------------------------
+
+You can install the packages required by Fedora on the machine of your choice
+using the following commands as the *root* Linux account:
+
+.(Fedora) Installing PostgreSQL server packages
+[source, bash]
+------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install install_fedora_pgsql_server
+postgresql-setup initdb
+------------------------------------------------------------------------------
+
+For a standalone PostgreSQL server, install the following Perl modules as the
+*root* Linux account:
+
+.(Debian / Ubuntu) Installing additional Perl modules on a standalone PostgreSQL 9 server
+[source, bash]
+------------------------------------------------------------------------------
+aptitude install gcc libxml-libxml-perl libxml-libxslt-perl
+cpan Business::ISBN
+cpan JSON::XS
+cpan Library::CallNumber::LC
+cpan MARC::Record
+cpan MARC::File::XML
+cpan UUID::Tiny
+------------------------------------------------------------------------------
+
+.(Fedora) Installing additional Perl modules on a standalone PostgreSQL 9 server
+[source, bash]
+------------------------------------------------------------------------------
+yum install gcc perl-XML-LibXML perl-XML-LibXSLT perl-Business-ISBN
+cpan Library::CallNumber::LC
+cpan MARC::Record
+cpan MARC::File::XML
+cpan UUID::Tiny
+------------------------------------------------------------------------------
+
+You need to create a PostgreSQL superuser to create and access the database.
+Issue the following command as the *postgres* Linux account to create a new
+PostgreSQL superuser named `evergreen`. When prompted, enter the new user's
+password:
+
+[source, bash]
+------------------------------------------------------------------------------
+createuser -s -P evergreen
+------------------------------------------------------------------------------
+
+Once you have created the *evergreen* PostgreSQL account, you also need to
+create the database and schema, and configure your configuration files to point
+at the database server. Issue the following command as the *root* Linux account
+from inside the Evergreen source directory, replacing <user>, <password>,
+<hostname>, <port>, and <dbname> with the appropriate values for your
+PostgreSQL database (where <user> and <password> are for the *evergreen*
+PostgreSQL account you just created), and replace <admin-user> and <admin-pass>
+with the values you want for the *egadmin* Evergreen administrator account:
+
+[source, bash]
+------------------------------------------------------------------------------
+perl Open-ILS/src/support-scripts/eg_db_config.pl --update-config \
+ --service all --create-database --create-schema --create-offline \
+ --user <user> --password <password> --hostname <hostname> --port <port> \
+ --database <dbname> --admin-user <admin-user> --admin-pass <admin-pass>
+------------------------------------------------------------------------------
+
+This creates the database and schema and configures all of the services in
+your `/openils/conf/opensrf.xml` configuration file to point to that database.
+It also creates the configuration files required by the Evergreen `cgi-bin`
+administration scripts, and sets the user name and password for the *egadmin*
+Evergreen administrator account to your requested values.
+
+Creating the database on a remote server
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+In a production instance of Evergreen, your PostgreSQL server should be
+installed on a dedicated server.
+
+PostgreSQL 9.1 and later
+^^^^^^^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.1 or later, simply use the `--create-database` flag on `eg_db_config.pl`.
+
+For PostgreSQL 9.0
+^^^^^^^^^^^^^^^^^^
+To create the database instance on a remote database server running PostgreSQL
+9.0, you can either:
+
+ * Install the PostgreSQL contrib modules on the machine on which you
+ are installing the Evergreen code, and use the `--create-database`
+ option from that machine, or
+ * Copy the `Open-ILS/src/sql/Pg/create_database.sql` script to your
+ PostgreSQL server and invoke it as the *postgres* Linux account:
++
+[source, bash]
+------------------------------------------------------------------------------
+psql -vdb_name=<dbname> -vcontrib_dir=`pg_config --sharedir`/contrib -f create_database.sql
+------------------------------------------------------------------------------
+
+Then you can issue the `eg_db_config.pl` command as above _without_ the
+`--create-database` argument to create your schema and configure your
+configuration files.
+
+Starting Evergreen
+------------------
+1. As the *root* Linux account, start the `memcached` and `ejabberd` services
+(if they aren't already running):
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/ejabberd start
+/etc/init.d/memcached start
+------------------------------------------------------------------------------
++
+2. As the *opensrf* Linux account, start Evergreen. The `-l` flag in the
+following command is only necessary if you want to force Evergreen to treat the
+hostname as `localhost`; if you configured `opensrf.xml` using the real
+hostname of your machine as returned by `perl -ENet::Domain 'print
+Net::Domain::hostfqdn() . "\n";'`, you should not use the `-l` flag.
++
+[source, bash]
+------------------------------------------------------------------------------
+osrf_ctl.sh -l -a start_all
+------------------------------------------------------------------------------
++
+ ** If you receive the error message `bash: osrf_ctl.sh: command not found`,
+ then your environment variable `PATH` does not include the `/openils/bin`
+ directory; this should have been set in the *opensrf* Linux account's
+ `.bashrc` configuration file. To manually set the `PATH` variable, edit the
+ configuration file `~/.bashrc` as the *opensrf* Linux account and add the
+ following line:
++
+[source, bash]
+------------------------------------------------------------------------------
+export PATH=$PATH:/openils/bin
+------------------------------------------------------------------------------
++
+3. As the *opensrf* Linux account, generate the Web files needed by the staff
+ client and catalogue and update the organization unit proximity (you need to do
+ this the first time you start Evergreen, and after that each time you change
+ the library hierarchy in `config.cgi`):
++
+[source, bash]
+------------------------------------------------------------------------------
+autogen.sh -u
+------------------------------------------------------------------------------
++
+4. As the *root* Linux account, restart the Apache Web server:
++
+[source, bash]
+------------------------------------------------------------------------------
+/etc/init.d/apache2 restart
+------------------------------------------------------------------------------
++
+If the Apache Web server was running when you started the OpenSRF services, you
+might not be able to successfully log in to the OPAC or staff client until the
+Apache Web server is restarted.
+
+Testing connections to Evergreen
+--------------------------------
+
+Once you have installed and started Evergreen, test your connection to
+Evergreen via `srfsh`. As the *opensrf* Linux account, issue the following
+commands to start `srfsh` and try to log onto the Evergreen server using the
+*egadmin* Evergreen administrator user name and password that you set using the
+`eg_db_config.pl` command:
+
+[source, bash]
+------------------------------------------------------------------------------
+/openils/bin/srfsh
+srfsh% login <admin-user> <admin-pass>
+------------------------------------------------------------------------------
+
+You should see a result like:
+
+ Received Data: "250bf1518c7527a03249858687714376"
+ ------------------------------------
+ Request Completed Successfully
+ Request Time in seconds: 0.045286
+ ------------------------------------
+
+ Received Data: {
+ "ilsevent":0,
+ "textcode":"SUCCESS",
+ "desc":" ",
+ "pid":21616,
+ "stacktrace":"oils_auth.c:304",
+ "payload":{
+ "authtoken":"e5f9827cc0f93b503a1cc66bee6bdd1a",
+ "authtime":420
+ }
+
+ }
+
+ ------------------------------------
+ Request Completed Successfully
+ Request Time in seconds: 1.336568
+ ------------------------------------
+
+If this does not work, it's time to do some troubleshooting.
+
+ * As the *opensrf* Linux acccount, run the `settings-tester.pl` script to see
+ if it finds any system configuration problems. The script is found at
+ `Open-ILS/src/support-scripts/settings-tester.pl` in the Evergreen source
+ tree.
+ * Follow the steps in the http://evergreen-ils.org/dokuwiki/doku.php?id=troubleshooting:checking_for_errors[troubleshooting guide].
+ * If you have faithfully followed the entire set of installation steps
+ listed here, you are probably extremely close to a working system.
+ Gather your configuration files and log files and contact the
+ http://open-ils.org/listserv.php[Evergreen development mailing list]
+ for assistance before making any drastic changes to your system
+ configuration.
+
+Getting help
+------------
+
+Need help installing or using Evergreen? Join the mailing lists at
+http://evergreen-ils.org/listserv.php or contact us on the Freenode
+IRC network on the #evergreen channel.
+
+License
+-------
+This work is licensed under the Creative Commons Attribution-ShareAlike 3.0
+Unported License. To view a copy of this license, visit
+http://creativecommons.org/licenses/by-sa/3.0/ or send a letter to Creative
+Commons, 444 Castro Street, Suite 900, Mountain View, California, 94041, USA.
diff --git a/build/tools/make_release b/build/tools/make_release
index 18eac29..24db8e5 100755
--- a/build/tools/make_release
+++ b/build/tools/make_release
@@ -2,7 +2,7 @@
GIT_ABS=`git rev-parse --show-toplevel`
GIT_BRANCH=`git rev-parse --abbrev-ref HEAD | sed 's|.*/||'`
-HEADURLBASE="http://git.evergreen-ils.org/Evergreen.git?h=refs/heads/"
+HEADURLBASE="http://git.evergreen-ils.org/Evergreen.git?h=refs/heads/rel_2_3_1"
HEADURL="$HEADURLBASE$GIT_BRANCH"
# Drop to the root of the checkout
diff --git a/configure.ac b/configure.ac
index 89e64f6..3481bb0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -20,8 +20,8 @@
export PATH=${PATH}:/usr/sbin
AC_PREREQ(2.61)
-AC_INIT(Open-ILS, trunk, open-ils-dev at list.georgialibraries.org)
-AM_INIT_AUTOMAKE([OpenILS], [trunk])
+AC_INIT(Open-ILS, 2.3.1, open-ils-dev at list.georgialibraries.org)
+AM_INIT_AUTOMAKE([OpenILS], [2.3.1])
AC_REVISION($Revision: 0.1 $)
AC_CONFIG_SRCDIR([configure.ac])
AC_PREFIX_DEFAULT([/openils/])
commit 2df098c59ae23e8abba05ec75db446941141c398
Author: Bill Erickson <berick at esilibrary.com>
Date: Fri Nov 2 15:28:27 2012 -0400
CStoreEditor auto-activity log redaction
CStoreEditor logs all update calls to the activity log as key/value
pairs on the updated object. Avoid loging key/value pairs for objects
when the API call being relayed by CStoreEditor is on the list of
log-protect API calls. Instead, log "**DETAILS REDACTED**".
Signed-off-by: Bill Erickson <berick at esilibrary.com>
Signed-off-by: Dan Scott <dscott at laurentian.ca>
diff --git a/Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm b/Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
index 51854e3..23559e0 100644
--- a/Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
+++ b/Open-ILS/src/perlmods/lib/OpenILS/Utils/CStoreEditor.pm
@@ -1,6 +1,7 @@
use strict; use warnings;
package OpenILS::Utils::CStoreEditor;
use OpenILS::Application::AppUtils;
+use OpenSRF::Application;
use OpenSRF::AppSession;
use OpenSRF::EX qw(:try);
use OpenILS::Utils::Fieldmapper;
@@ -637,9 +638,25 @@ sub _checkperm {
# Logs update actions to the activity log
# -----------------------------------------------------------------------------
sub log_activity {
- my( $self, $type, $action, $arg ) = @_;
+ my( $self, $method, $type, $action, $arg ) = @_;
my $str = "$type.$action";
- $str .= _prop_string($arg);
+
+ if ($arg) {
+
+ my $redact = $OpenSRF::Application::shared_conf->shared->log_protect;
+ if (ref($redact) eq 'ARRAY' and grep { $method =~ /^$_/ } @{$redact}) {
+
+ # when API calls are marked as log-protect, avoid
+ # dumping the param object to the activity log.
+ $str .= " **DETAILS REDACTED**";
+
+ } else {
+
+ $str .= _prop_string($arg);
+ }
+ }
+
+
$self->log(A, $str);
}
@@ -760,7 +777,7 @@ sub runmethod {
$logger->error("Attempt to update DB while not in a transaction : $method");
throw OpenSRF::EX::ERROR ("Attempt to update DB while not in a transaction : $method");
}
- $self->log_activity($type, $action, $arg);
+ $self->log_activity($method, $type, $action, $arg);
}
if($$options{checkperm}) {
commit f2f53421e3df78639a07a99088ba610f6a5d0731
Author: Bill Erickson <berick at esilibrary.com>
Date: Tue Nov 6 15:28:28 2012 -0500
Move 'initial host' feature docs into 2.3 release notes
Signed-off-by: Bill Erickson <berick at esilibrary.com>
diff --git a/docs/RELEASE_NOTES_2_3.txt b/docs/RELEASE_NOTES_2_3.txt
index b8fc6be..2c0e9c5 100644
--- a/docs/RELEASE_NOTES_2_3.txt
+++ b/docs/RELEASE_NOTES_2_3.txt
@@ -513,3 +513,18 @@ Support is now available to create a credit card payment type in the SIP Fee
Paid message. There is also now support for SIP clients to retrieve and
display a detailed/itemized list of billings to the patron.
+Staff Client Initial Hostname
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+For fresh installs of the staff client a common issue is people remembering
+what hostname to specify. If you are building your own staff clients you can
+now fill this in automatically.
+
+You can specify this when configuring Evergreen with a new configure option:
+
+--with-initialhost=example.org
+
+It is also possible to specify when building the staff client itself using the
+INITIAL_HOST variable:
+
+make INITIAL_HOST=example.org build
diff --git a/docs/RELEASE_NOTES_NEXT/initial_host.txt b/docs/RELEASE_NOTES_NEXT/initial_host.txt
deleted file mode 100644
index 7699480..0000000
--- a/docs/RELEASE_NOTES_NEXT/initial_host.txt
+++ /dev/null
@@ -1,12 +0,0 @@
-Staff Client Initial Hostname
------------------------------
-
-For fresh installs of the staff client a common issue is people remembering what hostname to specify. If you are building your own staff clients you can now fill this in automatically.
-
-You can specify this when configuring Evergreen with a new configure option:
-
---with-initialhost=example.org
-
-It is also possible to specify when building the staff client itself using the INITIAL_HOST variable:
-
-make INITIAL_HOST=example.org build
commit d5a0f1f5edf78857d5227874998f95daf4ec0f63
Author: Dan Scott <dscott at laurentian.ca>
Date: Mon Nov 5 22:14:34 2012 -0500
Document log redaction XML chunk for opensrf_core.xml
Based on Bill Erickson's original version.
Signed-off-by: Dan Scott <dscott at laurentian.ca>
diff --git a/docs/RELEASE_NOTES_2_3.txt b/docs/RELEASE_NOTES_2_3.txt
index 4d81226..b8fc6be 100644
--- a/docs/RELEASE_NOTES_2_3.txt
+++ b/docs/RELEASE_NOTES_2_3.txt
@@ -6,7 +6,32 @@ Release notes
Upgrade notes
-------------
-Coming Soon.
+Log Protect (redaction)
+~~~~~~~~~~~~~~~~~~~~~~~
+To prevent sensitive information such as passwords from being logged
+in general activity logs, add the following XML chunk to the bottom of
+`opensrf_core.xml`, just inside the `<config>` section:
+
+[source, xml]
+----------------------------------------------------------------
+ ...
+ </routers>
+ <shared> <!-- new block starts here -->
+ <log_protect>
+ <match_string>open-ils.auth.authenticate.verify</match_string>
+ <match_string>open-ils.auth.authenticate.complete</match_string>
+ <match_string>open-ils.auth_proxy.login</match_string>
+ <match_string>open-ils.actor.user.password</match_string>
+ <match_string>open-ils.actor.user.username</match_string>
+ <match_string>open-ils.actor.user.email</match_string>
+ <match_string>open-ils.actor.patron.update</match_string>
+ <match_string>open-ils.cstore.direct.actor.user.create</match_string>
+ <match_string>open-ils.cstore.direct.actor.user.update</match_string>
+ <match_string>open-ils.cstore.direct.actor.user.delete</match_string>
+ </log_protect>
+ </shared> <!-- new block ends here -->
+</config>
+----------------------------------------------------------------
New features
------------
commit f502344088bac86af1634663de2d7a647987b873
Author: Bill Erickson <berick at esilibrary.com>
Date: Wed Oct 31 09:00:19 2012 -0400
Add sample log redaction config to EG opensrf_core
Redact parameter logging for the following API calls:
Login:
open-ils.auth.authenticate.verify
open-ils.auth.authenticate.complete
open-ils.auth_proxy.login
User updates:
open-ils.actor.user.password
open-ils.actor.user.username
open-ils.actor.user.email
open-ils.actor.patron.update
open-ils.cstore.direct.actor.user.create
open-ils.cstore.direct.actor.user.update
open-ils.cstore.direct.actor.user.delete
Signed-off-by: Bill Erickson <berick at esilibrary.com>
Signed-off-by: Dan Scott <dscott at laurentian.ca>
diff --git a/Open-ILS/examples/opensrf_core.xml.example b/Open-ILS/examples/opensrf_core.xml.example
index 440bd8b..7bc022f 100644
--- a/Open-ILS/examples/opensrf_core.xml.example
+++ b/Open-ILS/examples/opensrf_core.xml.example
@@ -170,4 +170,22 @@ Example OpenSRF bootstrap configuration file for Evergreen
</router>
</routers>
<!-- ======================================================================================== -->
+
+ <!-- Any methods which match any of these match_string node values will
+ have their params redacted from lower-level input logging.
+ Adjust these examples as needed. -->
+ <shared>
+ <log_protect>
+ <match_string>open-ils.auth.authenticate.verify</match_string>
+ <match_string>open-ils.auth.authenticate.complete</match_string>
+ <match_string>open-ils.auth_proxy.login</match_string>
+ <match_string>open-ils.actor.user.password</match_string>
+ <match_string>open-ils.actor.user.username</match_string>
+ <match_string>open-ils.actor.user.email</match_string>
+ <match_string>open-ils.actor.patron.update</match_string>
+ <match_string>open-ils.cstore.direct.actor.user.create</match_string>
+ <match_string>open-ils.cstore.direct.actor.user.update</match_string>
+ <match_string>open-ils.cstore.direct.actor.user.delete</match_string>
+ </log_protect>
+ </shared>
</config>
commit 5224fcf99db734eed0b9d58fd5e9389b16400d5d
Author: Mike Rylander <mrylander at gmail.com>
Date: Wed Oct 10 17:36:52 2012 -0400
Make it possible to suppress IDL fields
Some clients of external services, particularly pcrud and reporter-store,
need to be able to access tables that contain columns we'd rather restrict.
For instance, the passwd field on actor.usr.
To effect this feature we provide a blacklist attribute for fields, called
suppress_controller, which works in the same way as the class controller
attribute but names controllers not allowed to use the field. When the field
is explicitly named in a query (fieldmapper select block or json_query) an
error is thrown, and suppressed fields are ingored in general fieldmapper
search/retreive requests.
Signed-off-by: Mike Rylander <mrylander at gmail.com>
Signed-off-by: Bill Erickson <berick at esilibrary.com>
diff --git a/Open-ILS/examples/fm_IDL.xml b/Open-ILS/examples/fm_IDL.xml
index 5b9725a..a7a765d 100644
--- a/Open-ILS/examples/fm_IDL.xml
+++ b/Open-ILS/examples/fm_IDL.xml
@@ -2805,7 +2805,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
<field reporter:label="Is Group Lead Account" name="master_account" reporter:datatype="bool"/>
<field reporter:label="Internet Access Level" name="net_access_level" reporter:datatype="link"/>
<field reporter:label="Other Phone" name="other_phone" reporter:datatype="text"/>
- <field reporter:label="Password" name="passwd" reporter:datatype="text"/>
+ <field reporter:label="Password" name="passwd" suppress_controller="open-ils.pcrud open-ils.reporter-store" reporter:datatype="text"/>
<field reporter:label="Photo URL" name="photo_url" reporter:datatype="text"/>
<field reporter:label="Prefix/Title" name="prefix" reporter:datatype="text"/>
<field reporter:label="Main (Profile) Permission Group" name="profile" reporter:datatype="link"/>
diff --git a/Open-ILS/examples/fm_IDL.xsd b/Open-ILS/examples/fm_IDL.xsd
index b2720a1..7ebbd51 100644
--- a/Open-ILS/examples/fm_IDL.xsd
+++ b/Open-ILS/examples/fm_IDL.xsd
@@ -51,6 +51,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
<xs:element ref="idl:description" minOccurs="0" maxOccurs="1"/>
</xs:sequence>
<xs:attribute name="name"/>
+ <xs:attribute name="suppress_controller"/>
<xs:attribute ref="oils_obj:array_position"/>
<xs:attribute ref="oils_obj:required"/>
<xs:attribute ref="oils_obj:validate"/>
diff --git a/Open-ILS/src/c-apps/oils_idl-core.c b/Open-ILS/src/c-apps/oils_idl-core.c
index 471435c..5d432ab 100644
--- a/Open-ILS/src/c-apps/oils_idl-core.c
+++ b/Open-ILS/src/c-apps/oils_idl-core.c
@@ -156,6 +156,13 @@ osrfHash* oilsIDLInit( const char* idl_filename ) {
snprintf( array_pos_buf, sizeof( array_pos_buf ), "%u", array_pos++ );
osrfHashSet( field_def_hash, strdup( array_pos_buf ), "array_position" );
+ // Tokenize suppress_controller attribute into an osrfStringArray
+ if( (prop_str = (char*)xmlGetProp(_f, BAD_CAST "suppress_controller")) ) {
+ osrfLogDebug(OSRF_LOG_MARK, "Controller suppression list is %s", prop_str );
+ osrfStringArray* controller = osrfStringArrayTokenize( prop_str, ' ' );
+ osrfHashSet( field_def_hash, controller, "suppress_controller");
+ }
+
if( (prop_str = (char*)xmlGetNsProp(_f, BAD_CAST "i18n", BAD_CAST PERSIST_NS)) ) {
osrfHashSet(
field_def_hash,
diff --git a/Open-ILS/src/c-apps/oils_sql.c b/Open-ILS/src/c-apps/oils_sql.c
index db03497..a2a1d26 100644
--- a/Open-ILS/src/c-apps/oils_sql.c
+++ b/Open-ILS/src/c-apps/oils_sql.c
@@ -4203,7 +4203,16 @@ char* SELECT (
// Look up the field in the IDL
const char* col_name = jsonObjectGetString( selfield );
- osrfHash* field_def = osrfHashGet( class_field_set, col_name );
+ osrfHash* field_def;
+
+ if (!osrfStringArrayContains(
+ osrfHashGet(
+ osrfHashGet( class_field_set, col_name ),
+ "suppress_controller"),
+ modulename
+ ))
+ field_def = osrfHashGet( class_field_set, col_name );
+
if( !field_def ) {
// No such field in current class
osrfLogError(
@@ -4282,7 +4291,16 @@ char* SELECT (
jsonObjectGetKeyConst( selfield, "column" ) );
// Get the field definition from the IDL
- osrfHash* field_def = osrfHashGet( class_field_set, col_name );
+ osrfHash* field_def;
+ if (!osrfStringArrayContains(
+ osrfHashGet(
+ osrfHashGet( class_field_set, col_name ),
+ "suppress_controller"),
+ modulename
+ ))
+ field_def = osrfHashGet( class_field_set, col_name );
+
+
if( !field_def ) {
// No such field in current class
osrfLogError(
@@ -5198,6 +5216,9 @@ static char* buildSELECT ( const jsonObject* search_hash, jsonObject* rest_of_qu
if( !field )
continue;
+ if (osrfStringArrayContains( osrfHashGet(field, "suppress_controller"), modulename ))
+ continue;
+
if( first ) {
first = 0;
} else {
@@ -6048,6 +6069,10 @@ int doUpdate( osrfMethodContext* ctx ) {
if( str_is_true( osrfHashGet( field_def, "virtual") ) )
continue;
+ if (osrfStringArrayContains( osrfHashGet(field_def, "suppress_controller"), modulename ))
+ continue;
+
+
const char* field_name = osrfHashIteratorKey( field_itr );
if( ! strcmp( field_name, pkey ) )
continue;
diff --git a/Open-ILS/web/reports/xul/source-browse.js b/Open-ILS/web/reports/xul/source-browse.js
index 4075dd1..0442e3a 100644
--- a/Open-ILS/web/reports/xul/source-browse.js
+++ b/Open-ILS/web/reports/xul/source-browse.js
@@ -36,6 +36,9 @@ function sourceTreeHandler (ev, dbl) {
var name = field.getAttributeNS(rptNS,'label');
if (!name) name = field.getAttribute('name');
+ var suppress = field.getAttribute('suppress_controller');
+ if (suppress && suppress.indexOf('open-ils.reporter-store') > -1) continue;
+
var idlclass = link_fields[i].getAttribute('class');
var map = link_fields[i].getAttribute('map');
var link = link_fields[i].getAttribute('field');
diff --git a/Open-ILS/web/reports/xul/source-setup.js b/Open-ILS/web/reports/xul/source-setup.js
index d3b919c..1e0d456 100644
--- a/Open-ILS/web/reports/xul/source-setup.js
+++ b/Open-ILS/web/reports/xul/source-setup.js
@@ -312,6 +312,9 @@ function populateDetailTree (tcNode, c, item) {
var type = fields[i].getAttributeNS(rptNS, 'datatype');
//if (!type) type = 'text';
+ var suppress = fields[i].getAttribute('suppress_controller');
+ if (suppress && suppress.indexOf('open-ils.reporter-store') > -1) continue;
+
var label = fields[i].getAttributeNS(rptNS, 'label');
var name = fields[i].getAttribute('name');
if (!label) label = name;
-----------------------------------------------------------------------
hooks/post-receive
--
Evergreen ILS
More information about the open-ils-commits
mailing list