mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 08:30:25 +08:00 
			
		
		
		
	Fix repository owner can assign self
This commit is contained in:
		@@ -325,21 +325,20 @@ 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
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	// 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(accesses)+1)
 | 
			
		||||
	if len(accesses) > 0 {
 | 
			
		||||
		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
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
	if !repo.Owner.IsOrganization() {
 | 
			
		||||
		users = append(users, repo.Owner)
 | 
			
		||||
	}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user