fix(email webhook): check if user already has an email

if user already has an email -> send EmailCreate Event
if user has no email -> send UserCreate Event
This commit is contained in:
Stefan Jacobi
2024-01-30 11:18:59 +01:00
parent e62becbd3c
commit 03bfef9d19
2 changed files with 19 additions and 2 deletions

View File

@ -141,7 +141,16 @@ func (h *EmailHandler) Create(c echo.Context) error {
} }
if !h.cfg.Emails.RequireVerification { if !h.cfg.Emails.RequireVerification {
utils.NotifyUserChange(c, tx, h.persister, events.EmailCreate, userId) var evt events.Event
if len(user.Emails) >= 1 {
evt = events.EmailCreate
} else {
evt = events.UserCreate
}
utils.NotifyUserChange(c, tx, h.persister, evt, userId)
} }
return c.JSON(http.StatusOK, email) return c.JSON(http.StatusOK, email)

View File

@ -384,7 +384,15 @@ func (h *PasscodeHandler) Finish(c echo.Context) error {
// notify about email verification result. Last step to prevent a trigger and rollback scenario // notify about email verification result. Last step to prevent a trigger and rollback scenario
if h.cfg.Emails.RequireVerification && wasUnverified { if h.cfg.Emails.RequireVerification && wasUnverified {
utils.NotifyUserChange(c, tx, h.persister, events.EmailCreate, user.ID) var evt events.Event
if len(user.Emails) >= 1 {
evt = events.EmailCreate
} else {
evt = events.UserCreate
}
utils.NotifyUserChange(c, tx, h.persister, evt, user.ID)
} }
return c.JSON(http.StatusOK, dto.PasscodeReturn{ return c.JSON(http.StatusOK, dto.PasscodeReturn{