From 674c5c37be53665db8ce549ece51c24129e695d9 Mon Sep 17 00:00:00 2001
From: Martin Hartkorn <github@hartkorn.net>
Date: Wed, 27 Jan 2016 22:45:03 +0100
Subject: [PATCH] Change user name in Pull Requests

---
 models/pull.go | 8 ++++++++
 models/user.go | 5 +++++
 2 files changed, 13 insertions(+)

diff --git a/models/pull.go b/models/pull.go
index 8497285e16..2fe7d1fe37 100644
--- a/models/pull.go
+++ b/models/pull.go
@@ -525,6 +525,14 @@ func AddTestPullRequestTask(repoID int64, branch string) {
 	}
 }
 
+func ChangeUsernameInPullRequests(oldUserName, newUserName string) (error) {
+	pr := PullRequest{
+		HeadUserName : newUserName,
+	}
+	_, err := x.Cols("head_user_name").Where("head_user_name = ?", oldUserName).Update(pr)
+	return err
+}
+
 // checkAndUpdateStatus checks if pull request is possible to levaing checking status,
 // and set to be either conflict or mergeable.
 func (pr *PullRequest) checkAndUpdateStatus() {
diff --git a/models/user.go b/models/user.go
index 5c43a23a2f..5d8075dbd1 100644
--- a/models/user.go
+++ b/models/user.go
@@ -599,6 +599,11 @@ func ChangeUserName(u *User, newUserName string) (err error) {
 		return ErrUserAlreadyExist{newUserName}
 	}
 
+	err = ChangeUsernameInPullRequests(u.LowerName, newUserName)
+	if err != nil {
+		return err
+	}
+
 	return os.Rename(UserPath(u.LowerName), UserPath(newUserName))
 }