Closed kerschfilip closed 2 years ago
U instalací s přihlašováním přes shibboleth se v konfiguraci nastavuje login url přes auth.loginUrl
auth: {
logoutUrl: 'https://dnnt.mzk.cz/Shibboleth.sso/Logout',
loginUrl: 'https://dnnt.mzk.cz/podminky-zpristupneni'
},
Přidal jsem podporu dynamického placeholderu ${LANG}, který se nahradí kódem jazyka. Takže je možné loginUrl parametrizovat např.
loginUrl: 'https://dnnt.mzk.cz/podminky-zpristupneni-${LANG}'
--> https://dnnt.mzk.cz/podminky-zpristupneni-en
--> https://dnnt.mzk.cz/podminky-zpristupneni-cs
Takže se pak pro každý jazyk vytvoří nový soubor
Nebo se to rozhodí do adresáře např.
loginUrl: 'https://dnnt.mzk.cz/podminky-zpristupneni/${LANG}.html'
--> https://dnnt.mzk.cz/podminky-zpristupneni/en.html
--> https://dnnt.mzk.cz/podminky-zpristupneni/cs.html
Přidal jsem podporu dynamického placeholderu ${LANG}, který se nahradí kódem jazyka.
A jak se to zachová, když ta instance klienta nebude mít jazykovou mutaci, kterou má prohlížeč jako defaultní - třeba francouzštinu?
Nabídne to anglickou verzi? Nebo ta proměnná se naplňuje kódem jazyka podle toho co si uživatel změnil v klientovi v nabídce jazyků?
Ono to asi nebude úplně přesně to co jsme chtěli, protože my ten jazyk přepínáme javascriptem přímo v té stránce, takže teď si nejsem úplně jistý jak to předěláme - zřejmě budeme muset komplet překopat ty přihlašovací/souhlasící formuláře...
MD
@mduda100871 tohle je napojené na ten lokalizační mechanismus klienta. Použije se aktuální jazyk klienta - aktuálně svítící vlajka vpravo nahoře.
Výběr jazyků je možné nastavit v konfiguraci přes APP_GLOBAL.languages
(['cs', 'en', 'de', 'sk'] pokud není uvedeno)
A výchozí jazyk taky APP_GLOBAL.defaultLanguage
('cs' pokud není uvedeno)
Když někdo přijde s francouzštinou, tak se použije použije výchozí jazyk dokud si uživatel sám nepřepne na některý jiný.
K té poslední části. Vy tam máte jazyk v parametru v url.
On by se ten placeholder dal použít i pro parametr, ale tam je teď problém, že klient za to url přidává automaticky ?target=AKTUALNI_URL_V_KLIENTOVI
- problém je ten otazník, klient předpokládá že target je prvním parametrem.
Takže bychom to mohli ještě upravit a i ten target dělat přes placeholder ${TARGET}
, takže v konfiguraci by jsi měl.
loginUrl: 'https://kramerius.lib.cas.cz/podminky-zpristupneni?target=${TARGET}&lang=${LANG}
Ano, to by bylo dobré.
Možná jen otázka k zamyšlení, zda-li by nebylo z dlouhodobějšího hlediska dobré ten druhý placeholder "zobecnit" v podobě možnosti tam dát libovolný počet parametrů dle potřeby nastavením v konfiguraci klienta. Ale je to jen úvaha, netrvám na tom.
MD
K té poslední části. Vy tam máte jazyk v parametru v url. On by se ten placeholder dal použít i pro parametr, ale tam je teď problém, že klient za to url přidává automaticky
?target=AKTUALNI_URL_V_KLIENTOVI
- problém je ten otazník, klient předpokládá že target je prvním parametrem. Takže bychom to mohli ještě upravit a i ten target dělat přes placeholder${TARGET}
, takže v konfiguraci by jsi měl.loginUrl: 'https://kramerius.lib.cas.cz/podminky-zpristupneni?target=${TARGET}&lang=${LANG}
Mám otázku, je výše uvedený návrh už zapracovaný do poslední vydané verze 2.3.4
klienta?
Přijde mi, že nikoliv, protože když jsem to nastavil do konfigurace stejně jak je uvedeno, tak to vygeneruje nesmyslné url, s automaticky dodaným targetem na konci, příklad z našeho testovacího dnnt Krameria:
https://kramerius-dnnt.lib.cas.cz/podminky-zpristupneni?target=${TARGET}&lang=cs?target=https://kramerius-dnnt.lib.cas.cz/
Díky, MD
@mduda100871 Není, bude v příští verzi.
Hotovo, dostupné od verze 2.3.5
Vypadá to funkčně, ještě to nechám otestovat kolegy a Filip pak issue zavře.
MD
Při použití tlačítka Přihlásit
v menu to funguje dobře, díky.
Všiml jsem si ale problému, pokud se chci přihlásit odkazem v textu u neveřejného dokumentu: například tady máme v textu "...je nutné se přihlásit", přičemž to "přihlásit" je odkaz na přihlašovací stránku, který si s sebou nese i atribut targer= díky placeholderu ${UUID}, takže po přihlášení se uživatel vrátí zpět na dokument, co si prohlížel. Ve verzi 2.3.5 jsme k tomu odkazu dali ty nové placeholdery ${TARGET}
a ${LANG}
aby se přenesla jak URL, tak jazyk, ale nedochází k jejich nahrazení, takže URL pod odkazem vypadá takto: .../podminky-zpristupneni?target=${TARGET}&lang=${LANG}
Bylo by možné ještě nějak vyřešit tohle @honza-rychtar? Děkuji
Zdravím, máme rovnaký problém s placeholdermi TARGET a LANG v licenčných textoch. Bolo by fajn keby sa to vyriešilo čo najskôr. Vopred vďaka.
Róbert Randiak MZK
U nás jsem to zatím obešel tak, že jsem do licenčních textů nastavil staticky linky pouze s placeholdrem ${UUID}
:
Příklad (česká a anglická mutace):
Nicméně lepší by bylo to nahradit pak výše zmíněnými placeholdery.
MD
Takže zkusím shrnout zbývající problémy.
UUID
) se liší od placeholderů u linku pro přihlášení (TARGET
, LANG
)UUID
zase funguje správně pouze pokud jsem na stránce nějakého dokumentu - uuid je součástí url.LANG
funguje správně, jen teď chybí u licenčních textů. To přidám.Navrhuju zahodit nepoužívat UUID
a použít relativní PATH
, takže
/view/uuid:533ae3bd-7ad7-483b-956b-d902500b6f50?page=uuid:df1df286-524a-4fcc-ae31-9eb76eb75f20
/view/uuid:e9d84300-7b4b-11eb-9f97-005056827e51?page=uuid:9e96485a-20e2-4319-a728-f0f8cbd47a34
(tady u klienta s více Krameriema je součásti url i kód Krameria, ten nesmí být součásti PATH
)Potom bude na vás, jak PATH
použijete - přidáte tam prefix url s požadovanou doménou, takže např.
https://kramerius.lib.cas.cz/podminky-zpristupneni?target=https://kramerius.lib.cas.cz${PATH}&lang=${LANG}
https://dnnt.mzk.cz/podminky-zpristupneni?target=https://dnnt.mzk.cz/${PATH}&lang=${LANG}'
Budou fungovat všechny placeholdery UUID
, TARGET
i PATH
. Jen bude na zvážení, který použít.
Jo, to mi připadá asi jako dobré řešení...
MD
Takže teď na místech
je možné použít placeholdery UUID
, TARGET
, PATH
a LANG
popsané výše.
Takže např. u KNAV u url pro přihlášení je vhodné použít TARGET
, protože chci předat celé aktuální url a na něj se vrátit
https://kramerius.lib.cas.cz/podminky-zpristupneni?target=${TARGET}&lang=${LANG}
Ale u DK se použije PATH
, protože se odkazuje na jinou instalaci klienta, kde chci předat jen relativní cestu v rámci klienta.
https://dnnt.mzk.cz/podminky-zpristupneni?target=https://dnnt.mzk.cz${PATH}
Dostupné ve verzi 2.3.6
Nasadené na DK a otestované. Všetko funguje ako má.
Dobrý den,
V KNAV jsme připravili anglickou verzi stránky pro přihlášení uživatele. Přes tlačítko „Přihlásit“ v klientovi na ni ale není možné odkazovat, protože není možné mít v konfiguraci klienta různé přihlašovací linky podle jazykové mutace.
Když má tak teď uživatel Krameria nastaveného v angličtině a klikne na „Přihlásit“, dostane se na přihlašovací stránku v češtině, kterou si musí sám do angličtiny přepnout.
Bylo by možné tohle nějak vyřešit?
Díky! FK