mirror of
https://github.com/andwati/zitadel.git
synced 2026-11-06 14:22:15 +00:00
feat: Custom text login (#1925)
* feat: default custom message text * feat: org custom message text * feat: org custom message text * feat: custom messages query side * feat: default messages * feat: message text user fields * feat: check for inactive user * feat: fix send password reset * feat: fix custom org text * feat: add variables to docs * feat: custom text tests * feat: fix notifications * feat: add custom text feature * feat: add custom text feature * feat: feature in custom message texts * feat: add custom text feature in frontend * feat: merge main * feat: feature tests * feat: change phone message in setup * fix: remove unused code, add event translation * fix: merge main and fix problems * fix: english translation file * fix: migration versions * fix: setup * fix: custom login text * feat: add all possible custom texts for login * feat: iam login texts * feat: org login texts * feat: protos * fix: custom text in admin api * fix: add success login text * fix: docs * fix: add custom login texts to management api * fix: add sub messages to custom login texts * fix: setup custom texts * feat: get org login texts * feat: get org login texts * feat: handler in adminapi * feat: handlers in auth and admin * feat: render login texts * feat: custom login text * feat: add all login text keys * feat: handle correct login texts * feat: custom login texts in command side * feat: custom login texts in command side * feat: fix yaml file * feat: merge master and add confirmation text * feat: fix html * feat: read default login texts * feat: get default text files * feat: get custom texts org * feat: tests * feat: change translator handling * fix translator from authReq * feat: change h1 on login screens * feat: add custom login text for remove * feat: add custom login text for remove * feat: cache translation files * feat: cache translation files * feat: zitadel user in env var * feat: add registration user description * feat: better func naming * feat: tests * feat: add mutex to read file * feat: add mutex to read file * fix mutex for accessing translation map * fix: translation key Co-authored-by: Livio Amstutz <[email protected]>
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"strconv"
|
||||
|
||||
"github.com/caos/zitadel/internal/auth_request/model"
|
||||
"github.com/caos/zitadel/internal/domain"
|
||||
"github.com/caos/zitadel/internal/errors"
|
||||
iam_model "github.com/caos/zitadel/internal/iam/model"
|
||||
)
|
||||
@@ -24,16 +25,16 @@ var (
|
||||
hasSymbol = regexp.MustCompile(SymbolRegex).MatchString
|
||||
)
|
||||
|
||||
func (l *Login) getPasswordComplexityPolicy(r *http.Request, orgID string) (*iam_model.PasswordComplexityPolicyView, string, error) {
|
||||
func (l *Login) getPasswordComplexityPolicy(r *http.Request, authReq *domain.AuthRequest, orgID string) (*iam_model.PasswordComplexityPolicyView, string, error) {
|
||||
policy, err := l.authRepo.GetMyPasswordComplexityPolicy(setContext(r.Context(), orgID))
|
||||
if err != nil {
|
||||
return nil, err.Error(), err
|
||||
}
|
||||
description, err := l.generatePolicyDescription(r, policy)
|
||||
description, err := l.generatePolicyDescription(r, authReq, policy)
|
||||
return policy, description, nil
|
||||
}
|
||||
|
||||
func (l *Login) getPasswordComplexityPolicyByUserID(r *http.Request, userID string) (*iam_model.PasswordComplexityPolicyView, string, error) {
|
||||
func (l *Login) getPasswordComplexityPolicyByUserID(r *http.Request, authReq *domain.AuthRequest, userID string) (*iam_model.PasswordComplexityPolicyView, string, error) {
|
||||
user, err := l.authRepo.UserByID(r.Context(), userID)
|
||||
if err != nil {
|
||||
return nil, "", nil
|
||||
@@ -42,31 +43,32 @@ func (l *Login) getPasswordComplexityPolicyByUserID(r *http.Request, userID stri
|
||||
if err != nil {
|
||||
return nil, err.Error(), err
|
||||
}
|
||||
description, err := l.generatePolicyDescription(r, policy)
|
||||
description, err := l.generatePolicyDescription(r, authReq, policy)
|
||||
return policy, description, nil
|
||||
}
|
||||
|
||||
func (l *Login) generatePolicyDescription(r *http.Request, policy *iam_model.PasswordComplexityPolicyView) (string, error) {
|
||||
func (l *Login) generatePolicyDescription(r *http.Request, authReq *domain.AuthRequest, policy *iam_model.PasswordComplexityPolicyView) (string, error) {
|
||||
description := "<ul class=\"lgn-no-dots lgn-policy\" id=\"passwordcomplexity\">"
|
||||
minLength := l.renderer.LocalizeFromRequest(r, "Password.MinLength", nil)
|
||||
translator := l.getTranslator(authReq)
|
||||
minLength := l.renderer.LocalizeFromRequest(translator, r, "Password.MinLength", nil)
|
||||
description += "<li id=\"minlength\" class=\"invalid\"><i class=\"lgn-icon-times-solid lgn-warn\"></i><span>" + minLength + " " + strconv.Itoa(int(policy.MinLength)) + "</span></li>"
|
||||
if policy.HasUppercase {
|
||||
uppercase := l.renderer.LocalizeFromRequest(r, "Password.HasUppercase", nil)
|
||||
uppercase := l.renderer.LocalizeFromRequest(translator, r, "Password.HasUppercase", nil)
|
||||
description += "<li id=\"uppercase\" class=\"invalid\"><i class=\"lgn-icon-times-solid lgn-warn\"></i><span>" + uppercase + "</span></li>"
|
||||
}
|
||||
if policy.HasLowercase {
|
||||
lowercase := l.renderer.LocalizeFromRequest(r, "Password.HasLowercase", nil)
|
||||
lowercase := l.renderer.LocalizeFromRequest(translator, r, "Password.HasLowercase", nil)
|
||||
description += "<li id=\"lowercase\" class=\"invalid\"><i class=\"lgn-icon-times-solid lgn-warn\"></i><span>" + lowercase + "</span></li>"
|
||||
}
|
||||
if policy.HasNumber {
|
||||
hasnumber := l.renderer.LocalizeFromRequest(r, "Password.HasNumber", nil)
|
||||
hasnumber := l.renderer.LocalizeFromRequest(translator, r, "Password.HasNumber", nil)
|
||||
description += "<li id=\"number\" class=\"invalid\"><i class=\"lgn-icon-times-solid lgn-warn\"></i><span>" + hasnumber + "</span></li>"
|
||||
}
|
||||
if policy.HasSymbol {
|
||||
hassymbol := l.renderer.LocalizeFromRequest(r, "Password.HasSymbol", nil)
|
||||
hassymbol := l.renderer.LocalizeFromRequest(translator, r, "Password.HasSymbol", nil)
|
||||
description += "<li id=\"symbol\" class=\"invalid\"><i class=\"lgn-icon-times-solid lgn-warn\"></i><span>" + hassymbol + "</span></li>"
|
||||
}
|
||||
confirmation := l.renderer.LocalizeFromRequest(r, "Password.Confirmation", nil)
|
||||
confirmation := l.renderer.LocalizeFromRequest(translator, r, "Password.Confirmation", nil)
|
||||
description += "<li id=\"confirmation\" class=\"invalid\"><i class=\"lgn-icon-times-solid lgn-warn\"></i><span>" + confirmation + "</span></li>"
|
||||
|
||||
description += "</ul>"
|
||||
|
||||
Reference in New Issue
Block a user