From e95e3c682dd80554a62359963b1a978a7e27c82f Mon Sep 17 00:00:00 2001 From: Okke Harsta Date: Mon, 13 Jan 2025 16:12:35 +0100 Subject: [PATCH] WIP for #587 --- account-gui/docker/conf/000-default.conf | 2 + account-gui/public/styles.css | 2 +- account-gui/src/locale/en.js | 11 + account-gui/src/locale/nl.js | 13 +- account-gui/src/routes/Stepup.svelte | 17 +- account-gui/src/stores/conf.js | 1 + account-gui/src/verify/ServiceDesk.svelte | 112 +++++++ account-gui/src/verify/VerifyChoice.svelte | 44 ++- myconext-gui/public/styles.css | 4 + myconext-gui/src/components/Button.svelte | 8 + myconext-gui/src/components/Footer.svelte | 2 +- .../src/components/LoginOption.svelte | 2 +- .../src/components/SecurityOption.svelte | 2 +- myconext-gui/src/icons/alert-triangle.svg | 15 + myconext-gui/src/icons/verify/idCard.svg | 40 +++ myconext-gui/src/locale/en.js | 39 +++ myconext-gui/src/locale/nl.js | 39 +++ myconext-gui/src/routes/Account.svelte | 2 +- .../src/routes/AttributeMissing.svelte | 2 +- myconext-gui/src/routes/BackupCodes.svelte | 2 +- myconext-gui/src/routes/Credential.svelte | 2 +- myconext-gui/src/routes/DataActivity.svelte | 2 +- myconext-gui/src/routes/DeleteAccount.svelte | 2 +- myconext-gui/src/routes/EditEmail.svelte | 2 +- myconext-gui/src/routes/EditName.svelte | 2 +- .../src/routes/EppnAlreadyLinked.svelte | 2 +- myconext-gui/src/routes/Expired.svelte | 2 +- .../routes/ExternalAccountLinkedError.svelte | 2 +- myconext-gui/src/routes/NotFound.svelte | 2 +- myconext-gui/src/routes/Password.svelte | 2 +- myconext-gui/src/routes/PersonalInfo.svelte | 8 + myconext-gui/src/routes/Security.svelte | 4 +- myconext-gui/src/routes/Service.svelte | 6 +- myconext-gui/src/routes/Services.svelte | 2 +- myconext-gui/src/routes/Start.svelte | 2 +- .../src/routes/SubjectAlreadyLinked.svelte | 2 +- myconext-gui/src/routes/WebAuthn.svelte | 2 +- .../src/routes/tiqr/DeactivateApp.svelte | 2 +- .../src/routes/tiqr/RecoveryCode.svelte | 4 +- myconext-gui/src/routes/tiqr/UseApp.svelte | 2 +- myconext-gui/src/verify/ServiceDesk.svelte | 193 ++++++++++++ myconext-gui/src/verify/VerifyChoice.svelte | 26 +- .../java/myconext/api/LoginController.java | 70 ++++- .../main/java/myconext/model/ControlCode.java | 21 ++ .../myconext/model/ExternalLinkedAccount.java | 1 + .../main/java/myconext/model/IdpScoping.java | 2 +- .../src/main/java/myconext/model/User.java | 3 + .../security/SecurityConfiguration.java | 24 +- servicedesk-gui/src/icons/Owl_Emblem.svg | 79 ----- servicedesk-gui/src/icons/alarm_bell.svg | 4 - servicedesk-gui/src/icons/alert-triangle.svg | 15 + servicedesk-gui/src/icons/calendar-alt.svg | 4 - servicedesk-gui/src/icons/critical.svg | 32 -- servicedesk-gui/src/icons/duplicate.svg | 14 - servicedesk-gui/src/icons/email_new.svg | 7 - servicedesk-gui/src/icons/gpt_logo.svg | 17 ++ servicedesk-gui/src/icons/image-not-found.svg | 5 - servicedesk-gui/src/icons/informational.svg | 26 ++ .../src/icons/landing/collaborate.svg | 285 ------------------ servicedesk-gui/src/icons/landing/happy.svg | 110 ------- servicedesk-gui/src/icons/landing/idcard.svg | 43 +++ .../src/icons/landing/landingpage.svg | 61 ++++ servicedesk-gui/src/icons/landing/mail.svg | 49 --- servicedesk-gui/src/icons/landing/screen.svg | 76 ----- servicedesk-gui/src/icons/landing/sketch.svg | 66 ---- .../landing/undraw_access_denied_re_awnf.svg | 113 ------- .../landing/undraw_authentication_re_svpt.svg | 51 ---- .../src/icons/landing/undraw_enter_uhqk.svg | 54 ---- .../icons/landing/undraw_startled_-8-p0r.svg | 212 ------------- .../landing/undraw_subscriptions_re_k7jj.svg | 88 ------ servicedesk-gui/src/icons/locks.svg | 195 ------------ servicedesk-gui/src/icons/logo.svg | 16 + servicedesk-gui/src/icons/logo_blue.svg | 17 ++ servicedesk-gui/src/icons/multi-role.svg | 8 - .../src/icons/network-information.svg | 15 - servicedesk-gui/src/icons/owl.wav | Bin 6430 -> 0 bytes servicedesk-gui/src/icons/persons.svg | 14 - .../src/icons/undraw_High_five.svg | 182 +++++++++++ .../icons/undraw_page_not_found_re_e9o6.svg | 66 ---- .../icons/undraw_people_search_re_5rre.svg | 109 ------- .../src/icons/undraw_void_-3-ggu.svg | 35 --- servicedesk-gui/src/locale/en.js | 5 +- 82 files changed, 1048 insertions(+), 1778 deletions(-) create mode 100644 account-gui/src/verify/ServiceDesk.svelte create mode 100644 myconext-gui/src/icons/alert-triangle.svg create mode 100644 myconext-gui/src/icons/verify/idCard.svg create mode 100644 myconext-gui/src/verify/ServiceDesk.svelte create mode 100644 myconext-server/src/main/java/myconext/model/ControlCode.java delete mode 100644 servicedesk-gui/src/icons/Owl_Emblem.svg delete mode 100644 servicedesk-gui/src/icons/alarm_bell.svg create mode 100644 servicedesk-gui/src/icons/alert-triangle.svg delete mode 100644 servicedesk-gui/src/icons/calendar-alt.svg delete mode 100644 servicedesk-gui/src/icons/critical.svg delete mode 100644 servicedesk-gui/src/icons/duplicate.svg delete mode 100644 servicedesk-gui/src/icons/email_new.svg create mode 100644 servicedesk-gui/src/icons/gpt_logo.svg delete mode 100644 servicedesk-gui/src/icons/image-not-found.svg create mode 100644 servicedesk-gui/src/icons/informational.svg delete mode 100644 servicedesk-gui/src/icons/landing/collaborate.svg delete mode 100644 servicedesk-gui/src/icons/landing/happy.svg create mode 100644 servicedesk-gui/src/icons/landing/idcard.svg create mode 100644 servicedesk-gui/src/icons/landing/landingpage.svg delete mode 100644 servicedesk-gui/src/icons/landing/mail.svg delete mode 100644 servicedesk-gui/src/icons/landing/screen.svg delete mode 100644 servicedesk-gui/src/icons/landing/sketch.svg delete mode 100644 servicedesk-gui/src/icons/landing/undraw_access_denied_re_awnf.svg delete mode 100644 servicedesk-gui/src/icons/landing/undraw_authentication_re_svpt.svg delete mode 100644 servicedesk-gui/src/icons/landing/undraw_enter_uhqk.svg delete mode 100644 servicedesk-gui/src/icons/landing/undraw_startled_-8-p0r.svg delete mode 100644 servicedesk-gui/src/icons/landing/undraw_subscriptions_re_k7jj.svg delete mode 100644 servicedesk-gui/src/icons/locks.svg create mode 100644 servicedesk-gui/src/icons/logo.svg create mode 100644 servicedesk-gui/src/icons/logo_blue.svg delete mode 100644 servicedesk-gui/src/icons/multi-role.svg delete mode 100644 servicedesk-gui/src/icons/network-information.svg delete mode 100644 servicedesk-gui/src/icons/owl.wav delete mode 100644 servicedesk-gui/src/icons/persons.svg create mode 100644 servicedesk-gui/src/icons/undraw_High_five.svg delete mode 100644 servicedesk-gui/src/icons/undraw_page_not_found_re_e9o6.svg delete mode 100644 servicedesk-gui/src/icons/undraw_people_search_re_5rre.svg delete mode 100644 servicedesk-gui/src/icons/undraw_void_-3-ggu.svg diff --git a/account-gui/docker/conf/000-default.conf b/account-gui/docker/conf/000-default.conf index 10b2242f..cd3e502c 100644 --- a/account-gui/docker/conf/000-default.conf +++ b/account-gui/docker/conf/000-default.conf @@ -16,6 +16,7 @@ RewriteCond %{REQUEST_URI} !^/api/remote-creation RewriteCond %{REQUEST_URI} !^/tiqr RewriteCond %{REQUEST_URI} !^/config RewriteCond %{REQUEST_URI} !^/register +RewriteCond %{REQUEST_URI} !^/servicedesk RewriteCond %{REQUEST_URI} !^/doLogin RewriteCond %{REQUEST_URI} !^/doLogout RewriteCond %{REQUEST_URI} !^/create-from-institution-login @@ -47,6 +48,7 @@ ProxyPass /robots.txt http://myconextserver:8080/robots.txt ProxyPass /internal http://myconextserver:8080/internal ProxyPass /config http://myconextserver:8080/config ProxyPass /register http://myconextserver:8080/register +ProxyPass /servicedesk http://myconextserver:8080/servicedesk ProxyPass /doLogin http://myconextserver:8080/doLogin ProxyPass /doLogout http://myconextserver:8080/doLogout ProxyPass /create-from-institution-login http://myconextserver:8080/create-from-institution-login diff --git a/account-gui/public/styles.css b/account-gui/public/styles.css index a14b6155..6ca3db96 100644 --- a/account-gui/public/styles.css +++ b/account-gui/public/styles.css @@ -124,7 +124,7 @@ h1 { h2 { font-size: 24px; line-height: 34px; - font-weight: 700; + font-weight: 600; } h2.green { diff --git a/account-gui/src/locale/en.js b/account-gui/src/locale/en.js index 27717cf6..087864f6 100644 --- a/account-gui/src/locale/en.js +++ b/account-gui/src/locale/en.js @@ -389,6 +389,7 @@ I18n.translations.en = { verifyEuropeanId: "Verify with a European ID", supportEuropean: "We support the majority of National digital IDs", useEuropean: "Use a European ID", + cantUse: "I can't use any of the above methods", help: "If you can't use any of the these methods, please visit our support pages" }, bank: { @@ -412,5 +413,15 @@ I18n.translations.en = { idin: "Idin", studielink: "Studielink" } + }, + serviceDesk: { + confirmIdentityHeader: "You need to manually confirm your identity", + confirmIdentity: "You must confirm your identity at one of our eduID Service Desks.", + stepsHeader: "Follow these steps:", + step1: "Enter your full name as it appears on your ID (first and last name).", + step2: "Generate a personal verification code.", + step3: "Present your code and ID to an eduID Service Desk. They will verify your identity manually.", + redirectWarning: "We will redirect you to another website to enter your name. You won’t be able to log in to {{service}} immediately afterward; you will first need to contact a eduID Service Desk.", + next: "Open website to enter your name" } }; diff --git a/account-gui/src/locale/nl.js b/account-gui/src/locale/nl.js index 7b1c1dc0..73d2bfdf 100644 --- a/account-gui/src/locale/nl.js +++ b/account-gui/src/locale/nl.js @@ -388,8 +388,9 @@ I18n.translations.nl = { verifyBank: "Verifïeer met een Nederlandse ban app", selectBank: "Selecteer je bank", verifyEuropeanId: "Verifïeer met een Europses ID", - supportEuropean: "We ondersteunen de meederhead van de de nationalie digitale ID's", + supportEuropean: "We ondersteunen de meederheid van de de nationalie digitale ID's", useEuropean: "gebruik een Europese ID", + cantUse: "Ik kan geen van bovenstaande manieren gebruiken", help: "Als je geen van deze opties kan gebruiken, bezoek dan onze support pagina's" }, bank: { @@ -412,5 +413,15 @@ I18n.translations.nl = { idin: "Idin", studielink: "Studielink" } + }, + serviceDesk: { + confirmIdentityHeader: "Bevestig wie je bent met je identiteitsbewijs", + confirmIdentity: "Je kunt je identiteit ook bevestigen via een van onze eduID Service Desks.", + stepsHeader: "Volg deze stappen:", + step1: "Vul je volledige naam in zoals die op je identiteitsbewijs staat (voornamen en achternaam).", + step2: "Genereer een persoonlijke controlecode.", + step3: "Laat je controlecode en identiteitsbewijs zien aan een eduID Service Desk. Die bevestigt zo je identiteit.", + redirectWarning: "We sturen je door naar een andere website om je naam in te vullen. Je kunt daarna nog niet gelijk inloggen bij {{service}}, maar je moet eerst contact opnemen met een eduID Service Desk.", + next: "Naar gegevens invullen" } }; diff --git a/account-gui/src/routes/Stepup.svelte b/account-gui/src/routes/Stepup.svelte index 0b9810be..f8c18dcd 100644 --- a/account-gui/src/routes/Stepup.svelte +++ b/account-gui/src/routes/Stepup.svelte @@ -86,19 +86,22 @@ {/if}
- {#if !showChooseOptions} + {#if showChooseOptions} + + {:else}

{I18n.t("stepup.header")}

{@html I18n.t("stepup.info", {name: DOMPurify.sanitize(serviceName)})}

diff --git a/account-gui/src/stores/conf.js b/account-gui/src/stores/conf.js index 1fa37e07..debb1d19 100644 --- a/account-gui/src/stores/conf.js +++ b/account-gui/src/stores/conf.js @@ -1,6 +1,7 @@ import {writable} from 'svelte/store'; export const conf = writable({ + basePath: "", magicLinkUrl: "", continueAfterLoginUrl: "", domain: "", diff --git a/account-gui/src/verify/ServiceDesk.svelte b/account-gui/src/verify/ServiceDesk.svelte new file mode 100644 index 00000000..92fbf352 --- /dev/null +++ b/account-gui/src/verify/ServiceDesk.svelte @@ -0,0 +1,112 @@ + + + + +
+
+ toggleView()}> + {@html arrowLeftIcon} + +

{I18n.t("serviceDesk.confirmIdentityHeader")}

+
+

{I18n.t("serviceDesk.confirmIdentity")}

+

{I18n.t("serviceDesk.stepsHeader")}

+
    +
  1. {I18n.t("serviceDesk.step1")}
  2. +
  3. {I18n.t("serviceDesk.step2")}
  4. +
  5. {I18n.t("serviceDesk.step3")}
  6. +
+
+ {@html alertSvg} + {@html I18n.t("serviceDesk.redirectWarning", {service: serviceName})} +
+
+ diff --git a/account-gui/src/verify/VerifyChoice.svelte b/account-gui/src/verify/VerifyChoice.svelte index 81685336..7e436094 100644 --- a/account-gui/src/verify/VerifyChoice.svelte +++ b/account-gui/src/verify/VerifyChoice.svelte @@ -10,16 +10,20 @@ import {logo} from "./banks"; import alertSvg from "../icons/alert-circle.svg?raw"; import Spinner from "../components/Spinner.svelte"; + import ServiceDesk from "./ServiceDesk.svelte"; + export let id; export let addInstitution; export let addBank; export let addEuropean; export let issuers = []; export let showInstitutionOption = true; + export let serviceName; let showOtherOptions = false; let showBankOptions = false; let busyProcessing = false; + let showServiceDesk = false; const proceed = action => { busyProcessing = true; @@ -105,6 +109,7 @@ display: flex; padding: 15px; cursor: pointer; + text-align: center; &:hover { background-color: var(--color-background); @@ -157,23 +162,23 @@ {/if} {/if} {#if !showOtherOptions && showInstitutionOption}
showOtherOptions = !showOtherOptions}> @@ -213,12 +218,12 @@ onClick={() => proceed(addEuropean)}/>
-
- {@html I18n.t("verify.modal.info.help")} +
showServiceDesk = !showServiceDesk}> +

{I18n.t("verify.modal.info.cantUse")}

{/if} {/if} - {#if showBankOptions && !busyProcessing} + {#if showBankOptions && !busyProcessing && !showServiceDesk}
showBankOptions = !showBankOptions}> @@ -238,7 +243,7 @@
{/if}
-{#if showBankOptions && !busyProcessing} +{#if showBankOptions && !busyProcessing && !showServiceDesk}
{@html alertSvg} {I18n.t("verify.modal.bank.anotherMethodPrefix")} @@ -248,3 +253,10 @@
{/if} +{#if !busyProcessing && showServiceDesk} + showServiceDesk = false} + /> +{/if} + diff --git a/myconext-gui/public/styles.css b/myconext-gui/public/styles.css index 9de1f605..bbfa9024 100644 --- a/myconext-gui/public/styles.css +++ b/myconext-gui/public/styles.css @@ -160,3 +160,7 @@ table { } } + +strong { + font-weight: 600; +} diff --git a/myconext-gui/src/components/Button.svelte b/myconext-gui/src/components/Button.svelte index bf1e8d77..5e58df0d 100644 --- a/myconext-gui/src/components/Button.svelte +++ b/myconext-gui/src/components/Button.svelte @@ -18,6 +18,7 @@ export let icon = undefined; export let custom = false; export let inline = undefined; + export let fullSize = false; const handleLinkClick = e => e.key === " " && e.target.click(); @@ -119,6 +120,12 @@ width: 240px; padding: 8px 0; } + .button.full-size { + min-width: 100%; + max-width: 100%; + width: 100%; + padding: 8px 0; + } .button.icon { padding: 10px 20px 10px 24px; @@ -233,6 +240,7 @@ class:custom={custom} class:large={large} class:larger={larger} + class:full-size={fullSize} class:disabled={disabled} on:click|preventDefault|stopPropagation={() => !disabled && onClick()} on:keydown={handleLinkClick}> diff --git a/myconext-gui/src/components/Footer.svelte b/myconext-gui/src/components/Footer.svelte index f3e07087..d5e037e2 100644 --- a/myconext-gui/src/components/Footer.svelte +++ b/myconext-gui/src/components/Footer.svelte @@ -98,7 +98,7 @@ } li.active a { - font-weight: bold; + font-weight: 600; color: black; cursor: not-allowed; } diff --git a/myconext-gui/src/components/LoginOption.svelte b/myconext-gui/src/components/LoginOption.svelte index d5414df5..33974967 100644 --- a/myconext-gui/src/components/LoginOption.svelte +++ b/myconext-gui/src/components/LoginOption.svelte @@ -51,7 +51,7 @@ } span.has-sub-label { - font-weight: bold; + font-weight: 600; } span.login-icon { diff --git a/myconext-gui/src/components/SecurityOption.svelte b/myconext-gui/src/components/SecurityOption.svelte index df340891..704db210 100644 --- a/myconext-gui/src/components/SecurityOption.svelte +++ b/myconext-gui/src/components/SecurityOption.svelte @@ -56,7 +56,7 @@ } .login-info p { - font-weight: bold; + font-weight: 600; font-size: 18px; color: var(--color-secondary-grey); &.active { diff --git a/myconext-gui/src/icons/alert-triangle.svg b/myconext-gui/src/icons/alert-triangle.svg new file mode 100644 index 00000000..0d01d2e0 --- /dev/null +++ b/myconext-gui/src/icons/alert-triangle.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + diff --git a/myconext-gui/src/icons/verify/idCard.svg b/myconext-gui/src/icons/verify/idCard.svg new file mode 100644 index 00000000..4354933a --- /dev/null +++ b/myconext-gui/src/icons/verify/idCard.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/myconext-gui/src/locale/en.js b/myconext-gui/src/locale/en.js index 77647f72..c27f3289 100644 --- a/myconext-gui/src/locale/en.js +++ b/myconext-gui/src/locale/en.js @@ -562,6 +562,7 @@ I18n.translations.en = { verifyEuropeanId: "Verify with a European ID", supportEuropean: "We accept the ID's of Austria, Belgium, Croatia, Czech Republic, Denmark, Estonia, Germany, Italy, Latvia, Liechtenstein, Lithuania, Luxembourg, Malta, Poland, Portugal, Slovakia, Slovenia, Spain and Sweden.", useEuropean: "Use a European ID", + cantUse: "I can't use any of the above methods", help: "If you can't use any of the these methods, please visit our support pages" }, bank: { @@ -576,6 +577,44 @@ I18n.translations.en = { eherkenning: "eIDAS", idin: "Idin", studielink: "Studielink" + }, + serviceDesk: { + confirmIdentityHeader: "You need to manually confirm your identity", + confirmIdentity: "You can also confirm your identity at one of our eduID Service Desks.", + stepsHeader: "Follow these steps:", + step1: "Enter your full name as it appears on your ID (first and last name).", + step2: "Generate a personal verification code.", + step3: "Present your code and ID to an eduID Service Desk. They will verify your identity manually.", + acceptedIds: "Accepted IDs:", + passports: "Passports", + eea: "EEA* ID cards", + driverLicense: "Dutch driver's license", + residencePermit: "Dutch residence permits", + note: "Please note: copies, public transport passes and student cards are not valid ID's", + eeaNote: "*EEA: all EU member states plus Liechtenstein, Norway and Iceland", + next: "Enter your details", + idCard: { + information: "Vul je gegevens in zoals die op je identiteitsbewijs staan.", + lastName: "Achternaam", + firstName: "Voornamen", + dateOfBirth: "Geboortedatum", + generateControlCode: "Genereer controlcode" + }, + controlCode: { + yourControlCode: "Je controlecode", + info: "Je krijgt ook een e-mail met deze code. De code is 14 dagen geldig en is bedoeld voor:", + typoPrefix: "Typfout gemaakt? ", + typoLink: "Pas gegevens aan", + todo: "Wat moet je nu doen?", + todoDetails: "Maak een afspraak met een eduID Service Desk (digitaal of op locatie). Laat tijdens je afspraak je controlecode en identiteisbewijs zien.", + serviceDesks: "Bekijk eduID Service Desks", + serviceDesksLocations: "https://wiki.surfnet.nl/display/EDUID/eduID+Service+Desk", + back: "Terug naar overzicht", + rethink: "Wil je toch op een andere manier bewijzen wie je bent? Verwijder dan eerst je controlecode.", + deleteControlCode: "Verwijder controlecode", + banner: "Bevestig je identiteit bij een eduID Service Desk. Dit doe je door je identiteitsbewijs en controlecode te laten zien.", + showCode: "Toon code" + } } } }; diff --git a/myconext-gui/src/locale/nl.js b/myconext-gui/src/locale/nl.js index 692d1bd0..b3bb593a 100644 --- a/myconext-gui/src/locale/nl.js +++ b/myconext-gui/src/locale/nl.js @@ -565,6 +565,7 @@ I18n.translations.nl = { verifyEuropeanId: "Verifieer met een Europees ID", supportEuropean: "Dit kan met de inlogmiddelen van België, Denemarken, Duitsland, Estland, Italië, Kroatië, Litouwen, Letland, Liechtenstein, Luxemburg, Malta, Oostenrijk, Polen, Portugal, Slowakije, Slovenië, Spanje, Tsjechië en Zweden", useEuropean: "Selecteer een Europees ID", + cantUse: "Ik kan geen van bovenstaande manieren gebruiken", help: "Kun je deze opties niet gebruiken, bezoek dan onze support pagina's" }, bank: { @@ -579,6 +580,44 @@ I18n.translations.nl = { eherkenning: "eIDAS", idin: "Idin", studielink: "Studielink" + }, + serviceDesk: { + confirmIdentityHeader: "Bevestig wie je bent met je identiteitsbewijs", + confirmIdentity: "Je kunt je identiteit ook bevestigen via een van onze eduID Service Desks.", + stepsHeader: "Volg deze stappen:", + step1: "Vul je volledige naam in zoals die op je identiteitsbewijs staat (voornamen en achternaam).", + step2: "Genereer een persoonlijke controlecode.", + step3: "Laat je controlecode en identiteitsbewijs zien aan een eduID Service Desk. Die bevestigt zo je identiteit.", + acceptedIds: "Geldige identiteitsbewijzen:", + passports: "paspoorten", + eea: "EEA* ID-kaarten", + driverLicense: "Nederlandse rijbewijzen", + residencePermit: "Nederlandse verblijfsvergunningen", + note: "Let op: kopieën, OV-kaarten en studentenkaarten zijn geen geldige identiteitsbewijzen.", + eeaNote: "*EEA: alle EU-lidstaten + Liechtenstein, Noorwegen en IJsland.", + next: "Naar gegevens invullen" + }, + idCard: { + information: "Vul je gegevens in zoals die op je identiteitsbewijs staan.", + lastName: "Achternaam", + firstName: "Voornamen", + dateOfBirth: "Geboortedatum", + generateControlCode: "Genereer controlcode" + }, + controlCode: { + yourControlCode: "Je controlecode", + info: "Je krijgt ook een e-mail met deze code. De code is 14 dagen geldig en is bedoeld voor:", + typoPrefix: "Typfout gemaakt? ", + typoLink: "Pas gegevens aan", + todo: "Wat moet je nu doen?", + todoDetails: "Maak een afspraak met een eduID Service Desk (digitaal of op locatie). Laat tijdens je afspraak je controlecode en identiteisbewijs zien.", + serviceDesks: "Bekijk eduID Service Desks", + serviceDesksLocations: "https://wiki.surfnet.nl/display/EDUID/eduID+Service+Desk", + back: "Terug naar overzicht", + rethink: "Wil je toch op een andere manier bewijzen wie je bent? Verwijder dan eerst je controlecode.", + deleteControlCode: "Verwijder controlecode", + banner: "Bevestig je identiteit bij een eduID Service Desk. Dit doe je door je identiteitsbewijs en controlecode te laten zien.", + showCode: "Toon code" } } }; diff --git a/myconext-gui/src/routes/Account.svelte b/myconext-gui/src/routes/Account.svelte index af170bf7..f2e35b16 100644 --- a/myconext-gui/src/routes/Account.svelte +++ b/myconext-gui/src/routes/Account.svelte @@ -51,7 +51,7 @@ &.value { width: 65%; - font-weight: bold; + font-weight: 600; } } } diff --git a/myconext-gui/src/routes/AttributeMissing.svelte b/myconext-gui/src/routes/AttributeMissing.svelte index acb5216a..7f6450a7 100644 --- a/myconext-gui/src/routes/AttributeMissing.svelte +++ b/myconext-gui/src/routes/AttributeMissing.svelte @@ -49,7 +49,7 @@ h1 { color: var(--color-primary-red); font-size: 32px; - font-weight: bold; + font-weight: 600; margin: 22px 0; } diff --git a/myconext-gui/src/routes/BackupCodes.svelte b/myconext-gui/src/routes/BackupCodes.svelte index 2a9c0b79..a8ddc1ba 100644 --- a/myconext-gui/src/routes/BackupCodes.svelte +++ b/myconext-gui/src/routes/BackupCodes.svelte @@ -66,7 +66,7 @@ td.value { width: 57%; - font-weight: bold; + font-weight: 600; } } } diff --git a/myconext-gui/src/routes/Credential.svelte b/myconext-gui/src/routes/Credential.svelte index e40930da..54d5412e 100644 --- a/myconext-gui/src/routes/Credential.svelte +++ b/myconext-gui/src/routes/Credential.svelte @@ -75,7 +75,7 @@ } label { - font-weight: bold; + font-weight: 600; margin: 33px 0 13px 0; display: inline-block; } diff --git a/myconext-gui/src/routes/DataActivity.svelte b/myconext-gui/src/routes/DataActivity.svelte index c88c2b8c..099ec76a 100644 --- a/myconext-gui/src/routes/DataActivity.svelte +++ b/myconext-gui/src/routes/DataActivity.svelte @@ -143,7 +143,7 @@ } &.value { - font-weight: bold; + font-weight: 600; } &.logo { diff --git a/myconext-gui/src/routes/DeleteAccount.svelte b/myconext-gui/src/routes/DeleteAccount.svelte index 917905a5..dddbd4d6 100644 --- a/myconext-gui/src/routes/DeleteAccount.svelte +++ b/myconext-gui/src/routes/DeleteAccount.svelte @@ -73,7 +73,7 @@ } label { - font-weight: bold; + font-weight: 600; margin: 33px 0 13px 0; display: inline-block; } diff --git a/myconext-gui/src/routes/EditEmail.svelte b/myconext-gui/src/routes/EditEmail.svelte index b69b04ba..d21223b5 100644 --- a/myconext-gui/src/routes/EditEmail.svelte +++ b/myconext-gui/src/routes/EditEmail.svelte @@ -55,7 +55,7 @@ } label { - font-weight: bold; + font-weight: 600; margin: 33px 0 13px 0; display: inline-block; } diff --git a/myconext-gui/src/routes/EditName.svelte b/myconext-gui/src/routes/EditName.svelte index 1480bb6e..5ec0d33d 100644 --- a/myconext-gui/src/routes/EditName.svelte +++ b/myconext-gui/src/routes/EditName.svelte @@ -44,7 +44,7 @@ } label { - font-weight: bold; + font-weight: 600; margin: 33px 0 13px 0; display: inline-block; } diff --git a/myconext-gui/src/routes/EppnAlreadyLinked.svelte b/myconext-gui/src/routes/EppnAlreadyLinked.svelte index b0f27849..edb1fe3e 100644 --- a/myconext-gui/src/routes/EppnAlreadyLinked.svelte +++ b/myconext-gui/src/routes/EppnAlreadyLinked.svelte @@ -51,7 +51,7 @@ h1 { color: var(--color-primary-red); font-size: 32px; - font-weight: bold; + font-weight: 600; margin: 22px 0; } diff --git a/myconext-gui/src/routes/Expired.svelte b/myconext-gui/src/routes/Expired.svelte index ff81d874..3c969c43 100644 --- a/myconext-gui/src/routes/Expired.svelte +++ b/myconext-gui/src/routes/Expired.svelte @@ -11,7 +11,7 @@ margin: 16px 0; color: var(--color-primary-red); font-size: 32px; - font-weight: bold; + font-weight: 600; } diff --git a/myconext-gui/src/routes/ExternalAccountLinkedError.svelte b/myconext-gui/src/routes/ExternalAccountLinkedError.svelte index ba87b31b..078dfe2e 100644 --- a/myconext-gui/src/routes/ExternalAccountLinkedError.svelte +++ b/myconext-gui/src/routes/ExternalAccountLinkedError.svelte @@ -29,7 +29,7 @@ h1 { color: var(--color-primary-red); font-size: 32px; - font-weight: bold; + font-weight: 600; margin: 22px 0; } diff --git a/myconext-gui/src/routes/NotFound.svelte b/myconext-gui/src/routes/NotFound.svelte index 76a78e1a..0bfff999 100644 --- a/myconext-gui/src/routes/NotFound.svelte +++ b/myconext-gui/src/routes/NotFound.svelte @@ -13,7 +13,7 @@ h1 { color:var(--color-primary-red); font-size: 32px; - font-weight: bold; + font-weight: 600; margin: 40px 0; } diff --git a/myconext-gui/src/routes/Password.svelte b/myconext-gui/src/routes/Password.svelte index 31ac96e6..a8e2a698 100644 --- a/myconext-gui/src/routes/Password.svelte +++ b/myconext-gui/src/routes/Password.svelte @@ -108,7 +108,7 @@ } label { - font-weight: bold; + font-weight: 600; margin: 33px 0 13px 0; display: inline-block; } diff --git a/myconext-gui/src/routes/PersonalInfo.svelte b/myconext-gui/src/routes/PersonalInfo.svelte index f8a11063..3608d034 100644 --- a/myconext-gui/src/routes/PersonalInfo.svelte +++ b/myconext-gui/src/routes/PersonalInfo.svelte @@ -49,6 +49,7 @@ let showManageVerifiedInformation = false; let showModal = false; + let serviceDeskStart = false; let showIdinOptions = false; let showDeleteInstitutionModal = false; let showNewInstitutionModal = false; @@ -220,6 +221,7 @@ const retry = urlSearchParams.get("retry"); const verify = urlSearchParams.get("verify"); const linkedAccountIdentifier = urlSearchParams.get("institution"); + const showServiceDeskStart = urlSearchParams.get("servicedesk"); showManageVerifiedInformation = window.location.pathname.indexOf("manage") > -1; @@ -251,6 +253,11 @@ if ($config.featureIdVerify && isEmpty(issuers)) { iDINIssuers().then(res => issuers = res); } + if (!isEmpty(showServiceDeskStart)) { + serviceDeskStart = true; + showIdinOptions = true; + showModal = true; + } }); @@ -628,6 +635,7 @@ addEuropean={addEuropean} issuers={issuers} showIdinOptions={showIdinOptions} + showServiceDesk={serviceDeskStart} cancel={() => resetModalsAndQueryParams()}/> {/if} diff --git a/myconext-gui/src/routes/Security.svelte b/myconext-gui/src/routes/Security.svelte index 19d51bca..fc353709 100644 --- a/myconext-gui/src/routes/Security.svelte +++ b/myconext-gui/src/routes/Security.svelte @@ -201,7 +201,7 @@

{I18n.t("security.title")}

{I18n.t("security.subTitle")}

- {#if !$user.loginOptions.includes("useApp")} + {#if !$user.loginOptions.includes("useApp") || !$user.registration?.notificationType }