mirror of
				https://github.com/go-gitea/gitea
				synced 2025-11-03 21:08:25 +00:00 
			
		
		
		
	Properly filter issue list given no assignees filter (#31522)
Quick fix #31520. This issue is related to #31337.
This commit is contained in:
		@@ -44,6 +44,12 @@ func ToSearchOptions(keyword string, opts *issues_model.IssuesOptions) *SearchOp
 | 
				
			|||||||
		searchOpt.ProjectID = optional.Some[int64](0) // Those issues with no project(projectid==0)
 | 
							searchOpt.ProjectID = optional.Some[int64](0) // Those issues with no project(projectid==0)
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						if opts.AssigneeID > 0 {
 | 
				
			||||||
 | 
							searchOpt.AssigneeID = optional.Some(opts.AssigneeID)
 | 
				
			||||||
 | 
						} else if opts.AssigneeID == -1 { // FIXME: this is inconsistent from other places
 | 
				
			||||||
 | 
							searchOpt.AssigneeID = optional.Some[int64](0)
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// See the comment of issues_model.SearchOptions for the reason why we need to convert
 | 
						// See the comment of issues_model.SearchOptions for the reason why we need to convert
 | 
				
			||||||
	convertID := func(id int64) optional.Option[int64] {
 | 
						convertID := func(id int64) optional.Option[int64] {
 | 
				
			||||||
		if id > 0 {
 | 
							if id > 0 {
 | 
				
			||||||
@@ -57,7 +63,6 @@ func ToSearchOptions(keyword string, opts *issues_model.IssuesOptions) *SearchOp
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
	searchOpt.ProjectColumnID = convertID(opts.ProjectColumnID)
 | 
						searchOpt.ProjectColumnID = convertID(opts.ProjectColumnID)
 | 
				
			||||||
	searchOpt.PosterID = convertID(opts.PosterID)
 | 
						searchOpt.PosterID = convertID(opts.PosterID)
 | 
				
			||||||
	searchOpt.AssigneeID = convertID(opts.AssigneeID)
 | 
					 | 
				
			||||||
	searchOpt.MentionID = convertID(opts.MentionedID)
 | 
						searchOpt.MentionID = convertID(opts.MentionedID)
 | 
				
			||||||
	searchOpt.ReviewedID = convertID(opts.ReviewedID)
 | 
						searchOpt.ReviewedID = convertID(opts.ReviewedID)
 | 
				
			||||||
	searchOpt.ReviewRequestedID = convertID(opts.ReviewRequestedID)
 | 
						searchOpt.ReviewRequestedID = convertID(opts.ReviewRequestedID)
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -8,6 +8,7 @@ import (
 | 
				
			|||||||
	"testing"
 | 
						"testing"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	"code.gitea.io/gitea/models/db"
 | 
						"code.gitea.io/gitea/models/db"
 | 
				
			||||||
 | 
						"code.gitea.io/gitea/models/issues"
 | 
				
			||||||
	"code.gitea.io/gitea/models/unittest"
 | 
						"code.gitea.io/gitea/models/unittest"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/indexer/issues/internal"
 | 
						"code.gitea.io/gitea/modules/indexer/issues/internal"
 | 
				
			||||||
	"code.gitea.io/gitea/modules/optional"
 | 
						"code.gitea.io/gitea/modules/optional"
 | 
				
			||||||
@@ -188,6 +189,11 @@ func searchIssueByID(t *testing.T) {
 | 
				
			|||||||
			},
 | 
								},
 | 
				
			||||||
			expectedIDs: []int64{6, 1},
 | 
								expectedIDs: []int64{6, 1},
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
 | 
							{
 | 
				
			||||||
 | 
								// NOTE: This tests no assignees filtering and also ToSearchOptions() to ensure it will set AssigneeID to 0 when it is passed as -1.
 | 
				
			||||||
 | 
								opts:        *ToSearchOptions("", &issues.IssuesOptions{AssigneeID: -1}),
 | 
				
			||||||
 | 
								expectedIDs: []int64{22, 21, 16, 15, 14, 13, 12, 11, 20, 5, 19, 18, 10, 7, 4, 9, 8, 3, 2},
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			opts: SearchOptions{
 | 
								opts: SearchOptions{
 | 
				
			||||||
				MentionID: optional.Some(int64(4)),
 | 
									MentionID: optional.Some(int64(4)),
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user