fix(notify): fail if required fields are empty (#3831)

This commit is contained in:
Silvan 2022-06-15 18:22:48 +02:00 committed by GitHub
parent 7e35775681
commit d1bc4a9bc5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 36 additions and 1 deletions

View File

@ -191,6 +191,12 @@ func (n *Notification) handleInitUserCode(event *models.Event) (err error) {
return err
}
if user.Sequence < event.Sequence {
if err := n.verifyLatestUser(ctx, user); err != nil {
return err
}
}
translator, err := n.getTranslatorWithOrgTexts(ctx, user.ResourceOwner, domain.InitCodeMessageType)
if err != nil {
return err
@ -233,6 +239,11 @@ func (n *Notification) handlePasswordCode(event *models.Event) (err error) {
if err != nil {
return err
}
if user.Sequence < event.Sequence {
if err := n.verifyLatestUser(ctx, user); err != nil {
return err
}
}
translator, err := n.getTranslatorWithOrgTexts(ctx, user.ResourceOwner, domain.PasswordResetMessageType)
if err != nil {
@ -276,6 +287,11 @@ func (n *Notification) handleEmailVerificationCode(event *models.Event) (err err
if err != nil {
return err
}
if user.Sequence < event.Sequence {
if err = n.verifyLatestUser(ctx, user); err != nil {
return err
}
}
translator, err := n.getTranslatorWithOrgTexts(ctx, user.ResourceOwner, domain.VerifyEmailMessageType)
if err != nil {
@ -309,6 +325,12 @@ func (n *Notification) handlePhoneVerificationCode(event *models.Event) (err err
if err != nil {
return err
}
if user.Sequence < event.Sequence {
if err := n.verifyLatestUser(ctx, user); err != nil {
return err
}
}
translator, err := n.getTranslatorWithOrgTexts(ctx, user.ResourceOwner, domain.VerifyPhoneMessageType)
if err != nil {
return err
@ -582,3 +604,16 @@ func (n *Notification) origin(ctx context.Context) (string, error) {
}
return http_utils.BuildHTTP(domains.Domains[0].Domain, n.externalPort, n.externalSecure), nil
}
func (n *Notification) verifyLatestUser(ctx context.Context, user *model.NotifyUser) error {
events, err := n.getUserEvents(ctx, user.ID, user.InstanceID, user.Sequence)
if err != nil {
return err
}
for _, event := range events {
if err = user.AppendEvent(event); err != nil {
return err
}
}
return nil
}

View File

@ -120,7 +120,7 @@ func (u *NotifyUser) ProcessUser(event *es_models.Event) (err error) {
user.HumanRegisteredType,
user.HumanAddedType,
user.MachineAddedEventType:
err := notifyUser.AppendEvent(event)
err = notifyUser.AppendEvent(event)
if err != nil {
return err
}