mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 03:37:34 +00:00
feat: Custom message files (#1992)
* feat: add get custom message text to admin api * feat: read custom message texts from files * feat: get languages in apis * feat: get languages in apis * feat: get languages in apis * feat: pr feedback * feat: docs * feat: merge main
This commit is contained in:
@@ -15,7 +15,17 @@ func (s *Server) GetDefaultInitMessageText(ctx context.Context, req *admin_pb.Ge
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetDefaultInitMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetCustomInitMessageText(ctx context.Context, req *admin_pb.GetCustomInitMessageTextRequest) (*admin_pb.GetCustomInitMessageTextResponse, error) {
|
||||
msg, err := s.iam.GetCustomMessageText(ctx, domain.InitCodeMessageType, req.Language)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetCustomInitMessageTextResponse{
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -39,7 +49,17 @@ func (s *Server) GetDefaultPasswordResetMessageText(ctx context.Context, req *ad
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetDefaultPasswordResetMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetCustomPasswordResetMessageText(ctx context.Context, req *admin_pb.GetCustomPasswordResetMessageTextRequest) (*admin_pb.GetCustomPasswordResetMessageTextResponse, error) {
|
||||
msg, err := s.iam.GetCustomMessageText(ctx, domain.PasswordResetMessageType, req.Language)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetCustomPasswordResetMessageTextResponse{
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -63,7 +83,17 @@ func (s *Server) GetDefaultVerifyEmailMessageText(ctx context.Context, req *admi
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetDefaultVerifyEmailMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetCustomVerifyEmailMessageText(ctx context.Context, req *admin_pb.GetCustomVerifyEmailMessageTextRequest) (*admin_pb.GetCustomVerifyEmailMessageTextResponse, error) {
|
||||
msg, err := s.iam.GetCustomMessageText(ctx, domain.VerifyEmailMessageType, req.Language)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetCustomVerifyEmailMessageTextResponse{
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -87,7 +117,17 @@ func (s *Server) GetDefaultVerifyPhoneMessageText(ctx context.Context, req *admi
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetDefaultVerifyPhoneMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetCustomVerifyPhoneMessageText(ctx context.Context, req *admin_pb.GetCustomVerifyPhoneMessageTextRequest) (*admin_pb.GetCustomVerifyPhoneMessageTextResponse, error) {
|
||||
msg, err := s.iam.GetCustomMessageText(ctx, domain.VerifyPhoneMessageType, req.Language)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetCustomVerifyPhoneMessageTextResponse{
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -111,7 +151,17 @@ func (s *Server) GetDefaultDomainClaimedMessageText(ctx context.Context, req *ad
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetDefaultDomainClaimedMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetCustomDomainClaimedMessageText(ctx context.Context, req *admin_pb.GetCustomDomainClaimedMessageTextRequest) (*admin_pb.GetCustomDomainClaimedMessageTextResponse, error) {
|
||||
msg, err := s.iam.GetCustomMessageText(ctx, domain.DomainClaimedMessageType, req.Language)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetCustomDomainClaimedMessageTextResponse{
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
16
internal/api/grpc/admin/language.go
Normal file
16
internal/api/grpc/admin/language.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package admin
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/caos/zitadel/internal/api/grpc/text"
|
||||
admin_pb "github.com/caos/zitadel/pkg/grpc/admin"
|
||||
)
|
||||
|
||||
func (s *Server) GetSupportedLanguages(ctx context.Context, req *admin_pb.GetSupportedLanguagesRequest) (*admin_pb.GetSupportedLanguagesResponse, error) {
|
||||
langs, err := s.iam.Languages(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.GetSupportedLanguagesResponse{Languages: text.LanguageTagsToStrings(langs)}, nil
|
||||
}
|
16
internal/api/grpc/auth/language.go
Normal file
16
internal/api/grpc/auth/language.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package auth
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/caos/zitadel/internal/api/grpc/text"
|
||||
auth_pb "github.com/caos/zitadel/pkg/grpc/auth"
|
||||
)
|
||||
|
||||
func (s *Server) GetSupportedLanguages(ctx context.Context, req *auth_pb.GetSupportedLanguagesRequest) (*auth_pb.GetSupportedLanguagesResponse, error) {
|
||||
langs, err := s.repo.Languages(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &auth_pb.GetSupportedLanguagesResponse{Languages: text.LanguageTagsToStrings(langs)}, nil
|
||||
}
|
@@ -18,7 +18,7 @@ func (s *Server) GetCustomInitMessageText(ctx context.Context, req *mgmt_pb.GetC
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetCustomInitMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -28,7 +28,7 @@ func (s *Server) GetDefaultInitMessageText(ctx context.Context, req *mgmt_pb.Get
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetDefaultInitMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -66,7 +66,7 @@ func (s *Server) GetCustomPasswordResetMessageText(ctx context.Context, req *mgm
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetCustomPasswordResetMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -76,7 +76,7 @@ func (s *Server) GetDefaultPasswordResetMessageText(ctx context.Context, req *mg
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetDefaultPasswordResetMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -114,7 +114,7 @@ func (s *Server) GetCustomVerifyEmailMessageText(ctx context.Context, req *mgmt_
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetCustomVerifyEmailMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -124,7 +124,7 @@ func (s *Server) GetDefaultVerifyEmailMessageText(ctx context.Context, req *mgmt
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetDefaultVerifyEmailMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -162,7 +162,7 @@ func (s *Server) GetCustomVerifyPhoneMessageText(ctx context.Context, req *mgmt_
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetCustomVerifyPhoneMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -172,7 +172,7 @@ func (s *Server) GetDefaultVerifyPhoneMessageText(ctx context.Context, req *mgmt
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetDefaultVerifyPhoneMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -210,7 +210,7 @@ func (s *Server) GetCustomDomainClaimedMessageText(ctx context.Context, req *mgm
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetCustomDomainClaimedMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
@@ -220,7 +220,7 @@ func (s *Server) GetDefaultDomainClaimedMessageText(ctx context.Context, req *mg
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetDefaultDomainClaimedMessageTextResponse{
|
||||
CustomText: text_grpc.ModelCustomMsgTextToPb(msg),
|
||||
CustomText: text_grpc.DomainCustomMsgTextToPb(msg),
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
16
internal/api/grpc/management/language.go
Normal file
16
internal/api/grpc/management/language.go
Normal file
@@ -0,0 +1,16 @@
|
||||
package management
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
||||
"github.com/caos/zitadel/internal/api/grpc/text"
|
||||
mgmt_pb "github.com/caos/zitadel/pkg/grpc/management"
|
||||
)
|
||||
|
||||
func (s *Server) GetSupportedLanguages(ctx context.Context, req *mgmt_pb.GetSupportedLanguagesRequest) (*mgmt_pb.GetSupportedLanguagesResponse, error) {
|
||||
langs, err := s.org.Languages(ctx)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &mgmt_pb.GetSupportedLanguagesResponse{Languages: text.LanguageTagsToStrings(langs)}, nil
|
||||
}
|
@@ -43,7 +43,7 @@ func AddHumanUserRequestToDomain(req *mgmt_pb.AddHumanUserRequest) *domain.Human
|
||||
Username: req.UserName,
|
||||
}
|
||||
preferredLanguage, err := language.Parse(req.Profile.PreferredLanguage)
|
||||
logging.Log("MANAG-3GUFJ").OnError(err).Debug("language malformed")
|
||||
logging.Log("MANAG-M029f").OnError(err).Debug("language malformed")
|
||||
h.Profile = &domain.Profile{
|
||||
FirstName: req.Profile.FirstName,
|
||||
LastName: req.Profile.LastName,
|
||||
|
@@ -3,11 +3,10 @@ package text
|
||||
import (
|
||||
"github.com/caos/zitadel/internal/api/grpc/object"
|
||||
"github.com/caos/zitadel/internal/domain"
|
||||
"github.com/caos/zitadel/internal/iam/model"
|
||||
text_pb "github.com/caos/zitadel/pkg/grpc/text"
|
||||
)
|
||||
|
||||
func ModelCustomMsgTextToPb(msg *model.MessageTextView) *text_pb.MessageCustomText {
|
||||
func DomainCustomMsgTextToPb(msg *domain.CustomMessageText) *text_pb.MessageCustomText {
|
||||
return &text_pb.MessageCustomText{
|
||||
Title: msg.Title,
|
||||
PreHeader: msg.PreHeader,
|
||||
|
13
internal/api/grpc/text/language.go
Normal file
13
internal/api/grpc/text/language.go
Normal file
@@ -0,0 +1,13 @@
|
||||
package text
|
||||
|
||||
import (
|
||||
"golang.org/x/text/language"
|
||||
)
|
||||
|
||||
func LanguageTagsToStrings(langs []language.Tag) []string {
|
||||
result := make([]string, len(langs))
|
||||
for i, lang := range langs {
|
||||
result[i] = lang.String()
|
||||
}
|
||||
return result
|
||||
}
|
Reference in New Issue
Block a user