LP#1434728: make password_required configurable per library
[sitka/overdrive-evergreen-opac.git] / src / od_config_template.coffee
index 03a3cd5..dd40599 100644 (file)
@@ -5,20 +5,20 @@ define [
        'moment'
 ], (M) ->
 
-       # Mapping between long name of home library and Overdrive authorization name
-       longname =
-               'long name one': 'name1'
-               'long name two': 'name2'
-
        # Default configuration of date formats for Moment object;
        # see http://devdocs.io/moment/index#customization-long-date-formats
        M.lang 'en', longDateFormat:
-        LT: "h:mm A",
-        L: "MM/DD/YYYY",
-        LL: "MMMM Do YYYY",
-        LLL: "MMMM Do YYYY LT",
+        LT: "h:mm A"
+        L:            "MM/DD/YYYY"
+        LL:         "MMMM Do YYYY"
+        LLL:        "MMMM Do YYYY LT"
         LLLL: "dddd, MMMM Do YYYY LT"
 
+       # Mapping between long name of home library and Overdrive authorization name
+       longname =
+               'long name one': 'name1'
+               'long name two': 'name2'
+
        return {
 
                # Define the credentials to use to get client authentication to the
@@ -39,6 +39,25 @@ define [
                # Define the mapping function between long name and authorization name
                authorizationname: (id) -> longname[id]
 
-               # Define whether a user password is required to complete patron authentication
-               password_required: 'false' # or 'true'
+               # Define whether a user password is required to complete patron authentication.
+               # This function takes the home library's long name as a parameter.
+               # You can use this parameter to lookup whether the library requires a password.
+               # If all your libraries do (or don't) require a password, modify this function
+               # to always return 'true' (or 'false').
+               password_required: (libraryname) ->
+                       no_password = [ 'long name one' ]
+                       if libraryname in no_password then return 'false' else return 'true'
+
+               # Main base URL (used for direct links to content provider's site)
+               baseURL: 'http://example.com/ContentDetails.htm'
+
+               # Base URL/FQDN(s) for hyperlinks to OverDrive products
+               productbaseURLs: [ 'elm.lib.overdrive.com' ]
+
+               # Define a blacklist based on hostname component, eg, abc.domain1 or xyz.domain2
+               blacklisted: ( hn = window.location.hostname, bl = ['abc', 'xyz'] ) ->
+                       return unless hn = hn.match(/^(.+?)\./)?[1] # no proper hostname found
+                       return unless bl?.length > 0 # no blacklist or is empty
+                       return true for v in bl when v is hn # hostname is listed in blacklist
+                       return # not listed in blacklist
        }