add pagination for admin api get orgs and fix only list public orgs bug (#7742)

This commit is contained in:
Lunny Xiao 2019-08-05 02:33:36 +08:00 committed by techknowlogick
parent 7b2a39c78b
commit 5b902e2368
3 changed files with 27 additions and 4 deletions

View file

@ -1409,9 +1409,7 @@ type SearchUserOptions struct {
} }
func (opts *SearchUserOptions) toConds() builder.Cond { func (opts *SearchUserOptions) toConds() builder.Cond {
var cond builder.Cond = builder.Eq{"type": opts.Type}
var cond = builder.NewCond()
cond = cond.And(builder.Eq{"type": opts.Type})
if len(opts.Keyword) > 0 { if len(opts.Keyword) > 0 {
lowerKeyword := strings.ToLower(opts.Keyword) lowerKeyword := strings.ToLower(opts.Keyword)

View file

@ -82,6 +82,15 @@ func GetAllOrgs(ctx *context.APIContext) {
// summary: List all organizations // summary: List all organizations
// produces: // produces:
// - application/json // - 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: // responses:
// "200": // "200":
// "$ref": "#/responses/OrganizationList" // "$ref": "#/responses/OrganizationList"
@ -90,7 +99,9 @@ func GetAllOrgs(ctx *context.APIContext) {
users, _, err := models.SearchUsers(&models.SearchUserOptions{ users, _, err := models.SearchUsers(&models.SearchUserOptions{
Type: models.UserTypeOrganization, Type: models.UserTypeOrganization,
OrderBy: models.SearchOrderByAlphabetically, OrderBy: models.SearchOrderByAlphabetically,
PageSize: -1, Page: ctx.QueryInt("page"),
PageSize: convert.ToCorrectPageSize(ctx.QueryInt("limit")),
Private: true,
}) })
if err != nil { if err != nil {
ctx.Error(500, "SearchOrganizations", err) ctx.Error(500, "SearchOrganizations", err)

View file

@ -33,6 +33,20 @@
], ],
"summary": "List all organizations", "summary": "List all organizations",
"operationId": "adminGetAllOrgs", "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": { "responses": {
"200": { "200": {
"$ref": "#/responses/OrganizationList" "$ref": "#/responses/OrganizationList"