summaryrefslogtreecommitdiffstats
path: root/models
diff options
context:
space:
mode:
authorUnknwon <u@gogs.io>2016-01-29 17:06:14 -0500
committerUnknwon <u@gogs.io>2016-01-29 17:06:14 -0500
commit112a7cab31df083983a664e252efcfca4ecb0d7a (patch)
treef5b450fbc40fb6a2073ba134851aef19c0f1e6aa /models
parentee814bf8d6c70c91bac19059ba37af0d91b2a1e0 (diff)
downloadgitea-112a7cab31df083983a664e252efcfca4ecb0d7a.tar.gz
gitea-112a7cab31df083983a664e252efcfca4ecb0d7a.zip
#2497 incorrect error handle for team name
Diffstat (limited to 'models')
-rw-r--r--models/error.go23
-rw-r--r--models/org.go25
2 files changed, 37 insertions, 11 deletions
diff --git a/models/error.go b/models/error.go
index 83a24e7f4e..8e2048ded9 100644
--- a/models/error.go
+++ b/models/error.go
@@ -559,5 +559,26 @@ func IsErrAuthenticationNotExist(err error) bool {
}
func (err ErrAuthenticationNotExist) Error() string {
- return fmt.Sprintf("Authentication does not exist [id: %d]", err.ID)
+ return fmt.Sprintf("authentication does not exist [id: %d]", err.ID)
+}
+
+// ___________
+// \__ ___/___ _____ _____
+// | |_/ __ \\__ \ / \
+// | |\ ___/ / __ \| Y Y \
+// |____| \___ >____ /__|_| /
+// \/ \/ \/
+
+type ErrTeamAlreadyExist struct {
+ OrgID int64
+ Name string
+}
+
+func IsErrTeamAlreadyExist(err error) bool {
+ _, ok := err.(ErrTeamAlreadyExist)
+ return ok
+}
+
+func (err ErrTeamAlreadyExist) Error() string {
+ return fmt.Sprintf("team already exists [org_id: %d, name: %s]", err.OrgID, err.Name)
}
diff --git a/models/org.go b/models/org.go
index fa26b59e66..b8836c349f 100644
--- a/models/org.go
+++ b/models/org.go
@@ -14,10 +14,8 @@ import (
)
var (
- ErrOrgNotExist = errors.New("Organization does not exist")
- ErrTeamAlreadyExist = errors.New("Team already exist")
- ErrTeamNotExist = errors.New("Team does not exist")
- ErrTeamNameIllegal = errors.New("Team name contains illegal characters")
+ ErrOrgNotExist = errors.New("Organization does not exist")
+ ErrTeamNotExist = errors.New("Team does not exist")
)
// IsOwnedBy returns true if given user is in the owner team.
@@ -598,9 +596,9 @@ func (t *Team) RemoveRepository(repoID int64) error {
// NewTeam creates a record of new team.
// It's caller's responsibility to assign organization ID.
-func NewTeam(t *Team) (err error) {
- if err = IsUsableName(t.Name); err != nil {
- return err
+func NewTeam(t *Team) error {
+ if len(t.Name) == 0 {
+ return errors.New("empty team name")
}
has, err := x.Id(t.OrgID).Get(new(User))
@@ -615,7 +613,7 @@ func NewTeam(t *Team) (err error) {
if err != nil {
return err
} else if has {
- return ErrTeamAlreadyExist
+ return ErrTeamAlreadyExist{t.OrgID, t.LowerName}
}
sess := x.NewSession()
@@ -674,8 +672,8 @@ func GetTeamById(teamId int64) (*Team, error) {
// UpdateTeam updates information of team.
func UpdateTeam(t *Team, authChanged bool) (err error) {
- if err = IsUsableName(t.Name); err != nil {
- return err
+ if len(t.Name) == 0 {
+ return errors.New("empty team name")
}
if len(t.Description) > 255 {
@@ -689,6 +687,13 @@ func UpdateTeam(t *Team, authChanged bool) (err error) {
}
t.LowerName = strings.ToLower(t.Name)
+ has, err := x.Where("org_id=?", t.OrgID).And("lower_name=?", t.LowerName).And("id!=?", t.ID).Get(new(Team))
+ if err != nil {
+ return err
+ } else if has {
+ return ErrTeamAlreadyExist{t.OrgID, t.LowerName}
+ }
+
if _, err = sess.Id(t.ID).AllCols().Update(t); err != nil {
return fmt.Errorf("update: %v", err)
}