瀏覽代碼

Fix repository owner can assign self

Unknwon 8 年之前
父節點
當前提交
f3c3258921
共有 1 個文件被更改,包括 10 次插入11 次删除
  1. 10 11
      models/repo.go

+ 10 - 11
models/repo.go

@@ -325,20 +325,19 @@ func (repo *Repository) getAssignees(e Engine) (_ []*User, err error) {
 	if err = e.Where("repo_id = ? AND mode >= ?", repo.ID, ACCESS_MODE_WRITE).Find(&accesses); err != nil {
 		return nil, err
 	}
-	if len(accesses) == 0 {
-		return []*User{}, nil
-	}
-
-	userIDs := make([]int64, len(accesses))
-	for i := 0; i < len(accesses); i++ {
-		userIDs[i] = accesses[i].UserID
-	}
 
 	// Leave a seat for owner itself to append later, but if owner is an organization
 	// and just waste 1 unit is cheaper than re-allocate memory once.
-	users := make([]*User, 0, len(userIDs)+1)
-	if err = e.In("id", userIDs).Find(&users); err != nil {
-		return nil, err
+	users := make([]*User, 0, len(accesses)+1)
+	if len(accesses) > 0 {
+		userIDs := make([]int64, len(accesses))
+		for i := 0; i < len(accesses); i++ {
+			userIDs[i] = accesses[i].UserID
+		}
+
+		if err = e.In("id", userIDs).Find(&users); err != nil {
+			return nil, err
+		}
 	}
 	if !repo.Owner.IsOrganization() {
 		users = append(users, repo.Owner)