diff options
Diffstat (limited to 'models')
-rw-r--r-- | models/issue.go | 20 | ||||
-rw-r--r-- | models/issue_comment.go | 2 | ||||
-rw-r--r-- | models/user.go | 16 |
3 files changed, 18 insertions, 20 deletions
diff --git a/models/issue.go b/models/issue.go index 0cda7150..7f1889b3 100644 --- a/models/issue.go +++ b/models/issue.go @@ -298,16 +298,18 @@ func newIssue(e *xorm.Session, repo *Repository, issue *Issue, labelIDs []int64, return err } - // During the session, SQLite3 dirver cannot handle retrieve objects after update something. - // So we have to get all needed labels first. - labels := make([]*Label, 0, len(labelIDs)) - if err = e.In("id", labelIDs).Find(&labels); err != nil { - return fmt.Errorf("find all labels: %v", err) - } + if len(labelIDs) > 0 { + // During the session, SQLite3 dirver cannot handle retrieve objects after update something. + // So we have to get all needed labels first. + labels := make([]*Label, 0, len(labelIDs)) + if err = e.In("id", labelIDs).Find(&labels); err != nil { + return fmt.Errorf("find all labels: %v", err) + } - for _, label := range labels { - if err = issue.addLabel(e, label); err != nil { - return fmt.Errorf("addLabel: %v", err) + for _, label := range labels { + if err = issue.addLabel(e, label); err != nil { + return fmt.Errorf("addLabel: %v", err) + } } } diff --git a/models/issue_comment.go b/models/issue_comment.go index e1230d81..e63b3908 100644 --- a/models/issue_comment.go +++ b/models/issue_comment.go @@ -39,7 +39,7 @@ type CommentTag int const ( COMMENT_TAG_NONE CommentTag = iota COMMENT_TAG_POSTER - COMMENT_TAG_ADMIN + COMMENT_TAG_WRITER COMMENT_TAG_OWNER ) diff --git a/models/user.go b/models/user.go index 3c87c4a6..bd4cace4 100644 --- a/models/user.go +++ b/models/user.go @@ -348,19 +348,15 @@ func (u *User) UploadAvatar(data []byte) error { // IsAdminOfRepo returns true if user has admin or higher access of repository. func (u *User) IsAdminOfRepo(repo *Repository) bool { - if repo.MustOwner().IsOrganization() { - has, err := HasAccess(u, repo, ACCESS_MODE_ADMIN) - if err != nil { - log.Error(3, "HasAccess: %v", err) - } - return has + has, err := HasAccess(u, repo, ACCESS_MODE_ADMIN) + if err != nil { + log.Error(3, "HasAccess: %v", err) } - - return repo.IsOwnedBy(u.Id) + return has } -// CanWriteTo returns true if user has write access to given repository. -func (u *User) CanWriteTo(repo *Repository) bool { +// IsWriterOfRepo returns true if user has write access to given repository. +func (u *User) IsWriterOfRepo(repo *Repository) bool { has, err := HasAccess(u, repo, ACCESS_MODE_WRITE) if err != nil { log.Error(3, "HasAccess: %v", err) |