Mit Hilfe von Pretty URL können Deep-Links in easydb realisiert werden.
Pretty URLs werden im Stringtool mit den Keys PRETTY_URL_1 bis PRETTY_URL_9 definiert. (Seit Version 4.0.159 bis PRETTY_URL_20).
URL=<regexp>
Regexp um die URL zu matchen. Wenn die URL matched, wird diese PRETTY URL ausgeführt. Die Matches werden in den Variablen %1..%n gespeichert.
SQL:<variable>=<select>
Setzt die
Beispiel:
SQL:pool=SELECT id FROM Pool WHERE shortname=%1
RIGHT:<table>[:<column>]=<id>[,(|read|write|delete)[,allow_not_logged_in]]
Hiermit wird das Recht am Objekt mit der ID <id> in Tabelle <table> überprüft. Standard-mäßig wird auf das read-Recht geprüft. Das Recht an einem Objekt einer Link-Tabelle wird überprüft, wenn column angegeben ist und es sich dabei um eine Link-Spalte handelt.
Beispiel
RIGHT:Bilder:pool_id=%1,write
Das Beispiel überprüft, ob die <id> %1 die über die URL übergeben wird hat das Schreib-Link-Recht für den aktuellen Benutzer in der Tabelle Pool (verlinkt über pool_id).
Sollte das Objekt ein Login erfordern, wird der Benutzer wird auf die im Stringtool-Key festgelegte grid/index-Maske INDEX_LOGIN_GRID umgelenkt. Die Login-Message wird im Stringtool-Key PRETTY_URL_AUTH_REQUIRED festgelegt und als Login-Fehlversuch-Nachricht auf der Login-Seite angezeigt.
Sollte das Objekt als "not logged in" bzw. "unangemeldeter Benutzer" den gewünschten Zugriff erlauben (hier im Beispiel write), wird zur Login-Seite gesprungen, wenn nicht allowed_not_logged_in oder allow_guest gesetzt ist.
Wenn gesetzt, kann per Deep Link als unangemeldeter Benutzer (Methode: unauthenticated) direkt in die easydb gesprungen werden, auch wenn die easydb normalerweise ein Login erfordert, sonst ist ein Login erforderlich.
Wenn gesetzt, wird immer die Methode guest benutzt, um den Benutzer anzumelden. Dafür ist es nötig, dass auf dem angesprungenen Objekt der Benutzer "guest" mindestens Lese-Zugriff hat. Wenn "guest" keine Rechte für das Objekt hat, wird trotzdem in die easydb gesprungen und ggfs. ein Hinweis angezeigt das keine Rechte bestehen ein bestimmtes Objekt zu sehen.
Unangemeldete Benutzer ("not logged in") sind nicht identisch mit dem Gastnutzer (der ist in easydb 4 ein normaler Benutzer). Für unangemeldete Benutzer ("not logged in") gelten die per Rechtemanagement für "alle unangemeldeten" Benutzer erteilten Rechte.
In easydb 4 ist der Gastnutzer, der sich in der Loginmaske über den "Gast"-Button anmelden kann, ein normaler User (Userrecord mit Login "guest"). D.h. für den Gastnutzer gelten die für den Account "guest" per Rechtemanagement erteilten Rechte.
Mit dieser Variable veranlassen Sie easydb den Benutzer zu authentifizieren und alle Methode die automatisch authentifizieren (*guest*, unauthenticated) zu überspringen.
REQUIRE_LOGIN=1
Seit Version 4.0.159.
Mit LOGIN_METHODS können die verwendeten Login-Methoden überschrieben werden. Die Variable verhält sich genauso wie die Config-Variable LOGIN_METHODS. Seit Version 4.0.199.
LOGIN_METHODS=guest
Mit diesem Bespiel wird der Benutzer in die easydb als "guest" Benutzer eingeloggt.
Seit Version 4.0.199.
Inside <frame> (pseudo) redirect to <url>, variables are replaced in <url>. With a <load_frame> given, the <frame> is redirected to the <url> after the <load_frame> has finished loading. This is done with javascript and easydb’s findWindow function, which behaves much like the "target" attribute known from the html <A>-tag.
PRETTY_URL_1
# Regexp um die URL zu matchen URL=^object\/([0-9]+)$
# Top Level, der geladen werden soll URL:top=EZDB-BildSuche
# im Mainframe lade das Objekt URL:mainframe=search/BildSuche?loadids=%1
# in Detailansicht, nachdem die Suche geladen wurde, lade Objekt: URL:sidebarframe:mainframe=detail/detailView?select_id=%1
# setzt die Variable %pool mit dem select SQL:pool=SELECT ...
# RIGHT:<table>=<object_id>,[read|write|delete][allow_not_logged_in|allow_guest],link:<table_id> RIGHT:bilder=%1,read
PRETTY_URL_2
# Regexp um die URL zu matchen URL=^pool\/([a-z]+)$
# Top Level, der geladen werden soll URL:top=EZDB-BildSuche
# setzt die Variable %pool mit dem select SQL:pool=SELECT id FROM Pool WHERE shortname='%1'
#mainframe URL:mainframe=search?search_mask=BildSuche&TL_310=%pool&search=Y
# RIGHT:<table_id>=<object_id>,[read|write|delete][allow_not_logged_in|allow_guest],link:<table_id> RIGHT:Bilder:pool_id=%pool,read,allow_not_logged_in
PRETTY_URL_3
# URL matchen URL=^workfolder\/([0-9]+)$
# Top Level URL:top=EZDB-BildSuche
# die Variable %wfids auf die Liste der Bild-IDs im Workfolder setzen (komma-separiert) SQL:wfids=SELECT bild_id FROM Workfolder2_Bilder WHERE workfolder2_id = %1
# Suche der Workfolder-Items im Hauptframe URL:mainframe=search/BildSuche?loadids=%wfids
# Seitenleiste mit Workfolder-Editor laden URL:sidebarframe:mainframe=edit/WorkfolderEdit?select_id=%1
# Rechte RIGHT:Workfolder2=%1,read,allow_not_logged_in