VL Reader

VL Reader

Der VL Reader ist eine Komponente zur Darstellung von zugriffsbeschränkten Titeln, z.B. an dedizierten Lesegeräten in einer Bibliothek.

Unterstützt werden zur Zeit Resourcen im PDF und Epub Format.

Installation

Server

Auf dem VL Server muss die folgende Server-Konfiguration aktiviert werden:

[auth]
    [[licence]]
        on = true
        ipgroupsync = true

[checkout]
    on = true

Auf Neuinstallationen sollte die Option ipgroupsync immer true sein. Übergangsweise kann ipgroupsync auch auf false stehen. In diesem Fall müssen die IP-Gruppen von Hand angelegt werden, die ansonsten über die Domain-Konfiguration accessLevels.groups automatisch eingerichtet werden.

Weiterhin muss ein Benutzer (z. B. vlreader) angelegt werden, welcher der Gruppe vlreader (zwingend, unabhängig vom Nutzernamen) hinzugefügt wird.

Domain

Auf dem VL Server muss die folgende Domain-Konfiguration aktiviert werden:

[vlreader]
    on = true
    groups = vlreader

[accessLevels]
    on = true
    [[reader]]
        groups = ip_reader
        groups_intersect = vlreader
    [[groups]]
        ip_reader  = 192.168.1.0/24, 10.20.20.0/24, 130.83.23.112/32, 195.16.83.69/32, 80.147.161.94/32

Entscheidend ist hierbei, dass die dem VL Reader zugeordnete Gruppe (hier: vlreader) auch in dem entsprechenden Zugriffsbereich (hier: accessLevels.reader, mit Basisgruppe ip_reader) als zusätzliche Bedingung hinzugefügt wird.

Die templating-Konfiguration kann durch den Domain-Typ erfolgen und ist dann an dieser Stelle überflüssig. Handelt es sich bei der Domain allerdings nicht um eine pubserv- oder epflicht-Domain, so muss die folgende Konfiguration zusätzlich vorgenommen werden:

[templating]
    [[linkActions]]
        pdfDownload = false

Die Druckbeschränkung kann durch vlreader.print_quota eingestellt werden. Dabei wird ein Fließkommawert zwischen 0 (kein Drucken erlaubt) und 1 (alles Drucken erlaubt) gesetzt. Der Wert bestimmt die relative Anzahl der erlaubten Druckseiten. Zum Beispiel bedeutet ein Wert von 0.8 bei 40 Druckseiten, dass 0.8*40=32 Druckseiten erlaubt sind.

Maximale Exemplarzahl

Soll die Ausleihfunktion mit maximaler Exemplaranzahl aktiv sein, so muss folgende Einstellung zusätzlich vorgenommen werden:

[checkout]
    on = true

Titel

Den Titeln, welche nur mit dem VL Reader betrachtet werden dürfen, wird die entsprechende Zugriffsbeschränkung (hier: reader) zugeteilt.

Maximale Exemplarzahl

Im Feld „Anzahl der Exemplare“ kann die maximale Anzahl der zeitgleich ausleihbaren Exemplare angegeben werden. Keine Angabe ist gleichbedeutend mit 0 (das Werk kann nicht ausgeliehen werden). Der Wert -1 bedeutet eine unbeschränkte Anzahl zeitgleicher Ausleihen.

Client

Die Rechner, auf denen der VL Reader installiert wird, müssen konfiguriert werden, damit die nahtlose Verbindung zwischen Browser und VL Reader funktioniert.

Dazu wird der VL Reader als neuer URI Schema Handler für das Schema „vlr://“ im System registriert. Dieser Vorgang unterscheidet sich je nach Betriebssystem.

Bei der erstmaligen Einrichtung muss man nach der Konfiguration alle Browser, die auf dem System verwendet werden, einmal starten und die URL „vlr://“ eingeben. Der Browser öffnet daraufhin einen Auswahldialog bzw. eine Sicherheitsabfrage. Hier muss man den VL Reader als Programm bestätigen und die Check-Box anklicken, dass die Einstellung behalten werden soll.

Fortgeschrittene können auch die Browser-Konfigurationsdateien direkt verändern. Dies unterscheidet sich je nach Browser, und kann hier nicht für alle Browser dokumentiert werden.

Hinweis

Bitte beachten Sie auch die Hinweise im folgenden Kapitel zur Konfiguration der Anmeldedaten.

Windows

Für Windows findet die Einrichtung des VL Readers für URLs mit dem Schema „vlr“ automatisch bei der Installation statt.

GNU/Linux

Beschrieben wird nun die Browser-Integration für einen Benutzer des Systems. Systemweite Integration ist abhängig von der verwendeten Distribution und sollte bei der Paketierung berücksichtigt werden.

Die Datei vlreader.desktop muss in das Verzeichnis ~/.local/share/applications kopiert werden.

Der Inhalt dieser Datei ist:

[Desktop Entry]
Name=VL Reader
Comment=Leseprogramm für zugriffsbeschränktes Material
Encoding=UTF-8
Terminal=false
Type=Application
Exec=/usr/local/bin/vlreader %u

Der Pfad zum Programm (Exec=/usr/local/bin/vlreader) muss eventuell angepasst werden.

Damit diese Datei verwendet wird, muss sie noch für den Benutzer als MIME-Handler registriert werden:

$ xdg-mime default vlreader.desktop x-scheme-handler/vlr

Ob die Installation erfolgreich war, kann folgendermassen getestet werden:

$ xdg-mime query default x-scheme-handler/vlr
vlreader.desktop
$ xdg-open vlr://
[es öffnet sich ein leeres Fenster]

In der Datei ~/.local/share/applications/mimeapps.list sollte sich ebenfalls ein Eintrag finden lassen:

[Default Applications]
x-scheme-handler/vlr=vlreader.desktop

Konfiguration

HTTPS

Für die Verbindung zum VL Server ist eine gesicherte Verbindung über HTTPS notwendig. Das Server-Zertifikat muss von einer durch Google Chromium akzeptierten Zertifizierungsstelle ausgestellt worden sein.

Urheberrechts-Hinweis

Wenn die Wiki-Seite vlreader vorhanden und freigegeben ist, wird ihr Inhalt vor dem Betrachten eines Werkes angezeigt. Der Benutzer muss diese Hinweise bestätigen, bevor das Werk betrachtet werden kann.

Konfigurationsdatei

Befindet sich eine Datei vlrconf.bin in dem gleichen Verzeichnis wie das vlreader Programm, so wird diese Datei als Konfigurationsdatei verwendet.

Die Datei vlrconf.bin ist verschlüsselt, und kann mit dem Programm vlreaderconf entschlüsselt und auch erzeugt werden.

vlreaderconf

Das Programm vlreaderconf kann auf drei Arten verwendet werden.

Ohne Argumente gibt vlreaderconf die Standardkonfiguration aus. Diese kann als Basis für eine angepasste Konfiguration verwendet werden:

$ vlreaderconf > vlrconf.txt

Mit einer vlrconf.txt-Datei (eine unverschlüsselte Konfigurationsdatei) als Argument gibt vlreaderconf eine verschlüsselte Version dieser Konfiguration aus:

$ vlreaderconf vlrconf.txt > vlrconf.bin

Mit einer vlrconf.bin-Datei (eine verschlüsselte Konfigurationsdatei) als Argument gibt vlreaderconf eine unverschlüsselte Version dieser Konfiguration aus:

$ vlreaderconf vlrconf.bin > vlrconf.txt

Ob die Datei verschlüsselt ist oder nicht wird automatisch am Inhalt der Datei erkannt.

Achtung

Das Programm vlreaderconf und die unverschlüsselte Konfigurationsdatei vlrconf.txt dürfen nicht den Nutzern verfügbar gemacht werden, da dadurch die Sicherheit des Systems verletzt werden würde.

vlrconf.txt

Die Datei ist im JSON-Format und kann folgende Einstellungen enthalten:

debug (Boolean, false)

Im Debug-Mode ist der Web-Inspector verfügbar, und auf der Konsole werden Debug-Meldungen zur Konfiguration und zu SSL-Fehlermeldungen ausgegeben.

Achtung

Diese Option darf nicht produktiv eingesetzt werden, da darüber leicht die Anmeldedaten ausgelesen werden können!

hosts (List)

Die Liste der Server, an denen sich der VL Reader anmelden darf.

Jeder Host-Eintrag ist ein Dictionary mit folgenden Feldern:

username (String, vlreader)

Der Benutzername für die Anmeldung.

password (String)

Das Passwort für die Anmeldung.

host (String)

Setzt den erlaubten Hostnamen.

port (Integer, 0)

Falls von 0 verschieden, wird eine andere Port-Nummer bei Verbindungsaufbau erzwungen.

protocol (String, https)

Das URI-Schema für den Verbindungsaufbau.

Achtung

Die Verwendung von HTTP erlaubt das Mitlesen der Anmeldedaten im Netzwerk!

strict (Boolean, true) Falls false, werden

Zertifikatsfehler ignoriert, CORS abgeschaltet, und gemischte http- und https-Inhalte erlaubt.

Achtung

Diese Option darf nicht produktiv eingesetzt werden, da dadurch die Sicherheit des Systems verletzt werden würde.

printer_whitelist (String-Array)

Dieses Feld enthält die erlaubten Drucker zur Druckausgabe. Nur Drucker, die explizit aufgeführt werden, sind erlaubt. Ist dieses Feld nicht vorhanden, werden keine Drucker erlaubt.

printer_default (String)

Der voreingestellte Drucker bei Erstellung eines neuen Druckauftrags. Dieser muss sich in der printer_whitelist befinden. Ansonsten wird der erste Drucker in der Whitelist vorausgewählt.

printer_pdf (Boolean, false)

Dieses Feld bestimmt, ob der eingebaute PDF-Drucker eingeschaltet ist oder nicht. Diese Einstellung ist unabhängig von printer_whitelist.

app_icon (Boolean, false)

Bestimmt, ob das Programm-Fenster das Standard-Icon bekommt (false), oder ein Icon vom VL Server (true, entspricht dem Verhalten von Chrome bei --app=http://...).

Weitere Informationen

Die Ausgabe von vlreaderconf enthält weitere Informationen im Dictionary info, die nicht geändert werden können. Entsprechende Einträge in der vlrconf.txt werden ignoriert.

printer_available (String-Array)

Dieses Feld wird ignoriert, und dient nur der Information, welche Drucker auf dem System verfügbar sind. Drucker müssen zur Aktivierung in die printer_whitelist übernommen werden.

print_enabled (Boolean)

Dieses Feld wird ignoriert, und dient nur der Information, ob verfügbare Drucker in der Liste der erlaubten Drucker eingetragen sind, und/oder ob printer_pdf wahr ist. In diesem Fall ist die Druckfunktion verfügbar, andernfalls ist sie abgeschaltet und der Druckdialog nicht erreichbar.

Funktionsweise

Wird bei einem Titel festgestellt, dass der Benutzer keine Zugriffsrechte hat, so findet eine zusätzliche Überprüfung statt, ob der Benutzer Zugriff hätte, wenn er zusätzlich in der konfigurierten VL Reader Gruppe (dconfig.vlreader.groups) wäre.

In diesem Fall werden auf der Titelseite bei den unterstützten Resourcen die Download-Links durch Viewer-Links ersetzt, und das URI Schema durch dconfig.vlreader.urischeme (default: vlr) ersetzt.

Der Browser übergibt dann die URI an den Handler vom VL Reader. In Folge wird das Programm mit der URI als Argument gestartet:

$ vlreader vlr://digital-sammlung.example.com/view/pdf/1234

Der VL Reader ersetzt das URI Schema durch „https“ und stellt dem Pfad „/vlreader“ voran. Zusätzlich werden fest eingestellte Login Parameter (Benutzername, Passwort) als POST-Daten übergeben.

Der VL Server meldet den Benutzer an, und biegt dann die Route auf „/vlreadermsg“ um. Dort wird, falls die Wiki-Seite „vlreader“ vorhanden und freigegeben ist, ein Urheberrechtshinweis angezeigt.

Nach Bestätigung des Urheberrechtshinweis kommt der Benutzer auf den eingebauten JavaScript-Viewer (dconfig.vlreader.pdfjs).

Client

JavaScript

In semantics.config ist der Inhalt der vlrconf.txt-Konfiguration verfügbar. Damit kann JavaScript die gleiche Konfiguration abfragen wie der Chromium-Code. Insbesondere kann JavaScript-Code über info.print_enabled abfragen, ob überhaupt ein Drucker konfiguriert ist.