mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-11-04 12:53:43 +01:00 
			
		
		
		
	Fix repository owner can assign self
This commit is contained in:
		
							parent
							
								
									4042d1f0c3
								
							
						
					
					
						commit
						f3c3258921
					
				@ -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)
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user