api4/user: convey redirect link through email verification (#15052)

Этот коммит содержится в:
Ibrahim Serdar Acikgoz
2020-07-21 17:09:49 +03:00
коммит произвёл GitHub
родитель 918fc1d45c
Коммит 263e5e8945
6 изменённых файлов: 38 добавлений и 30 удалений

Просмотреть файл

@@ -98,6 +98,7 @@ func createUser(c *Context, w http.ResponseWriter, r *http.Request) {
tokenId := r.URL.Query().Get("t")
inviteId := r.URL.Query().Get("iid")
redirect := r.URL.Query().Get("r")
auditRec := c.MakeAuditRecord("createUser", audit.Fail)
defer c.LogAuditRec(auditRec)
@@ -135,12 +136,12 @@ func createUser(c *Context, w http.ResponseWriter, r *http.Request) {
}
ruser, err = c.App.CreateUserWithToken(user, token)
} else if len(inviteId) > 0 {
ruser, err = c.App.CreateUserWithInviteId(user, inviteId)
ruser, err = c.App.CreateUserWithInviteId(user, inviteId, redirect)
} else if c.IsSystemAdmin() {
ruser, err = c.App.CreateUserAsAdmin(user)
ruser, err = c.App.CreateUserAsAdmin(user, redirect)
auditRec.AddMeta("admin", true)
} else {
ruser, err = c.App.CreateUserFromSignup(user)
ruser, err = c.App.CreateUserFromSignup(user, redirect)
}
if err != nil {
@@ -1952,6 +1953,7 @@ func sendVerificationEmail(c *Context, w http.ResponseWriter, r *http.Request) {
c.SetInvalidParam("email")
return
}
redirect := r.URL.Query().Get("r")
auditRec := c.MakeAuditRecord("sendVerificationEmail", audit.Fail)
defer c.LogAuditRec(auditRec)
@@ -1965,7 +1967,7 @@ func sendVerificationEmail(c *Context, w http.ResponseWriter, r *http.Request) {
}
auditRec.AddMeta("user", user)
if err = c.App.SendEmailVerification(user, user.Email); err != nil {
if err = c.App.SendEmailVerification(user, user.Email, redirect); err != nil {
// Don't want to leak whether the email is valid or not
mlog.Error(err.Error())
ReturnStatusOK(w)