Funktionen für Deeplinks und einen URL-Shortener hinzufügen
Ziel
Es sollen Funktionen für Deeplinks und einen URL-Shortener hinzugefügt werden.
Beschreibung
Es gibt einige Teile von Stud.IP, die nur über lange URLs erreichbar sind. Andere Bereiche sind nur in Dialogen erreichbar und haben keine URL, mit denen sie von außerhalb verlinkt werden können.
Um es möglich zu machen, dass auf alle Bereiche von Stud.IP verlinkt werden kann und zudem alle Bereiche über eine URL von außen erreichbar sind, soll es eine Funktion „Link kopieren“ geben, mit der eine Kurz-URL zu dem Bereich erzeugt und dann in die Zwischenablage kopiert werden kann. Diese soll es für Dialoge und normale Seiten gleichermaßen geben.
Kurz-URLs werden über einen eigenen Controller aufgelöst, der kurze URLs per redirect auf lange URLs weiterleitet.
Links, die auf Veranstaltungsinhalte verweisen, haben das Problem, dass es im Normalfall erforderlich ist, angemeldet und als teilnehmende Person der Veranstaltung eingetragen zu sein. Daher sollen URLs, die auf Inhalte von Veranstaltungen zeigen, immer wenn der Inhalt nicht frei zugänglich ist auf die Detailseite weiterleiten und dort direkt die Möglichkeit zum Eintragen in die Veranstaltung anzeigen. Ist eine Eintragung direkt möglich, oder ist die Person bereits in der Veranstaltung eingetragen, soll danach auf die eigentlich verlinkte Seite weitergeleitet werden. Dieser Mechanismus soll unabhängig von den beschriebenen Kurz-URLs greifen, damit auch ein aus der URL-Zeile des Browsers kopierter Link entsprechend funktioniert. Die Aufrufe sollen auch mit allen verfügbaren SSO-Authentifizierungen funktionieren. Da die Detailseite einer Veranstaltung üblicherweise auch ohne einen Stud.IP Login aufgerufen werden kann, benötigt diese Seite 2 verschiedene URLs. Daher bleibt die vorhandene Funktion "Link zu dieser Veranstaltung kopieren" erhalten und enthält den Link zur frei aufrufbaren Detailseite und wird entsprechend umbenannt. Um den Login zu vereinfachen soll die bisherige Trennung in eine Startseite und eine Loginseite aufgehoben werden, d.h. die Startseite wird um die Möglichkeit erweitert direkt Login und Passwort einzugeben, wie es bereits bei vielen Standorten umgesetzt ist.
Dieser StEP wird zusammen mit StEP001552 (PHPLib ablösen) entwickelt, da die dort vorzunehmenden Änderungen am Loginvorgang und an seminar_open etc. mit einbezogen werden müssen.
Maßnahmen
- Es wird an einer passenden Stelle der HTML-Struktur für Seiten und Dialoge, die eine URL haben, ein Link-Icon (Icon mit Namen „group“) eingefügt, das auf die Funktion zum Kopieren des Links hinweist. Beim Klick darauf wird eine Kurz-URL erzeugt, sofern es diese noch nicht gibt und die URL in die Zwischenablage kopiert.
- Jede Kurz-URL erhält eine ID. Über eine Tabelle werden diese IDs zu langen URLs verknüpft. Personen erhalten die Möglichkeit, einen sprechende Namen als ID zu benutzen.
- Dort wo im Moment der Kontext ermittelt wird und ggf. eine AccessDeniedException geworfen wird, muss die beschriebene Weiterleitung auf den Eintragevorgang stattfinden. Die ursprünglich aufgerufene URL muss in der Session vermerkt werden und die endgültige Weiterleitung nach erfolgreichen Setzen des Kontexts muss ausgelöst werden.
- Die Start/Loginseite wird zusammengefasst
Kurzbezeichnung des Integrationsaufwandes
mittel: Eine neue Datenbanktabelle muss angelegt werden, sowie ein Controller für die Umleitung von kurzen auf lange URLs.
Durchführung
Moritz Strohm zu Stud.IP 5.3