mirror of
				https://gitee.com/gitea/gitea
				synced 2025-11-04 16:40:24 +08:00 
			
		
		
		
	Check for access in /repositories/:id (#2227)
* Check for access in /repositories/:id * Integration test
This commit is contained in:
		@@ -84,3 +84,11 @@ func TestAPIOrgRepos(t *testing.T) {
 | 
			
		||||
		assert.False(t, repo.Private)
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
func TestAPIGetRepoByIDUnauthorized(t *testing.T) {
 | 
			
		||||
	prepareTestEnv(t)
 | 
			
		||||
	user := models.AssertExistsAndLoadBean(t, &models.User{ID: 4}).(*models.User)
 | 
			
		||||
	sess := loginUser(t, user.Name)
 | 
			
		||||
	req := NewRequestf(t, "GET", "/api/v1/repositories/2")
 | 
			
		||||
	sess.MakeRequest(t, req, http.StatusNotFound)
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -293,7 +293,10 @@ func GetByID(ctx *context.APIContext) {
 | 
			
		||||
 | 
			
		||||
	access, err := models.AccessLevel(ctx.User.ID, repo)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		ctx.Error(500, "GetRepositoryByID", err)
 | 
			
		||||
		ctx.Error(500, "AccessLevel", err)
 | 
			
		||||
		return
 | 
			
		||||
	} else if access < models.AccessModeRead {
 | 
			
		||||
		ctx.Status(404)
 | 
			
		||||
		return
 | 
			
		||||
	}
 | 
			
		||||
	ctx.JSON(200, repo.APIFormat(access))
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user