summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLunny Xiao <xiaolunwen@gmail.com>2019-08-05 02:33:36 +0800
committertechknowlogick <techknowlogick@gitea.io>2019-08-04 14:33:36 -0400
commit5b902e2368fdb67eda4ba033f7167fadf72e4350 (patch)
tree517c89ca14e749962d8c8b221a6ef5188d764d1d
parent7b2a39c78bbda57cd76c5c01af4904bf6a709a7d (diff)
downloadgitea-5b902e2368fdb67eda4ba033f7167fadf72e4350.tar.gz
gitea-5b902e2368fdb67eda4ba033f7167fadf72e4350.zip
add pagination for admin api get orgs and fix only list public orgs bug (#7742)
-rw-r--r--models/user.go4
-rw-r--r--routers/api/v1/admin/org.go13
-rw-r--r--templates/swagger/v1_json.tmpl14
3 files changed, 27 insertions, 4 deletions
diff --git a/models/user.go b/models/user.go
index ab29683a7b..2e4f971662 100644
--- a/models/user.go
+++ b/models/user.go
@@ -1409,9 +1409,7 @@ type SearchUserOptions struct {
}
func (opts *SearchUserOptions) toConds() builder.Cond {
-
- var cond = builder.NewCond()
- cond = cond.And(builder.Eq{"type": opts.Type})
+ var cond builder.Cond = builder.Eq{"type": opts.Type}
if len(opts.Keyword) > 0 {
lowerKeyword := strings.ToLower(opts.Keyword)
diff --git a/routers/api/v1/admin/org.go b/routers/api/v1/admin/org.go
index d740647cd4..c90e739626 100644
--- a/routers/api/v1/admin/org.go
+++ b/routers/api/v1/admin/org.go
@@ -82,6 +82,15 @@ func GetAllOrgs(ctx *context.APIContext) {
// summary: List all organizations
// produces:
// - application/json
+ // parameters:
+ // - name: page
+ // in: query
+ // description: page number of results to return (1-based)
+ // type: integer
+ // - name: limit
+ // in: query
+ // description: page size of results, maximum page size is 50
+ // type: integer
// responses:
// "200":
// "$ref": "#/responses/OrganizationList"
@@ -90,7 +99,9 @@ func GetAllOrgs(ctx *context.APIContext) {
users, _, err := models.SearchUsers(&models.SearchUserOptions{
Type: models.UserTypeOrganization,
OrderBy: models.SearchOrderByAlphabetically,
- PageSize: -1,
+ Page: ctx.QueryInt("page"),
+ PageSize: convert.ToCorrectPageSize(ctx.QueryInt("limit")),
+ Private: true,
})
if err != nil {
ctx.Error(500, "SearchOrganizations", err)
diff --git a/templates/swagger/v1_json.tmpl b/templates/swagger/v1_json.tmpl
index 43eca15871..4ae7f5a49e 100644
--- a/templates/swagger/v1_json.tmpl
+++ b/templates/swagger/v1_json.tmpl
@@ -33,6 +33,20 @@
],
"summary": "List all organizations",
"operationId": "adminGetAllOrgs",
+ "parameters": [
+ {
+ "type": "integer",
+ "description": "page number of results to return (1-based)",
+ "name": "page",
+ "in": "query"
+ },
+ {
+ "type": "integer",
+ "description": "page size of results, maximum page size is 50",
+ "name": "limit",
+ "in": "query"
+ }
+ ],
"responses": {
"200": {
"$ref": "#/responses/OrganizationList"