diff options
author | Unknwon <u@gogs.io> | 2016-01-29 17:06:14 -0500 |
---|---|---|
committer | Unknwon <u@gogs.io> | 2016-01-29 17:06:14 -0500 |
commit | 112a7cab31df083983a664e252efcfca4ecb0d7a (patch) | |
tree | f5b450fbc40fb6a2073ba134851aef19c0f1e6aa /models | |
parent | ee814bf8d6c70c91bac19059ba37af0d91b2a1e0 (diff) | |
download | gitea-112a7cab31df083983a664e252efcfca4ecb0d7a.tar.gz gitea-112a7cab31df083983a664e252efcfca4ecb0d7a.zip |
#2497 incorrect error handle for team name
Diffstat (limited to 'models')
-rw-r--r-- | models/error.go | 23 | ||||
-rw-r--r-- | models/org.go | 25 |
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) } |