mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-12 16:47:32 +00:00
feat: reset custom texts on IAM (#3160)
* fix: only show factors with state ready * fix: get iam by id and clean up code * fix: get iam by id and clean up code * fix: remove unused code * feat: add message template remove func to admin api * fix: proto texts * fix: proto texts
This commit is contained in:
@@ -45,6 +45,20 @@ func (s *Server) SetDefaultInitMessageText(ctx context.Context, req *admin_pb.Se
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) ResetCustomInitMessageTextToDefault(ctx context.Context, req *admin_pb.ResetCustomInitMessageTextToDefaultRequest) (*admin_pb.ResetCustomInitMessageTextToDefaultResponse, error) {
|
||||
result, err := s.command.RemoveIAMMessageTexts(ctx, domain.InitCodeMessageType, language.Make(req.Language))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.ResetCustomInitMessageTextToDefaultResponse{
|
||||
Details: object.ChangeToDetailsPb(
|
||||
result.Sequence,
|
||||
result.EventDate,
|
||||
result.ResourceOwner,
|
||||
),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetDefaultPasswordResetMessageText(ctx context.Context, req *admin_pb.GetDefaultPasswordResetMessageTextRequest) (*admin_pb.GetDefaultPasswordResetMessageTextResponse, error) {
|
||||
msg, err := s.query.DefaultMessageTextByTypeAndLanguageFromFileSystem(domain.PasswordResetMessageType, req.Language)
|
||||
if err != nil {
|
||||
@@ -79,6 +93,20 @@ func (s *Server) SetDefaultPasswordResetMessageText(ctx context.Context, req *ad
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) ResetCustomPasswordResetMessageTextToDefault(ctx context.Context, req *admin_pb.ResetCustomPasswordResetMessageTextToDefaultRequest) (*admin_pb.ResetCustomPasswordResetMessageTextToDefaultResponse, error) {
|
||||
result, err := s.command.RemoveIAMMessageTexts(ctx, domain.PasswordResetMessageType, language.Make(req.Language))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.ResetCustomPasswordResetMessageTextToDefaultResponse{
|
||||
Details: object.ChangeToDetailsPb(
|
||||
result.Sequence,
|
||||
result.EventDate,
|
||||
result.ResourceOwner,
|
||||
),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetDefaultVerifyEmailMessageText(ctx context.Context, req *admin_pb.GetDefaultVerifyEmailMessageTextRequest) (*admin_pb.GetDefaultVerifyEmailMessageTextResponse, error) {
|
||||
msg, err := s.query.DefaultMessageTextByTypeAndLanguageFromFileSystem(domain.VerifyEmailMessageType, req.Language)
|
||||
if err != nil {
|
||||
@@ -113,6 +141,20 @@ func (s *Server) SetDefaultVerifyEmailMessageText(ctx context.Context, req *admi
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) ResetCustomVerifyEmailMessageTextToDefault(ctx context.Context, req *admin_pb.ResetCustomVerifyEmailMessageTextToDefaultRequest) (*admin_pb.ResetCustomVerifyEmailMessageTextToDefaultResponse, error) {
|
||||
result, err := s.command.RemoveIAMMessageTexts(ctx, domain.VerifyEmailMessageType, language.Make(req.Language))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.ResetCustomVerifyEmailMessageTextToDefaultResponse{
|
||||
Details: object.ChangeToDetailsPb(
|
||||
result.Sequence,
|
||||
result.EventDate,
|
||||
result.ResourceOwner,
|
||||
),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetDefaultVerifyPhoneMessageText(ctx context.Context, req *admin_pb.GetDefaultVerifyPhoneMessageTextRequest) (*admin_pb.GetDefaultVerifyPhoneMessageTextResponse, error) {
|
||||
msg, err := s.query.DefaultMessageTextByTypeAndLanguageFromFileSystem(domain.VerifyPhoneMessageType, req.Language)
|
||||
if err != nil {
|
||||
@@ -147,6 +189,20 @@ func (s *Server) SetDefaultVerifyPhoneMessageText(ctx context.Context, req *admi
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) ResetCustomVerifyPhoneMessageTextToDefault(ctx context.Context, req *admin_pb.ResetCustomVerifyPhoneMessageTextToDefaultRequest) (*admin_pb.ResetCustomVerifyPhoneMessageTextToDefaultResponse, error) {
|
||||
result, err := s.command.RemoveIAMMessageTexts(ctx, domain.VerifyPhoneMessageType, language.Make(req.Language))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.ResetCustomVerifyPhoneMessageTextToDefaultResponse{
|
||||
Details: object.ChangeToDetailsPb(
|
||||
result.Sequence,
|
||||
result.EventDate,
|
||||
result.ResourceOwner,
|
||||
),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetDefaultDomainClaimedMessageText(ctx context.Context, req *admin_pb.GetDefaultDomainClaimedMessageTextRequest) (*admin_pb.GetDefaultDomainClaimedMessageTextResponse, error) {
|
||||
msg, err := s.query.DefaultMessageTextByTypeAndLanguageFromFileSystem(domain.DomainClaimedMessageType, req.Language)
|
||||
if err != nil {
|
||||
@@ -181,6 +237,20 @@ func (s *Server) SetDefaultDomainClaimedMessageText(ctx context.Context, req *ad
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) ResetCustomDomainClaimedMessageTextToDefault(ctx context.Context, req *admin_pb.ResetCustomDomainClaimedMessageTextToDefaultRequest) (*admin_pb.ResetCustomDomainClaimedMessageTextToDefaultResponse, error) {
|
||||
result, err := s.command.RemoveIAMMessageTexts(ctx, domain.DomainClaimedMessageType, language.Make(req.Language))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.ResetCustomDomainClaimedMessageTextToDefaultResponse{
|
||||
Details: object.ChangeToDetailsPb(
|
||||
result.Sequence,
|
||||
result.EventDate,
|
||||
result.ResourceOwner,
|
||||
),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetDefaultPasswordlessRegistrationMessageText(ctx context.Context, req *admin_pb.GetDefaultPasswordlessRegistrationMessageTextRequest) (*admin_pb.GetDefaultPasswordlessRegistrationMessageTextResponse, error) {
|
||||
msg, err := s.query.DefaultMessageTextByTypeAndLanguageFromFileSystem(domain.PasswordlessRegistrationMessageType, req.Language)
|
||||
if err != nil {
|
||||
@@ -215,6 +285,20 @@ func (s *Server) SetDefaultPasswordlessRegistrationMessageText(ctx context.Conte
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) ResetCustomPasswordlessRegistrationMessageTextToDefault(ctx context.Context, req *admin_pb.ResetCustomPasswordlessRegistrationMessageTextToDefaultRequest) (*admin_pb.ResetCustomPasswordlessRegistrationMessageTextToDefaultResponse, error) {
|
||||
result, err := s.command.RemoveIAMMessageTexts(ctx, domain.PasswordlessRegistrationMessageType, language.Make(req.Language))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &admin_pb.ResetCustomPasswordlessRegistrationMessageTextToDefaultResponse{
|
||||
Details: object.ChangeToDetailsPb(
|
||||
result.Sequence,
|
||||
result.EventDate,
|
||||
result.ResourceOwner,
|
||||
),
|
||||
}, nil
|
||||
}
|
||||
|
||||
func (s *Server) GetDefaultLoginTexts(ctx context.Context, req *admin_pb.GetDefaultLoginTextsRequest) (*admin_pb.GetDefaultLoginTextsResponse, error) {
|
||||
msg, err := s.query.GetDefaultLoginTexts(ctx, req.Language)
|
||||
if err != nil {
|
||||
|
@@ -22,7 +22,7 @@ func ModelCustomMessageTextToPb(msg *query.MessageText) *text_pb.MessageCustomTe
|
||||
msg.ChangeDate,
|
||||
msg.AggregateID,
|
||||
),
|
||||
IsDefault: msg.AggregateID == domain.IAMID,
|
||||
IsDefault: msg.IsDefault,
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -79,6 +79,16 @@ func (wm *CustomMessageTextReadModel) Reduce() error {
|
||||
wm.FooterText = ""
|
||||
}
|
||||
case *policy.CustomTextTemplateRemovedEvent:
|
||||
if wm.Language != e.Language {
|
||||
continue
|
||||
}
|
||||
wm.Subject = ""
|
||||
wm.Title = ""
|
||||
wm.PreHeader = ""
|
||||
wm.Text = ""
|
||||
wm.Greeting = ""
|
||||
wm.ButtonText = ""
|
||||
wm.FooterText = ""
|
||||
wm.State = domain.PolicyStateRemoved
|
||||
}
|
||||
}
|
||||
|
@@ -36,6 +36,7 @@ func (c *Commands) setDefaultMessageText(ctx context.Context, iamAgg *eventstore
|
||||
if err != nil {
|
||||
return nil, nil, err
|
||||
}
|
||||
|
||||
events := make([]eventstore.Command, 0)
|
||||
if existingMessageText.Greeting != msg.Greeting {
|
||||
if msg.Greeting != "" {
|
||||
@@ -89,6 +90,29 @@ func (c *Commands) setDefaultMessageText(ctx context.Context, iamAgg *eventstore
|
||||
return events, existingMessageText, nil
|
||||
}
|
||||
|
||||
func (c *Commands) RemoveIAMMessageTexts(ctx context.Context, messageTextType string, lang language.Tag) (*domain.ObjectDetails, error) {
|
||||
if messageTextType == "" || lang == language.Und {
|
||||
return nil, caos_errs.ThrowInvalidArgument(nil, "IAM-fjw9b", "Errors.CustomMessageText.Invalid")
|
||||
}
|
||||
customText, err := c.defaultCustomMessageTextWriteModelByID(ctx, messageTextType, lang)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
if customText.State == domain.PolicyStateUnspecified || customText.State == domain.PolicyStateRemoved {
|
||||
return nil, caos_errs.ThrowNotFound(nil, "Org-fju90", "Errors.CustomMessageText.NotFound")
|
||||
}
|
||||
iamAgg := IAMAggregateFromWriteModel(&customText.WriteModel)
|
||||
pushedEvents, err := c.eventstore.Push(ctx, iam.NewCustomTextTemplateRemovedEvent(ctx, iamAgg, messageTextType, lang))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
err = AppendAndReduce(customText, pushedEvents...)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return writeModelToObjectDetails(&customText.WriteModel), nil
|
||||
}
|
||||
|
||||
func (c *Commands) defaultCustomMessageTextWriteModelByID(ctx context.Context, messageType string, lang language.Tag) (*IAMCustomMessageTextReadModel, error) {
|
||||
writeModel := NewIAMCustomMessageTextWriteModel(messageType, lang)
|
||||
err := c.eventstore.FilterToQueryReducer(ctx, writeModel)
|
||||
|
@@ -30,6 +30,10 @@ func (wm *IAMCustomMessageTextReadModel) AppendEvents(events ...eventstore.Event
|
||||
switch e := event.(type) {
|
||||
case *iam.CustomTextSetEvent:
|
||||
wm.CustomMessageTextReadModel.AppendEvents(&e.CustomTextSetEvent)
|
||||
case *iam.CustomTextRemovedEvent:
|
||||
wm.CustomMessageTextReadModel.AppendEvents(&e.CustomTextRemovedEvent)
|
||||
case *iam.CustomTextTemplateRemovedEvent:
|
||||
wm.CustomMessageTextReadModel.AppendEvents(&e.CustomTextTemplateRemovedEvent)
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -44,6 +48,6 @@ func (wm *IAMCustomMessageTextReadModel) Query() *eventstore.SearchQueryBuilder
|
||||
AddQuery().
|
||||
AggregateTypes(iam.AggregateType).
|
||||
AggregateIDs(wm.CustomMessageTextReadModel.AggregateID).
|
||||
EventTypes(iam.CustomTextSetEventType).
|
||||
EventTypes(iam.CustomTextSetEventType, iam.CustomTextRemovedEventType, iam.CustomTextTemplateRemovedEventType).
|
||||
Builder()
|
||||
}
|
||||
|
Reference in New Issue
Block a user