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
) Fallsfalse
, werdenZertifikatsfehler ignoriert, CORS abgeschaltet, und gemischte
http
- undhttps
-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.