From b0bf4cc1cb6e68968fa4a6076f57045a268026e9 Mon Sep 17 00:00:00 2001 From: Unknwon Date: Sun, 13 Sep 2015 11:26:25 -0400 Subject: [PATCH] fix #1632 and #1606 --- routers/admin/users.go | 2 +- routers/repo/issue.go | 26 ++++++++++++++------------ 2 files changed, 15 insertions(+), 13 deletions(-) diff --git a/routers/admin/users.go b/routers/admin/users.go index 036424f1406e..b04cfc13bd7f 100644 --- a/routers/admin/users.go +++ b/routers/admin/users.go @@ -186,7 +186,6 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { if u.LoginSource != loginSource { u.LoginSource = loginSource u.LoginType = loginType - u.LoginName = form.LoginName } } @@ -196,6 +195,7 @@ func EditUserPost(ctx *middleware.Context, form auth.AdminEditUserForm) { u.EncodePasswd() } + u.LoginName = form.LoginName u.FullName = form.FullName u.Email = form.Email u.Website = form.Website diff --git a/routers/repo/issue.go b/routers/repo/issue.go index e242dd0e5fda..f9a560827aa5 100644 --- a/routers/repo/issue.go +++ b/routers/repo/issue.go @@ -759,6 +759,20 @@ func NewComment(ctx *middleware.Context, form auth.CreateCommentForm) { return } + defer func() { + // Check if issue owner/poster changes the status of issue. + if (ctx.Repo.IsOwner() || (ctx.IsSigned && issue.IsPoster(ctx.User.Id))) && + (form.Status == "reopen" || form.Status == "close") && + !(issue.IsPull && issue.HasMerged) { + issue.Repo = ctx.Repo.Repository + if err = issue.ChangeStatus(ctx.User, form.Status == "close"); err != nil { + log.Error(4, "ChangeStatus: %v", err) + } else { + log.Trace("Issue[%d] status changed: %v", issue.ID, !issue.IsClosed) + } + } + }() + // Fix #321: Allow empty comments, as long as we have attachments. if len(form.Content) == 0 && len(attachments) == 0 { ctx.Redirect(fmt.Sprintf("%s/issues/%d", ctx.Repo.RepoLink, issue.Index)) @@ -810,18 +824,6 @@ func NewComment(ctx *middleware.Context, form auth.CreateCommentForm) { } log.Trace("Comment created: %d/%d/%d", ctx.Repo.Repository.ID, issue.ID, comment.ID) - // Check if issue owner/poster changes the status of issue. - if (ctx.Repo.IsOwner() || (ctx.IsSigned && issue.IsPoster(ctx.User.Id))) && - (form.Status == "reopen" || form.Status == "close") && - !(issue.IsPull && issue.HasMerged) { - issue.Repo = ctx.Repo.Repository - if err = issue.ChangeStatus(ctx.User, form.Status == "close"); err != nil { - ctx.Handle(500, "ChangeStatus", err) - return - } - log.Trace("Issue[%d] status changed: %v", issue.ID, !issue.IsClosed) - } - ctx.Redirect(fmt.Sprintf("%s/issues/%d#%s", ctx.Repo.RepoLink, issue.Index, comment.HashTag())) }