From ca87ba7465b7a5b451b7854eaec74d2be7111bf8 Mon Sep 17 00:00:00 2001 From: Dmitriy Sim Date: Fri, 21 May 2021 11:46:06 +0300 Subject: [PATCH] 0.1.2 (emails) --- juice/email/html/email-test.ftl | 88 +++++++++++++++++++ .../html/email-verification-with-code.ftl | 88 +++++++++++++++++++ juice/email/html/email-verification.ftl | 88 +++++++++++++++++++ juice/email/html/event-login_error.ftl | 88 +++++++++++++++++++ juice/email/html/event-remove_totp.ftl | 88 +++++++++++++++++++ juice/email/html/event-update_password.ftl | 88 +++++++++++++++++++ juice/email/html/event-update_totp.ftl | 88 +++++++++++++++++++ juice/email/html/executeActions.ftl | 88 +++++++++++++++++++ juice/email/html/identity-provider-link.ftl | 88 +++++++++++++++++++ juice/email/html/password-reset.ftl | 88 +++++++++++++++++++ juice/email/messages/messages_de.properties | 49 +++++++++++ juice/email/messages/messages_en.properties | 53 +++++++++++ juice/email/text/email-test.ftl | 6 ++ .../text/email-verification-with-code.ftl | 6 ++ juice/email/text/email-verification.ftl | 6 ++ juice/email/text/event-login_error.ftl | 6 ++ juice/email/text/event-remove_totp.ftl | 6 ++ juice/email/text/event-update_password.ftl | 6 ++ juice/email/text/event-update_totp.ftl | 6 ++ juice/email/text/executeActions.ftl | 7 ++ juice/email/text/identity-provider-link.ftl | 6 ++ juice/email/text/password-reset.ftl | 6 ++ juice/email/theme.properties | 2 +- version.ini | 2 +- 24 files changed, 1045 insertions(+), 2 deletions(-) create mode 100644 juice/email/html/email-test.ftl create mode 100644 juice/email/html/email-verification-with-code.ftl create mode 100644 juice/email/html/email-verification.ftl create mode 100644 juice/email/html/event-login_error.ftl create mode 100644 juice/email/html/event-remove_totp.ftl create mode 100644 juice/email/html/event-update_password.ftl create mode 100644 juice/email/html/event-update_totp.ftl create mode 100644 juice/email/html/executeActions.ftl create mode 100644 juice/email/html/identity-provider-link.ftl create mode 100644 juice/email/html/password-reset.ftl create mode 100644 juice/email/messages/messages_de.properties create mode 100644 juice/email/messages/messages_en.properties create mode 100644 juice/email/text/email-test.ftl create mode 100644 juice/email/text/email-verification-with-code.ftl create mode 100644 juice/email/text/email-verification.ftl create mode 100644 juice/email/text/event-login_error.ftl create mode 100644 juice/email/text/event-remove_totp.ftl create mode 100644 juice/email/text/event-update_password.ftl create mode 100644 juice/email/text/event-update_totp.ftl create mode 100644 juice/email/text/executeActions.ftl create mode 100644 juice/email/text/identity-provider-link.ftl create mode 100644 juice/email/text/password-reset.ftl diff --git a/juice/email/html/email-test.ftl b/juice/email/html/email-test.ftl new file mode 100644 index 0000000..836e0c5 --- /dev/null +++ b/juice/email/html/email-test.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("emailTestBodySubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("emailTestBodyHtml",realmName))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/email-verification-with-code.ftl b/juice/email/html/email-verification-with-code.ftl new file mode 100644 index 0000000..b838bdc --- /dev/null +++ b/juice/email/html/email-verification-with-code.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("emailVerificationSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("emailVerificationBodyCodeHtml",code))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/email-verification.ftl b/juice/email/html/email-verification.ftl new file mode 100644 index 0000000..231c1c2 --- /dev/null +++ b/juice/email/html/email-verification.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("emailVerificationSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("emailVerificationBodyHtml",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration)))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/event-login_error.ftl b/juice/email/html/event-login_error.ftl new file mode 100644 index 0000000..0ec199f --- /dev/null +++ b/juice/email/html/event-login_error.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("eventLoginErrorSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("eventLoginErrorBodyHtml",event.date,event.ipAddress))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/event-remove_totp.ftl b/juice/email/html/event-remove_totp.ftl new file mode 100644 index 0000000..396149d --- /dev/null +++ b/juice/email/html/event-remove_totp.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("eventRemoveTotpSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("eventRemoveTotpBodyHtml",event.date, event.ipAddress))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/event-update_password.ftl b/juice/email/html/event-update_password.ftl new file mode 100644 index 0000000..aecc037 --- /dev/null +++ b/juice/email/html/event-update_password.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("eventUpdatePasswordSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("eventUpdatePasswordBodyHtml",event.date, event.ipAddress))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/event-update_totp.ftl b/juice/email/html/event-update_totp.ftl new file mode 100644 index 0000000..7cf9b80 --- /dev/null +++ b/juice/email/html/event-update_totp.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("eventUpdateTotpSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("eventUpdateTotpBodyHtml",event.date, event.ipAddress))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/executeActions.ftl b/juice/email/html/executeActions.ftl new file mode 100644 index 0000000..eba7896 --- /dev/null +++ b/juice/email/html/executeActions.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("executeActionsSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("executeActionsBodyHtml",link, linkExpiration, realmName, requiredActionsText, linkExpirationFormatter(linkExpiration)))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/identity-provider-link.ftl b/juice/email/html/identity-provider-link.ftl new file mode 100644 index 0000000..9029be6 --- /dev/null +++ b/juice/email/html/identity-provider-link.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("identityProviderLinkSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("identityProviderLinkBodyHtml", identityProviderAlias, realmName, identityProviderContext.username, link, linkExpiration, linkExpirationFormatter(linkExpiration)))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/html/password-reset.ftl b/juice/email/html/password-reset.ftl new file mode 100644 index 0000000..ef56f10 --- /dev/null +++ b/juice/email/html/password-reset.ftl @@ -0,0 +1,88 @@ + + + + + E-Mail Vorlage + + + + + + + + + + + + + + + + + + +
+ J Pilot Logo +
+ + + + +
+ +

+ + ${kcSanitize(msg("passwordResetSubject",link))?no_esc} + +

+ + + ${kcSanitize(msg("passwordResetBodyHtml",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration)))?no_esc} + + + + ${kcSanitize(msg("mailSignatureHtml", link))?no_esc} + + +
+
+ + + + +
+ + + + +
+ + + + +
+ + ${kcSanitize(msg("footerHTML",realmName))?no_esc} + +
+
+
+
+ + + + +
+ © Copyright 2021 +
+
+ + \ No newline at end of file diff --git a/juice/email/messages/messages_de.properties b/juice/email/messages/messages_de.properties new file mode 100644 index 0000000..0d4580f --- /dev/null +++ b/juice/email/messages/messages_de.properties @@ -0,0 +1,49 @@ +emailVerificationSubject=E-Mail verifizieren +emailVerificationBody=Jemand hat ein {2} Konto mit dieser E-Mail-Adresse erstellt. Falls Du das warst, dann klicke auf den Link, um die E-Mail-Adresse zu verifizieren.\n\n{0}\n\nDieser Link wird in {1} Minuten ablaufen.\n\nFalls Du dieses Konto nicht erstellt hast, dann kannst Du diese Nachricht ignorieren. +emailVerificationBodyHtml=

Jemand hat ein {2} Konto mit dieser E-Mail-Adresse erstellt. Falls Du das warst, dann klicke auf den Link, um die E-Mail-Adresse zu verifizieren.

Link zur Best\u00E4tigung der E-Mail-Adresse

Dieser Link wird in {1} Minuten ablaufen.

Falls Du dieses Konto nicht erstellt hast, dann kannst Du diese Nachricht ignorieren.

+identityProviderLinkSubject=Link {0} +identityProviderLinkBody=Es wurde beantragt Deinen Account {1} mit dem Account {0} von Benutzer {2} zu verlinken. Solltest Du dies beantragt hast, klicke auf den unten stehenden Link.\n\n{3}\n\n Die G\u00FCltigkeit des Links wird in {4} Minuten verfallen.\n\nSolltest Du Deinen Account nicht verlinken wollen, ignoriere diese Nachricht. Wenn Du die Accounts verlinkst, wird ein Login auf {1} \u00FCber {0} erm\u00F6glicht. +identityProviderLinkBodyHtml=

Es wurde beantragt Deinen Account {1} mit dem Account {0} von Benutzer {2} zu verlinken. Solltest Du dies beantragt hast, klicke auf den unten stehenden Link.

Link zur Best\u00E4tigung der Kontoverkn\u00FCpfung

Die G\u00FCltigkeit des Links wird in {4} Minuten verfallen.

Solltest Du Deinen Account nicht verlinken wollen, ignoriere diese Nachricht. Wenn Du die Accounts verlinkst, wird ein Login auf {1} \u00FCber {0} erm\u00F6glicht.

+passwordResetSubject=Passwort zur\u00FCcksetzen +passwordResetBody=Es wurde eine \u00C4nderung der Anmeldeinformationen f\u00FCr Deinen Account {2} angefordert. Wenn Du diese \u00C4nderung beantragt hast, klicke auf den unten stehenden Link.\n\n{0}\n\nDie G\u00FCltigkeit des Links wird in {1} Minuten verfallen.\n\nSolltest Du keine \u00C4nderung vollziehen wollen, kannst Du diese Nachricht ignorieren und an Deinem Account wird nichts ge\u00E4ndert. +passwordResetBodyHtml=

Es wurde eine \u00C4nderung der Anmeldeinformationen f\u00FCr Deinen Account {2} angefordert. Wenn Du diese \u00C4nderung beantragt hast, klicke auf den unten stehenden Link.

Link zum Zur\u00FCcksetzen von Anmeldeinformationen

Die G\u00FCltigkeit des Links wird in {1} Minuten verfallen.

Solltest Du keine \u00C4nderung vollziehen wollen, kannst Du diese Nachricht ignorieren und an Deinem Account wird nichts ge\u00E4ndert.

+executeActionsSubject=Aktualisiere Dein Konto +executeActionsBody=Dein Administrator hat Dich aufgefordert, Deinen Account {2} zu aktualisieren. Klicke auf den unten stehenden Link, um den Prozess zu starten.\n\n{0}\n\nDie G\u00FCltigkeit des Links wird in {1} Minuten verfallen.\n\nSolltest Du Dich dieser Aufforderung nicht bewusst sein, ignoriere diese Nachricht und Dein Account bleibt unver\u00E4ndert. +executeActionsBodyHtml=

Dein Administrator hat Dich aufgefordert, Deinen Account {2} zu aktualisieren. Klicke auf den unten stehenden Link, um den Prozess zu starten.

Link zum Account-Update

Die G\u00FCltigkeit des Links wird in {1} Minuten verfallen.

Solltest Du Dich dieser Aufforderung nicht bewusst sein, ignoriere diese Nachricht und Dein Account bleibt unver\u00E4ndert.

+eventLoginErrorSubject=Fehlgeschlagene Anmeldung +eventLoginErrorBody=Jemand hat um {0} von {1} versucht, sich mit Deinem Konto anzumelden. Falls es nicht Du warst, dann kontaktiere bitte Deinen Admin. +eventLoginErrorBodyHtml=

Jemand hat um {0} von {1} versucht, sich mit Deinem Konto anzumelden. Falls es nicht Du warst, dann kontaktiere bitte Deinen Admin.

+eventRemoveTotpSubject=OTP Entfernt +eventRemoveTotpBody=OTP wurde von Deinem Konto am {0} von {1} entfernt. Falls es nicht Du warst, dann kontaktiere bitte Deinen Admin. +eventRemoveTotpBodyHtml=

OTP wurde von Deinem Konto am {0} von {1} entfernt. Falls es nicht Du warst, dann kontaktiere bitte Deinen Admin.

+eventUpdatePasswordSubject=Passwort Aktualisiert +eventUpdatePasswordBody=Dein Passwort wurde am {0} von {1} ge\u00E4ndert. Falls es nicht Du warst, dann kontaktiere bitte Deinen Admin. +eventUpdatePasswordBodyHtml=

Dein Passwort wurde am {0} von {1} ge\u00E4ndert. Falls es nicht Du warst, dann kontaktiere bitte Deinen Admin.

+eventUpdateTotpSubject=OTP Aktualisiert +eventUpdateTotpBody=OTP wurde am {0} von {1} ge\u00E4ndert. Falls es nicht Du warst, dann kontaktiere bitte Deinen Admin. +eventUpdateTotpBodyHtml=

OTP wurde am {0} von {1} ge\u00E4ndert. Falls es nicht Du warst, dann kontaktiere bitte Deinen Admin.

+ +requiredAction.CONFIGURE_TOTP=Mehrfachauthentifizierung konfigurieren +requiredAction.terms_and_conditions=Bedingungen und Konditionen +requiredAction.UPDATE_PASSWORD=Passwort aktualisieren +requiredAction.UPDATE_PROFILE=Profil aktualisieren +requiredAction.VERIFY_EMAIL=E-Mail-Adresse verifizieren + +# units for link expiration timeout formatting +linkExpirationFormatter.timePeriodUnit.seconds=Sekunden +linkExpirationFormatter.timePeriodUnit.seconds.1=Sekunde +linkExpirationFormatter.timePeriodUnit.minutes=Minuten +linkExpirationFormatter.timePeriodUnit.minutes.1=Minute +linkExpirationFormatter.timePeriodUnit.hours=Stunden +linkExpirationFormatter.timePeriodUnit.hours.1=Stunde +linkExpirationFormatter.timePeriodUnit.days=Tage +linkExpirationFormatter.timePeriodUnit.days.1=Tag + +emailVerificationBodyCode=Bitte verifiziere Deine E-Mail-Adresse, indem Du den folgenden Code eingibst.\n\n{0}\n\n. +emailVerificationBodyCodeHtml=

Bitte verifiziere Deine E-Mail-Adresse, indem Du den folgenden Code eingibst.

{0}

+ +footer=Du erhältst diese E-Mail, weil Du mit dieser E-Mail-Adresse bei j+ registriert bist.\n\nWenn Du in Zukunft keine weiteren E-Mails erhalten möchtest, schreibe uns bitte auf support@jplus-pilot.com\n\n© Copyright 2021 Juice Telemetrics AG\nGeschäftsführer: Christoph Erni\nGesellschaftssitz: Cham CH\nAdresse: Gewerbestrasse 7 | 6330 Cham | Switzerland\nUSt-ID: CHE-497.622.911\n\nHast Du Fragen? Du erreichst uns schnell und kostenlos über support@jplus-pilot.com\n\nPflichtinformationen gemäss Artikel 13 DSGVO Im Falle des Erstkontakts sind wir gemäss Art. 12, 13 DSGVO verpflichtet, Dir folgende datenschutzrechtliche Pflichtinformationen zur Verfügung zu stellen: Wenn Du uns per E-Mail kontaktierst, verarbeiten wir Deine personenbezogenen Daten nur, soweit an der Verarbeitung ein berechtigtes Interesse besteht (Art. 6 Abs. 1 lit. f DSGVO), Du in die Datenverarbeitung eingewilligt hast (Art. 6 Abs. 1 lit. a DSGVO), die Verarbeitung für die Anbahnung, Begründung, inhaltliche Ausgestaltung oder Änderung eines Rechtsverhältnisses zwischen Dir und uns erforderlich sind (Art. 6 Abs. 1 lit. b DSGVO) oder eine sonstige Rechtsnorm die Verarbeitung gestattet. Deine personenbezogenen Daten verbleiben bei uns, bis Du uns zur Löschung aufforderst, Deine Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Deines Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere steuer- und handelsrechtliche Aufbewahrungsfristen – bleiben unberührt. Du hast jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Deiner gespeicherten personenbezogenen Daten zu erhalten. Dir steht ausserdem ein Recht auf Widerspruch, auf Datenübertragbarkeit und ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Ferner kannst Du die Berichtigung, die Löschung und unter bestimmten Umständen die Einschränkung der Verarbeitung Deiner personenbezogenen Daten verlangen. +footerHTML=

Du erhältst diese E-Mail, weil Du mit dieser E-Mail-Adresse bei j+ registriert bist.

Wenn Du in Zukunft keine weiteren E-Mails erhalten möchtest, schreibe uns bitte hier support@jplus-pilot.com.

© Copyright 2021 Juice Telemetrics AG
Geschäftsführer: Christoph Erni
Gesellschaftssitz: Cham CH
Adresse: Gewerbestrasse 7 | 6330 Cham | Switzerland
USt-ID: CHE-497.622.911

Hast Du Fragen? Du erreichst uns schnell und kostenlos über support@jplus-pilot.com

Pflichtinformationen gemäss Artikel 13 DSGVO Im Falle des Erstkontakts sind wir gemäss Art. 12, 13 DSGVO verpflichtet, Dir folgende datenschutzrechtliche Pflichtinformationen zur Verfügung zu stellen: Wenn Du uns per E-Mail kontaktierst, verarbeiten wir Deine personenbezogenen Daten nur, soweit an der Verarbeitung ein berechtigtes Interesse besteht (Art. 6 Abs. 1 lit. f DSGVO), Du in die Datenverarbeitung eingewilligt hast (Art. 6 Abs. 1 lit. a DSGVO), die Verarbeitung für die Anbahnung, Begründung, inhaltliche Ausgestaltung oder Änderung eines Rechtsverhältnisses zwischen Dir und uns erforderlich sind (Art. 6 Abs. 1 lit. b DSGVO) oder eine sonstige Rechtsnorm die Verarbeitung gestattet. Deine personenbezogenen Daten verbleiben bei uns, bis Du uns zur Löschung aufforderst, Deine Einwilligung zur Speicherung widerrufen oder der Zweck für die Datenspeicherung entfällt (z. B. nach abgeschlossener Bearbeitung Deines Anliegens). Zwingende gesetzliche Bestimmungen – insbesondere steuer- und handelsrechtliche Aufbewahrungsfristen – bleiben unberührt. Du hast jederzeit das Recht, unentgeltlich Auskunft über Herkunft, Empfänger und Zweck Deiner gespeicherten personenbezogenen Daten zu erhalten. Dir steht ausserdem ein Recht auf Widerspruch, auf Datenübertragbarkeit und ein Beschwerderecht bei der zuständigen Aufsichtsbehörde zu. Ferner kannst Du die Berichtigung, die Löschung und unter bestimmten Umständen die Einschränkung der Verarbeitung Deiner personenbezogenen Daten verlangen.

+ +mailSignatureHtml=Dein j+ pilot Team +mailSignature=Dein j+ pilot Team \ No newline at end of file diff --git a/juice/email/messages/messages_en.properties b/juice/email/messages/messages_en.properties new file mode 100644 index 0000000..6fa5a02 --- /dev/null +++ b/juice/email/messages/messages_en.properties @@ -0,0 +1,53 @@ +emailVerificationSubject=Verify email +emailVerificationBody=Someone has created a {2} account with this email address. If this was you, click the link below to verify your email address\n\n{0}\n\nThis link will expire within {3}.\n\nIf you didn't create this account, just ignore this message. +emailVerificationBodyHtml=

Someone has created a {2} account with this email address. If this was you, click the link below to verify your email address

Link to e-mail address verification

This link will expire within {3}.

If you didn't create this account, just ignore this message.

+identityProviderLinkSubject=Link {0} +identityProviderLinkBody=Someone wants to link your "{1}" account with "{0}" account of user {2} . If this was you, click the link below to link accounts\n\n{3}\n\nThis link will expire within {5}.\n\nIf you don't want to link account, just ignore this message. If you link accounts, you will be able to login to {1} through {0}. +identityProviderLinkBodyHtml=

Someone wants to link your {1} account with {0} account of user {2} . If this was you, click the link below to link accounts

Link to confirm account linking

This link will expire within {5}.

If you don't want to link accounts, just ignore this message. If you link accounts, you will be able to login to {1} through {0}.

+passwordResetSubject=Reset password +passwordResetBody=Someone just requested to change your {2} account's credentials. If this was you, click on the link below to reset them.\n\n{0}\n\nThis link and code will expire within {3}.\n\nIf you don't want to reset your credentials, just ignore this message and nothing will be changed. +passwordResetBodyHtml=

Someone just requested to change your {2} account's credentials. If this was you, click on the link below to reset them.

Link to reset credentials

This link will expire within {3}.

If you don't want to reset your credentials, just ignore this message and nothing will be changed.

+executeActionsSubject=Update your Account +executeActionsBody=Your administrator has just requested that you update your {2} account by performing the following action(s): {3}. Click on the link below to start this process.\n\n{0}\n\nThis link will expire within {4}.\n\nIf you are unaware that your administrator has requested this, just ignore this message and nothing will be changed. +executeActionsBodyHtml=

Your administrator has just requested that you update your {2} account by performing the following action(s): {3}. Click on the link below to start this process.

Link to account update

This link will expire within {4}.

If you are unaware that your administrator has requested this, just ignore this message and nothing will be changed.

+eventLoginErrorSubject=Login error +eventLoginErrorBody=A failed login attempt was detected to your account on {0} from {1}. If this was not you, please contact an administrator. +eventLoginErrorBodyHtml=

A failed login attempt was detected to your account on {0} from {1}. If this was not you, please contact an administrator.

+eventRemoveTotpSubject=Remove OTP +eventRemoveTotpBody=OTP was removed from your account on {0} from {1}. If this was not you, please contact an administrator. +eventRemoveTotpBodyHtml=

OTP was removed from your account on {0} from {1}. If this was not you, please contact an administrator.

+eventUpdatePasswordSubject=Update password +eventUpdatePasswordBody=Your password was changed on {0} from {1}. If this was not you, please contact an administrator. +eventUpdatePasswordBodyHtml=

Your password was changed on {0} from {1}. If this was not you, please contact an administrator.

+eventUpdateTotpSubject=Update OTP +eventUpdateTotpBody=OTP was updated for your account on {0} from {1}. If this was not you, please contact an administrator. +eventUpdateTotpBodyHtml=

OTP was updated for your account on {0} from {1}. If this was not you, please contact an administrator.

+ +requiredAction.CONFIGURE_TOTP=Configure OTP +requiredAction.terms_and_conditions=Terms and Conditions +requiredAction.UPDATE_PASSWORD=Update Password +requiredAction.UPDATE_PROFILE=Update Profile +requiredAction.VERIFY_EMAIL=Verify Email + +# units for link expiration timeout formatting +linkExpirationFormatter.timePeriodUnit.seconds=seconds +linkExpirationFormatter.timePeriodUnit.seconds.1=second +linkExpirationFormatter.timePeriodUnit.minutes=minutes +linkExpirationFormatter.timePeriodUnit.minutes.1=minute +#for language which have more unit plural forms depending on the value (eg. Czech and other Slavic langs) you can override unit text for some other values like this: +#linkExpirationFormatter.timePeriodUnit.minutes.2=minuty +#linkExpirationFormatter.timePeriodUnit.minutes.3=minuty +#linkExpirationFormatter.timePeriodUnit.minutes.4=minuty +linkExpirationFormatter.timePeriodUnit.hours=hours +linkExpirationFormatter.timePeriodUnit.hours.1=hour +linkExpirationFormatter.timePeriodUnit.days=days +linkExpirationFormatter.timePeriodUnit.days.1=day + +emailVerificationBodyCode=Please verify your email address by entering in the following code.\n\n{0}\n\n. +emailVerificationBodyCodeHtml=

Please verify your email address by entering in the following code.

{0}

+ +footer=You have received this e-mail because you are registered at j+ under this e-mail address.\n\nIf you do not wish to receive any further e-mail correspondence, please write us at support@jplus-pilot.com.\n\n© Copyright 2021 Juice Telemetrics AG\nChief Executive Officer: Christoph Erni\nRegistered office: Cham, Switzerland\nAddress: Gewerbestrasse 7 | 6330 Cham | Switzerland\nVAT ID: CHE-497.622.911\n\nDo you have any questions, or need more information? You can reach us quickly and free of charge at support@jplus-pilot.com\n\nInformation to be provided in accordance with Article 13 of the General Data Protection Regulation (GDPR). When you first initiate contact with us, we are obligated in accordance with Articles 12 and 13 of the GDPR to provide you with the following mandatory legal information concerning data protection: When you contact us by e-mail, we process your personal data only to the extent necessary for the purposes of pursuing our legitimate interests (as per Art. 6 para. 1 point (f) of the GDPR), you have given consent to the processing of your personal data (as per Art. 6 para. 1 point (a) of the GDPR), said processing is necessary to initiate, justify, create or amend a legal relationship between you and us (Art. 6 para. 1 point (b) of the GDPR), or some other legal norm permits the processing. We retain your personal data until you either request us to erase your data or revoke your consent to our storing your data, or the purpose of the data storage lapses (e.g. once the processing of your request or transaction has been completed). Mandatory statutory provisions – in particular governing data retention periods mandated by tax or trade law – remain unaffected by these regulations. You have the right at any time to obtain, free of charge, information on the origin, recipient(s) and purpose of your personal information that we have stored. You also have to right to object to said data processing, the right to data portability, and the right to lodge a complaint with the competent supervisory authority. You furthermore have the right to demand the rectification or erasure of your personal data and, under certain circumstances, to restrict the processing of your personal data. +footerHTML=

You have received this e-mail because you are registered at j+ under this e-mail address.

If you do not wish to receive any further e-mail correspondence, please write us atsupport@jplus-pilot.com.

© Copyright 2021 Juice Telemetrics AG
Chief Executive Officer: Christoph Erni
Registered office: Cham, Switzerland
Address: Gewerbestrasse 7 | 6330 Cham | Switzerland
VAT ID: CHE-497.622.911

Do you have any questions, or need more information? You can reach us quickly and free of charge at support@jplus-pilot.com

Information to be provided in accordance with Article 13 of the General Data Protection Regulation (GDPR). When you first initiate contact with us, we are obligated in accordance with Articles 12 and 13 of the GDPR to provide you with the following mandatory legal information concerning data protection: When you contact us by e-mail, we process your personal data only to the extent necessary for the purposes of pursuing our legitimate interests (as per Art. 6 para. 1 point (f) of the GDPR), you have given consent to the processing of your personal data (as per Art. 6 para. 1 point (a) of the GDPR), said processing is necessary to initiate, justify, create or amend a legal relationship between you and us (Art. 6 para. 1 point (b) of the GDPR), or some other legal norm permits the processing. We retain your personal data until you either request us to erase your data or revoke your consent to our storing your data, or the purpose of the data storage lapses (e.g. once the processing of your request or transaction has been completed). Mandatory statutory provisions – in particular governing data retention periods mandated by tax or trade law – remain unaffected by these regulations. You have the right at any time to obtain, free of charge, information on the origin, recipient(s) and purpose of your personal information that we have stored. You also have to right to object to said data processing, the right to data portability, and the right to lodge a complaint with the competent supervisory authority. You furthermore have the right to demand the rectification or erasure of your personal data and, under certain circumstances, to restrict the processing of your personal data.

+ +mailSignatureHtml=Your j+ pilot team +mailSignature=Your j+ pilot team \ No newline at end of file diff --git a/juice/email/text/email-test.ftl b/juice/email/text/email-test.ftl new file mode 100644 index 0000000..752b17b --- /dev/null +++ b/juice/email/text/email-test.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("emailTestSubject",link)} +${msg("emailTestBody", realmName)} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/text/email-verification-with-code.ftl b/juice/email/text/email-verification-with-code.ftl new file mode 100644 index 0000000..ef80596 --- /dev/null +++ b/juice/email/text/email-verification-with-code.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("emailVerificationSubject",link)} +${msg("emailVerificationBodyCode",code)} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/text/email-verification.ftl b/juice/email/text/email-verification.ftl new file mode 100644 index 0000000..3d82c36 --- /dev/null +++ b/juice/email/text/email-verification.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("emailVerificationSubject",link)} +${msg("emailVerificationBody",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration))} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/text/event-login_error.ftl b/juice/email/text/event-login_error.ftl new file mode 100644 index 0000000..e31fdb2 --- /dev/null +++ b/juice/email/text/event-login_error.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("eventLoginErrorSubject",link)} +${msg("eventLoginErrorBody",event.date,event.ipAddress)} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/text/event-remove_totp.ftl b/juice/email/text/event-remove_totp.ftl new file mode 100644 index 0000000..7aa18b0 --- /dev/null +++ b/juice/email/text/event-remove_totp.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("eventRemoveTotpSubject",link)} +${msg("eventRemoveTotpBody",event.date, event.ipAddress)} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/text/event-update_password.ftl b/juice/email/text/event-update_password.ftl new file mode 100644 index 0000000..9190fb7 --- /dev/null +++ b/juice/email/text/event-update_password.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("eventUpdatePasswordSubject",link)} +${msg("eventUpdatePasswordBody",event.date, event.ipAddress)} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/text/event-update_totp.ftl b/juice/email/text/event-update_totp.ftl new file mode 100644 index 0000000..da0645f --- /dev/null +++ b/juice/email/text/event-update_totp.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("eventUpdateTotpSubject",link)} +${msg("eventUpdateTotpBody",event.date, event.ipAddress)} +${msg("mailSignature", link)} +${msg("footer",realmName)} diff --git a/juice/email/text/executeActions.ftl b/juice/email/text/executeActions.ftl new file mode 100644 index 0000000..1f79f9a --- /dev/null +++ b/juice/email/text/executeActions.ftl @@ -0,0 +1,7 @@ +<#ftl output_format="plainText"> +<#assign requiredActionsText><#if requiredActions??><#list requiredActions><#items as reqActionItem>${msg("requiredAction.${reqActionItem}")}<#sep>, <#else> + +${msg("executeActionsSubject",link)} +${msg("executeActionsBody",link, linkExpiration, realmName, requiredActionsText, linkExpirationFormatter(linkExpiration))} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/text/identity-provider-link.ftl b/juice/email/text/identity-provider-link.ftl new file mode 100644 index 0000000..f7f228f --- /dev/null +++ b/juice/email/text/identity-provider-link.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("identityProviderLinkSubject",link)} +${msg("identityProviderLinkBody", identityProviderAlias, realmName, identityProviderContext.username, link, linkExpiration, linkExpirationFormatter(linkExpiration))} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/text/password-reset.ftl b/juice/email/text/password-reset.ftl new file mode 100644 index 0000000..03c8d18 --- /dev/null +++ b/juice/email/text/password-reset.ftl @@ -0,0 +1,6 @@ +<#ftl output_format="plainText"> + +${msg("passwordResetSubject",link)} +${msg("passwordResetBody",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration))} +${msg("mailSignature", link)} +${msg("footer",realmName)} \ No newline at end of file diff --git a/juice/email/theme.properties b/juice/email/theme.properties index f1dbb72..2c5736b 100644 --- a/juice/email/theme.properties +++ b/juice/email/theme.properties @@ -1 +1 @@ -parent=base \ No newline at end of file +locales=de,en diff --git a/version.ini b/version.ini index 6da28dd..8294c18 100644 --- a/version.ini +++ b/version.ini @@ -1 +1 @@ -0.1.1 \ No newline at end of file +0.1.2 \ No newline at end of file