Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feat/add base themes #21

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -83,5 +83,6 @@
</configuration>
</plugin>
</plugins>
<finalName>keycloak-2fa-email-authenticator</finalName>
</build>
</project>
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,8 @@ private void challenge(AuthenticationFlowContext context, FormMessage errorMessa
context.challenge(response);
}



private void generateAndSendEmailCode(AuthenticationFlowContext context) {

if (context.getAuthenticationSession().getAuthNote(EMAIL_CODE) != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public String getReferenceCategory() {

@Override
public boolean isConfigurable() {
return false;
return true;
}

public static final AuthenticationExecutionModel.Requirement[] REQUIREMENT_CHOICES = {
Expand All @@ -44,6 +44,8 @@ public boolean isUserSetupAllowed() {
return false;
}



@Override
public String getHelpText() {
return "Email otp authenticator.";
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("emailTestBodyHtml",realmName))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("emailUpdateConfirmationBodyHtml",link, newEmail, realmName, linkExpirationFormatter(linkExpiration)))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("emailVerificationBodyCodeHtml",code))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("emailVerificationBodyHtml",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration)))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("eventLoginErrorBodyHtml",event.date,event.ipAddress))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("eventRemoveTotpBodyHtml",event.date, event.ipAddress))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("eventUpdatePasswordBodyHtml",event.date, event.ipAddress))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("eventUpdateTotpBodyHtml",event.date, event.ipAddress))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
<#outputformat "plainText">
<#assign requiredActionsText><#if requiredActions??><#list requiredActions><#items as reqActionItem>${msg("requiredAction.${reqActionItem}")}<#sep>, </#sep></#items></#list></#if></#assign>
</#outputformat>

<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("executeActionsBodyHtml",link, linkExpiration, realmName, requiredActionsText, linkExpirationFormatter(linkExpiration)))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("identityProviderLinkBodyHtml", identityProviderDisplayName, realmName, identityProviderContext.username, link, linkExpiration, linkExpirationFormatter(linkExpiration)))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
<#import "template.ftl" as layout>
<@layout.emailLayout>
${kcSanitize(msg("passwordResetBodyHtml",link, linkExpiration, realmName, linkExpirationFormatter(linkExpiration)))?no_esc}
</@layout.emailLayout>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
<#macro emailLayout>
<html>
<body>
<#nested>
</body>
</html>
</#macro>
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
# encoding: utf-8

emailVerificationSubject=التحقق من البريد الإلكتروني
emailVerificationBody=قام شخص ما بإنشاء حساب {2} بعنوان البريد الإلكتروني هذا. إذا كان هذا أنت، فانقر على الرابط أدناه للتحقق من عنوان بريدك الإلكتروني\n\n{0}\n\nستنتهي صلاحية هذا الرابط خلال {3}.\n\nإذا لم تكن قد أنشأت هذا الحساب، فقط تجاهل هذه الرسالة.
emailVerificationBodyHtml=<p style="direction: rtl;">قام شخص ما بإنشاء حساب {2} بعنوان البريد الإلكتروني هذا. إذا كان هذا أنت، فانقر على الرابط أدناه للتحقق من عنوان بريدك الإلكتروني</p><p style="direction: rtl;"><a href="{0}">رابط التحقق من البريد الإلكتروني</a></p><p style="direction: rtl;">ستنتهي صلاحية هذا الرابط خلال {3}.</p><p style="direction: rtl;">إذا لم تكن قد أنشأت هذا الحساب، فقط تجاهل هذه الرسالة.</p>
emailUpdateConfirmationSubject=التحقق من البريد الإلكتروني الجديد
emailUpdateConfirmationBody=لتحديث حساب {2} الخاص بك بعنوان البريد الإلكتروني {1}، انقر على الرابط أدناه\n\n{0}\n\nستنتهي صلاحية هذا الرابط خلال {3}.\n\nإذا كنت لا تريد القيام بهذا التعديل، فقط تجاهل هذه الرسالة.
emailUpdateConfirmationBodyHtml=<p style="direction: rtl;">لتحديث حساب {2} الخاص بك بعنوان البريد الإلكتروني {1}, انقر على الرابط أدناه</p><p style="direction: rtl;"><a href="{0}">{0}</a></p><p style="direction: rtl;">ستنتهي صلاحية هذا الرابط خلال {3}.</p><p style="direction: rtl;">إذا كنت لا تريد القيام بهذا التعديل، فقط تجاهل هذه الرسالة.</p>
emailTestSubject=[KEYCLOAK] - رسالة تجربة
emailTestBody=هذه رسالة تجربة
emailTestBodyHtml=<p style="direction: rtl;">هذه رسالة تجربة</p>
identityProviderLinkSubject=ربط {0}
identityProviderLinkBody=قام شخص ما بطلب ربط الحساب "{1}" بالحساب "{0}" الخاص بالمستخدم {2} . إذا كان هذا أنت، فانقر على الرابط أدناه لإتمام عملية ربط الحسابات\n\n{3}\n\nستنتهي صلاحية هذا الرابط خلال {5}.\n\nإذا كنت لا تريد ربط الحساب، فقط تجاهل هذه الرسالة. إذا قمت بربط الحسابات، فستتمكن من تسجيل الدخول إلى {1} من خلال {0}.
identityProviderLinkBodyHtml=<p style="direction: rtl;">قام شخص ما بطلب ربط الحساب <b>{1}</b> بالحساب <b>{0}</b> الخاص بالمستخدم {2}. إذا كان هذا أنت، فانقر على الرابط أدناه لإتمام عملية ربط الحسابات</p><p style="direction: rtl;"><a href="{3}">رابط لتأكيد ربط الحساب</a></p><p style="direction: rtl;">ستنتهي صلاحية هذا الرابط خلال {5}.</p><p style="direction: rtl;">إذا كنت لا تريد ربط الحساب، فقط تجاهل هذه الرسالة. إذا قمت بربط الحسابات، فستتمكن من تسجيل الدخول إلى {1} من خلال {0}.</p>
passwordResetSubject=إعادة تعيين كلمة المرور
passwordResetBody=قام شخص ما بطلب تغيير معلومات الدخول للحساب {2}. إذا كان هذا أنت، فانقر على الرابط أدناه لإعادة تعيين معلومات الدخول.\n\n{0}\n\nستنتهي صلاحية هذا الرابط خلال {3}.\n\nإذا كنت لا تريد إعادة تعيين معلومات الدخول، فقط تجاهل هذه الرسالة.
passwordResetBodyHtml=<p style="direction: rtl;">قام شخص ما بطلب تغيير معلومات الدخول للحساب {2}. إذا كان هذا أنت، فانقر على الرابط أدناه لإعادة تعيين معلومات الدخول.</p><p style="direction: rtl;"><a href="{0}">رابط إعادة تعيين معلومات الدخول للحساب</a></p><p style="direction: rtl;">ستنتهي صلاحية هذا الرابط خلال {3}.</p><p style="direction: rtl;">إذا كنت لا تريد إعادة تعيين معلومات الدخول، فقط تجاهل هذه الرسالة.</p>
executeActionsSubject=تحديث بيانات حسابك
executeActionsBody=تلقيت طلب من مسؤول النظام لتحديث بيانات حسابك {2} والقيام بالإجراءات المطلوبة التالية: {3}. انقر على الرابط أدناه للبدء.\n\n{0}\n\nستنتهي صلاحية هذا الرابط خلال {4}.\n\nإذا لم تكن على علم بأن مسؤول النظام قد طلب ذلك، فتجاهل هذه الرسالة ولن يتم تغيير أي شيء.
executeActionsBodyHtml=<p style="direction: rtl;">تلقيت طلب من مسؤول النظام لتحديث بيانات حسابك {2} والقيام بالإجراءات المطلوبة التالية: {3}. انقر على الرابط أدناه للبدء.</p><p style="direction: rtl;"><a href="{0}">رابط تحديث بيانات الحساب</a></p><p style="direction: rtl;">ستنتهي صلاحية هذا الرابط خلال {4}.</p><p style="direction: rtl;">إذا لم تكن على علم بأن مسؤول النظام قد طلب ذلك، فتجاهل هذه الرسالة ولن يتم تغيير أي شيء.</p>
eventLoginErrorSubject=خطأ في تسجيل الدخول
eventLoginErrorBody=تم رصد محاولة دخول فاشلة على حسابك في {0} ومن {1}. إذا لم تكن أنت، يرجى التواصل مع مسؤول النظام.
eventLoginErrorBodyHtml=<p style="direction: rtl;">تم رصد محاولة دخول فاشلة على حسابك في {0} ومن {1}. إذا لم تكن أنت، يرجى التواصل مع مسؤول النظام.</p>
eventRemoveTotpSubject=إزالة رمز التحقق
eventRemoveTotpBody=تم إزالة خاصية رمز التحقق من حسابك في {0} ومن {1}. إذا لم تكن أنت، يرجى التواصل مع مسؤول النظام.
eventRemoveTotpBodyHtml=<p style="direction: rtl;">تم إزالة خاصية رمز التحقق من حسابك في {0} ومن {1}. إذا لم تكن أنت، يرجى التواصل مع مسؤول النظام.</p>
eventUpdatePasswordSubject=تحديث كلمة المرور
eventUpdatePasswordBody=تم تغيير كلمة المرور الخاصة بك في {0} ومن {1}. إذا لم تكن أنت، يرجى التواصل مع مسؤول النظام.
eventUpdatePasswordBodyHtml=<p style="direction: rtl;">تم تغيير كلمة المرور الخاصة بك في {0} ومن {1}. إذا لم تكن أنت، يرجى التواصل مع مسؤول النظام.</p>
eventUpdateTotpSubject=تحديث خاصية رمز التحقق
eventUpdateTotpBody=تم تحديث حاصية رمز التحقق لحسابك في {0} ومن {1}. إذا لم تكن أنت، يرجى التواصل مع مسؤول النظام.
eventUpdateTotpBodyHtml=<p style="direction: rtl;">تم تحديث حاصية رمز التحقق لحسابك في {0} ومن {1}. إذا لم تكن أنت، يرجى التواصل مع مسؤول النظام.</p>

requiredAction.CONFIGURE_TOTP=إعداد خاصية رمز التحقق
requiredAction.TERMS_AND_CONDITIONS=الأحكام والشروط
requiredAction.UPDATE_PASSWORD=تحديث كلمة المرور
requiredAction.UPDATE_PROFILE=تحديث الملف التعريفي
requiredAction.VERIFY_EMAIL=التحقق من البريد الإلكتروني
requiredAction.CONFIGURE_RECOVERY_AUTHN_CODES=توليد رموز مصادقة الاسترداد

# units for link expiration timeout formatting
linkExpirationFormatter.timePeriodUnit.seconds=ثانية
linkExpirationFormatter.timePeriodUnit.seconds.1=ثانية
linkExpirationFormatter.timePeriodUnit.seconds.2=ثانية
linkExpirationFormatter.timePeriodUnit.seconds.3=ثواني
linkExpirationFormatter.timePeriodUnit.seconds.4=ثواني
linkExpirationFormatter.timePeriodUnit.seconds.5=ثواني
linkExpirationFormatter.timePeriodUnit.seconds.6=ثواني
linkExpirationFormatter.timePeriodUnit.seconds.7=ثواني
linkExpirationFormatter.timePeriodUnit.seconds.8=ثواني
linkExpirationFormatter.timePeriodUnit.seconds.9=ثواني
linkExpirationFormatter.timePeriodUnit.seconds.10=ثواني
linkExpirationFormatter.timePeriodUnit.minutes=دقيقة
linkExpirationFormatter.timePeriodUnit.minutes.1=دقيقة
linkExpirationFormatter.timePeriodUnit.minutes.2=دقيقة
linkExpirationFormatter.timePeriodUnit.minutes.3=دقائق
linkExpirationFormatter.timePeriodUnit.minutes.4=دقائق
linkExpirationFormatter.timePeriodUnit.minutes.5=دقائق
linkExpirationFormatter.timePeriodUnit.minutes.6=دقائق
linkExpirationFormatter.timePeriodUnit.minutes.7=دقائق
linkExpirationFormatter.timePeriodUnit.minutes.8=دقائق
linkExpirationFormatter.timePeriodUnit.minutes.9=دقائق
linkExpirationFormatter.timePeriodUnit.minutes.10=دقائق
linkExpirationFormatter.timePeriodUnit.hours=ساعة
linkExpirationFormatter.timePeriodUnit.hours.1=ساعة
linkExpirationFormatter.timePeriodUnit.hours.2=ساعة
linkExpirationFormatter.timePeriodUnit.hours.3=ساعات
linkExpirationFormatter.timePeriodUnit.hours.4=ساعات
linkExpirationFormatter.timePeriodUnit.hours.5=ساعات
linkExpirationFormatter.timePeriodUnit.hours.6=ساعات
linkExpirationFormatter.timePeriodUnit.hours.7=ساعات
linkExpirationFormatter.timePeriodUnit.hours.8=ساعات
linkExpirationFormatter.timePeriodUnit.hours.9=ساعات
linkExpirationFormatter.timePeriodUnit.hours.10=ساعات
linkExpirationFormatter.timePeriodUnit.days=يوم
linkExpirationFormatter.timePeriodUnit.days.1=يوم
linkExpirationFormatter.timePeriodUnit.days.2=يوم
linkExpirationFormatter.timePeriodUnit.days.3=أيام
linkExpirationFormatter.timePeriodUnit.days.4=أيام
linkExpirationFormatter.timePeriodUnit.days.5=أيام
linkExpirationFormatter.timePeriodUnit.days.6=أيام
linkExpirationFormatter.timePeriodUnit.days.7=أيام
linkExpirationFormatter.timePeriodUnit.days.8=أيام
linkExpirationFormatter.timePeriodUnit.days.9=أيام
linkExpirationFormatter.timePeriodUnit.days.10=أيام

emailVerificationBodyCode=يرجى التحقق من عنوان بريدك الإلكتروني عن طريق إدخال الرمز التالي.\n\n{0}\n\n.
emailVerificationBodyCodeHtml=<p style="direction: rtl;">يرجى التحقق من عنوان بريدك الإلكتروني عن طريق إدخال الرمز التالي.</p><p style="direction: rtl;"><b>{0}</b></p>

Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
emailVerificationSubject=Verificaci\u00F3 d''email
emailVerificationBody=Alg\u00FA ha creat un compte de {2} amb aquesta adre\u00E7a de correu electr\u00F2nic. Si has estat tu, fes clic a l''enlla\u00E7 seg\u00FCent per verificar la teva adre\u00E7a de correu electr\u00F2nic.\n\n{0}\n\nAquest enlla\u00E7 expirar\u00E0 en {1} minuts.\n\nSi tu no has creat aquest compte, simplement ignora aquest missatge.
emailVerificationBodyHtml=<p>Alg\u00FA ha creat un compte de {2} amb aquesta adre\u00E7a de correu electr\u00F2nic. Si has estat tu, fes clic a l''enlla\u00E7 seg\u00FCent per verificar la teva adre\u00E7a de correu electr\u00F2nic.</p><p><a href=\"{0}\">{0}</a></p><p> Aquest enlla\u00E7 expirar\u00E0 en {1} minuts.</p><p> Si tu no has creat aquest compte, simplement ignora aquest missatge.</p>
passwordResetSubject=Reinicia contrasenya
passwordResetBody=Alg\u00FA ha demanat de canviar les credencials del teu compte de {2}. Si has estat tu, fes clic a l''enlla\u00E7 seg\u00FCent per a reiniciar-les.\n\n{0}\n\nAquest enlla\u00E7 expirar\u00E0 en {1} minuts.\n\nSi no vols reiniciar les teves credencials, simplement ignora aquest missatge i no es realitzar\u00E0 cap canvi.
passwordResetBodyHtml=<p>Alg\u00FA ha demanat de canviar les credencials del teu compte de {2}. Si has estat tu, fes clic a l''enlla\u00E7 seg\u00FCent per a reiniciar-les.</p><p><a href=\"{0}\">{0}</a></p><p>Aquest enlla\u00E7 expirar\u00E0 en {1} minuts.</p><p>Si no vols reiniciar les teves credencials, simplement ignora aquest missatge i no es realitzar\u00E0 cap canvi.</p>
executeActionsSubject=Actualitza el teu compte
executeActionsBody=L''administrador ha sol\u00B7licitat que actualitzis el teu compte de {2}. Fes clic a l''enlla\u00E7 inferior per iniciar aquest proc\u00E9s.\n\n{0}\n\nAquest enlla\u00E7 expirar\u00E0 en {1} minutes.\n\nSi no est\u00E0s al tant que l''administrador hagi sol\u00B7licitat aix\u00F2, simplement ignora aquest missatge i no es realitzar\u00E0 cap canvi.
executeActionsBodyHtml=<p>L''administrador ha sol\u00B7licitat que actualitzis el teu compte de {2}. Fes clic a l''enlla\u00E7 inferior per iniciar aquest proc\u00E9s.</p><p><a href=\"{0}\">{0}</a></p><p>Aquest enlla\u00E7 expirar\u00E0 en {1} minutes.</p><p>Si no est\u00E0s al tant que l''administrador hagi sol\u00B7licitat aix\u00F2, simplement ignora aquest missatge i no es realitzar\u00E0 cap canvi.</p>
eventLoginErrorSubject=Fallada en l''inici de sessi\u00F3
eventLoginErrorBody=S''ha detectat un intent d''acc\u00E9s fallit al teu compte el {0} des de {1}. Si no has estat tu, si us plau contacta amb l''administrador.
eventLoginErrorBodyHtml=<p>S''ha detectat un intent d''acc\u00E9s fallit al teu compte el {0} des de {1}. Si no has estat tu, si us plau contacta amb l''administrador.</p>
eventRemoveTotpSubject=Esborrat OTP
eventRemoveTotpBody=OTP s''ha eliminat del teu compte el {0} des de {1}. Si no has estat tu, per favor contacta amb l''administrador.
eventRemoveTotpBodyHtml=<p>OTP s''ha eliminat del teu compte el {0} des de {1}. Si no has estat tu, si us plau contacta amb l''administrador. </ P>
eventUpdatePasswordSubject=Actualitzaci\u00F3 de contrasenya
eventUpdatePasswordBody=La teva contrasenya s''ha actualitzat el {0} des de {1}. Si no has estat tu, si us plau contacta amb l''administrador.
eventUpdatePasswordBodyHtml=<p>La teva contrasenya s''ha actualitzat el {0} des de {1}. Si no has estat tu, si us plau contacta amb l''administrador.</p>
eventUpdateTotpSubject=Actualitzaci\u00F3 de OTP
eventUpdateTotpBody=OTP s''ha actualitzat al teu compte el {0} des de {1}. Si no has estat tu, si us plau contacta amb l''administrador.
eventUpdateTotpBodyHtml=<p>OTP s''ha actualitzat al teu compte el {0} des de {1}. Si no has estat tu, si us plau contacta amb l''administrador.</p>
Loading