diff --git a/console/src/assets/i18n/en.json b/console/src/assets/i18n/en.json index 90c9f9c271..4363070eda 100644 --- a/console/src/assets/i18n/en.json +++ b/console/src/assets/i18n/en.json @@ -1231,7 +1231,7 @@ }, "BASIC": { "TITLE": "Basic", - "DESCRIPTION": "Authentication with Username and Passwort" + "DESCRIPTION": "Authentication with Username and Password" }, "IMPLICIT": { "TITLE": "Implicit", diff --git a/internal/static/i18n/en.yaml b/internal/static/i18n/en.yaml index 41365e2bb1..6d7a2a3935 100644 --- a/internal/static/i18n/en.yaml +++ b/internal/static/i18n/en.yaml @@ -76,7 +76,7 @@ Errors: Password: NotFound: Passoword not found Empty: Password is empty - Invalid: Passwort is invalid + Invalid: Password is invalid NotSet: User has not set a password PasswordComplexityPolicy: NotFound: Password policy not found @@ -174,9 +174,9 @@ Errors: AlreadyExists: Password Complexity Policy already exists PasswordLockout: NotFound: Password Lockout Policy not found - Empty: Passwort Lockout Policy is empty - NotExisting: Passwort Lockout Policy doesn't exist - AlreadyExists: Passwort Lockout Policy already exists + Empty: Password Lockout Policy is empty + NotExisting: Password Lockout Policy doesn't exist + AlreadyExists: Password Lockout Policy already exists PasswordAge: NotFound: Password Age Policy not found Empty: Password Age Policy is empty diff --git a/internal/ui/login/handler/password_complexity_policy_handler.go b/internal/ui/login/handler/password_complexity_policy_handler.go index 34781be6d7..94088a515a 100644 --- a/internal/ui/login/handler/password_complexity_policy_handler.go +++ b/internal/ui/login/handler/password_complexity_policy_handler.go @@ -66,6 +66,8 @@ func (l *Login) generatePolicyDescription(r *http.Request, policy *iam_model.Pas hassymbol := l.renderer.LocalizeFromRequest(r, "Password.HasSymbol", nil) description += "
  • " + hassymbol + "
  • " } + confirmation := l.renderer.LocalizeFromRequest(r, "Password.Confirmation", nil) + description += "
  • " + confirmation + "
  • " description += "" return description, nil diff --git a/internal/ui/login/static/i18n/de.yaml b/internal/ui/login/static/i18n/de.yaml index 526c54d3fe..de7bc4f23f 100644 --- a/internal/ui/login/static/i18n/de.yaml +++ b/internal/ui/login/static/i18n/de.yaml @@ -28,6 +28,7 @@ Password: HasLowercase: Kleinbuchstaben HasNumber: Nummer HasSymbol: Symbol + Confirmation: Bestätigung stimmt überein UsernameChange: Title: Usernamen ändern diff --git a/internal/ui/login/static/i18n/en.yaml b/internal/ui/login/static/i18n/en.yaml index 7e73f9d924..5197876fe9 100644 --- a/internal/ui/login/static/i18n/en.yaml +++ b/internal/ui/login/static/i18n/en.yaml @@ -28,6 +28,7 @@ Password: HasLowercase: Lowercase letter HasNumber: Number HasSymbol: Symbol + Confirmation: Confirmation match UsernameChange: Title: Change Username @@ -52,7 +53,7 @@ InitPassword: NewPasswordConfirm: Confirm Password InitPasswordDone: - Title: Passwortd set + Title: Password set Description: Password successfully set InitUser: @@ -103,7 +104,7 @@ WebAuthN: Retry: Retry, create a new challenge or choose a different method. Passwordless: - Title: Login passwordles + Title: Login passwordless Description: Verify your token PasswordChange: @@ -111,7 +112,7 @@ PasswordChange: Description: Change your password. Enter your old and new password. OldPassword: Old Password NewPassword: New Password - NewPasswordConfirmation: Passwort confirmation + NewPasswordConfirmation: Password confirmation PasswordChangeDone: Title: Change Password @@ -251,7 +252,7 @@ Errors: Password: ConfirmationWrong: Passwordconfirmation is wrong Empty: Password is empty - Invalid: Passwort is invalid + Invalid: Password is invalid PasswordComplexityPolicy: NotFound: Password policy not found MinLength: Password is to short diff --git a/internal/ui/login/static/resources/scripts/change_password_check.js b/internal/ui/login/static/resources/scripts/change_password_check.js index 418dba8920..49a8fa7f1a 100644 --- a/internal/ui/login/static/resources/scripts/change_password_check.js +++ b/internal/ui/login/static/resources/scripts/change_password_check.js @@ -3,7 +3,7 @@ function CheckChangePwPolicy() { let pwNew = policyElement.value; let pwNewConfirmation = document.getElementById("change-password-confirmation").value; - if (ComplexityPolicyCheck(policyElement, pwNew) === false) { + if (ComplexityPolicyCheck(policyElement, pwNew, pwNewConfirmation) === false) { policyElement.setAttribute("color", "warn"); return false; } else { diff --git a/internal/ui/login/static/resources/scripts/init_password_check.js b/internal/ui/login/static/resources/scripts/init_password_check.js index 7ff3d5a181..d165afbb4f 100644 --- a/internal/ui/login/static/resources/scripts/init_password_check.js +++ b/internal/ui/login/static/resources/scripts/init_password_check.js @@ -3,7 +3,7 @@ function CheckInitPwPolicy() { let pwNew = policyElement.value; let pwNewConfirmation = document.getElementById("passwordconfirm").value; - if (ComplexityPolicyCheck(policyElement, pwNew) === false) { + if (ComplexityPolicyCheck(policyElement, pwNew, pwNewConfirmation) === false) { return false; } diff --git a/internal/ui/login/static/resources/scripts/password_policy_check.js b/internal/ui/login/static/resources/scripts/password_policy_check.js index 79785e8d8c..d36e5cac1a 100644 --- a/internal/ui/login/static/resources/scripts/password_policy_check.js +++ b/internal/ui/login/static/resources/scripts/password_policy_check.js @@ -1,4 +1,4 @@ -function ComplexityPolicyCheck(policyElement, pwNew) { +function ComplexityPolicyCheck(policyElement, pwNew, pwNewConfirmation) { let minLength = policyElement.dataset.minlength; let upperRegex = policyElement.dataset.hasUppercase; let lowerRegex = policyElement.dataset.hasLowercase; @@ -55,6 +55,14 @@ function ComplexityPolicyCheck(policyElement, pwNew) { valid = false; } } + let confirmation = document.getElementById('confirmation'); + if (pwNew === pwNewConfirmation && pwNewConfirmation !== "" ) { + ValidPolicy(confirmation); + valid = true; + } else { + InvalidPolicy(confirmation); + valid = false; + } return valid; } diff --git a/internal/ui/login/static/resources/scripts/register_check.js b/internal/ui/login/static/resources/scripts/register_check.js index c6ad5055b1..f5c10f2151 100644 --- a/internal/ui/login/static/resources/scripts/register_check.js +++ b/internal/ui/login/static/resources/scripts/register_check.js @@ -3,7 +3,7 @@ function CheckRegisterPwPolicy() { let pwNew = policyElement.value; let pwNewConfirmation = document.getElementById("register-password-confirmation").value; - if (ComplexityPolicyCheck(policyElement, pwNew) === false) { + if (ComplexityPolicyCheck(policyElement, pwNew, pwNewConfirmation) === false) { policyElement.setAttribute("color", "warn"); return false; } else {