From 55a4d46f5d2aa114752ac3880d0d75ed288fea67 Mon Sep 17 00:00:00 2001
From: LefsFlare <LefsFlarey@users.noreply.github.com>
Date: Sun, 6 Nov 2016 17:07:03 +0800
Subject: [PATCH] Adds checking of reserved keywords against team names (#22)

---
 models/org_team.go | 18 +++++++++++++++++-
 1 file changed, 17 insertions(+), 1 deletion(-)

diff --git a/models/org_team.go b/models/org_team.go
index 6a6754cc99..07a90e08f1 100644
--- a/models/org_team.go
+++ b/models/org_team.go
@@ -194,13 +194,29 @@ func (t *Team) RemoveRepository(repoID int64) error {
 	return sess.Commit()
 }
 
+func IsUsableTeamName(name string) (err error) {
+	var reservedTeamNames = []string{"new"}
+
+	for i := range reservedTeamNames {
+		if name == reservedTeamNames[i] {
+			return ErrNameReserved{name}
+		}
+	}
+
+	return nil
+}
+
 // NewTeam creates a record of new team.
 // It's caller's responsibility to assign organization ID.
-func NewTeam(t *Team) error {
+func NewTeam(t *Team) (err error) {
 	if len(t.Name) == 0 {
 		return errors.New("empty team name")
 	}
 
+	if err = IsUsableTeamName(t.Name); err != nil {
+		return err
+	}
+
 	has, err := x.Id(t.OrgID).Get(new(User))
 	if err != nil {
 		return err