From c950d6d27235e61fcdfee3acfc4e42653071b51e Mon Sep 17 00:00:00 2001 From: Fabi <38692350+fgerschwiler@users.noreply.github.com> Date: Thu, 8 Jul 2021 14:01:07 +0200 Subject: [PATCH] fix: return default language file, if requested lang does not exist for default login texts (#1988) * fix: return default language file, if requested lang doesnt exists * feat: read default translation file * feat: docs --- docs/docs/apis/proto/admin.md | 2 +- internal/admin/repository/eventsourcing/eventstore/iam.go | 4 ++++ .../management/repository/eventsourcing/eventstore/org.go | 4 ++++ proto/zitadel/admin.proto | 2 +- 4 files changed, 10 insertions(+), 2 deletions(-) diff --git a/docs/docs/apis/proto/admin.md b/docs/docs/apis/proto/admin.md index 0a1dc2edd9..e725114422 100644 --- a/docs/docs/apis/proto/admin.md +++ b/docs/docs/apis/proto/admin.md @@ -793,7 +793,7 @@ The Following Variables can be used: > **rpc** GetDefaultLoginTexts([GetDefaultLoginTextsRequest](#getdefaultlogintextsrequest)) [GetDefaultLoginTextsResponse](#getdefaultlogintextsresponse) -Returns the default custom texts for login ui +Returns the default custom texts for login ui (translation file) diff --git a/internal/admin/repository/eventsourcing/eventstore/iam.go b/internal/admin/repository/eventsourcing/eventstore/iam.go index 343fd014d1..4346cce232 100644 --- a/internal/admin/repository/eventsourcing/eventstore/iam.go +++ b/internal/admin/repository/eventsourcing/eventstore/iam.go @@ -5,6 +5,7 @@ import ( "fmt" "io/ioutil" "net/http" + "os" "strings" "sync" @@ -414,6 +415,9 @@ func (repo *IAMRepository) GetDefaultLoginTexts(ctx context.Context, lang string contents, ok := repo.TranslationFileContents[lang] if !ok { contents, err := repo.readTranslationFile(fmt.Sprintf("/i18n/%s.yaml", lang)) + if os.IsNotExist(err) { + contents, err = repo.readTranslationFile(fmt.Sprintf("/i18n/%s.yaml", repo.SystemDefaults.DefaultLanguage.String())) + } if err != nil { return nil, err } diff --git a/internal/management/repository/eventsourcing/eventstore/org.go b/internal/management/repository/eventsourcing/eventstore/org.go index 0287f7bf1f..fad36c15a5 100644 --- a/internal/management/repository/eventsourcing/eventstore/org.go +++ b/internal/management/repository/eventsourcing/eventstore/org.go @@ -6,6 +6,7 @@ import ( "fmt" "io/ioutil" "net/http" + "os" "strings" "sync" "time" @@ -629,6 +630,9 @@ func (repo *OrgRepository) GetDefaultLoginTexts(ctx context.Context, lang string contents, ok := repo.TranslationFileContents[lang] if !ok { contents, err := repo.readTranslationFile(fmt.Sprintf("/i18n/%s.yaml", lang)) + if os.IsNotExist(err) { + contents, err = repo.readTranslationFile(fmt.Sprintf("/i18n/%s.yaml", repo.SystemDefaults.DefaultLanguage.String())) + } if err != nil { return nil, err } diff --git a/proto/zitadel/admin.proto b/proto/zitadel/admin.proto index 23453c7b6c..d689aa4fbc 100644 --- a/proto/zitadel/admin.proto +++ b/proto/zitadel/admin.proto @@ -1641,7 +1641,7 @@ service AdminService { }; } - //Returns the default custom texts for login ui + //Returns the default custom texts for login ui (translation file) rpc GetDefaultLoginTexts(GetDefaultLoginTextsRequest) returns (GetDefaultLoginTextsResponse) { option (google.api.http) = { get: "/text/default/login/{language}";