forked from gitea/gitea
		
	New API routes added (#5594)
* New API routes added * Comments added * Build fix * swagger_v1_json.tmpl without new line character * Typo fix * Code review changes * Code review changes * Add copyright * Add copyright * Add copyright * Update per @lafriks feedback * Update org.go * Update user.go * Update user.go * make fmt
This commit is contained in:
		
							parent
							
								
									b9f87376a2
								
							
						
					
					
						commit
						1b90692844
					
				| @ -1,4 +1,5 @@ | ||||
| // Copyright 2014 The Gogs Authors. All rights reserved. | ||||
| // Copyright 2019 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| @ -1358,7 +1359,7 @@ func SearchUsers(opts *SearchUserOptions) (users []*User, _ int64, _ error) { | ||||
| 		return nil, 0, fmt.Errorf("Count: %v", err) | ||||
| 	} | ||||
| 
 | ||||
| 	if opts.PageSize <= 0 || opts.PageSize > setting.UI.ExplorePagingNum { | ||||
| 	if opts.PageSize == 0 || opts.PageSize > setting.UI.ExplorePagingNum { | ||||
| 		opts.PageSize = setting.UI.ExplorePagingNum | ||||
| 	} | ||||
| 	if opts.Page <= 0 { | ||||
| @ -1368,11 +1369,13 @@ func SearchUsers(opts *SearchUserOptions) (users []*User, _ int64, _ error) { | ||||
| 		opts.OrderBy = SearchOrderByAlphabetically | ||||
| 	} | ||||
| 
 | ||||
| 	sess := x.Where(cond) | ||||
| 	if opts.PageSize > 0 { | ||||
| 		sess = sess.Limit(opts.PageSize, (opts.Page-1)*opts.PageSize) | ||||
| 	} | ||||
| 
 | ||||
| 	users = make([]*User, 0, opts.PageSize) | ||||
| 	return users, count, x.Where(cond). | ||||
| 		Limit(opts.PageSize, (opts.Page-1)*opts.PageSize). | ||||
| 		OrderBy(opts.OrderBy.String()). | ||||
| 		Find(&users) | ||||
| 	return users, count, sess.OrderBy(opts.OrderBy.String()).Find(&users) | ||||
| } | ||||
| 
 | ||||
| // GetStarredRepos returns the repos starred by a particular user | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| // Copyright 2015 The Gogs Authors. All rights reserved. | ||||
| // Copyright 2019 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| @ -66,3 +67,31 @@ func CreateOrg(ctx *context.APIContext, form api.CreateOrgOption) { | ||||
| 
 | ||||
| 	ctx.JSON(201, convert.ToOrganization(org)) | ||||
| } | ||||
| 
 | ||||
| //GetAllOrgs API for getting information of all the organizations | ||||
| func GetAllOrgs(ctx *context.APIContext) { | ||||
| 	// swagger:operation GET /admin/orgs admin adminGetAllOrgs | ||||
| 	// --- | ||||
| 	// summary: List all organizations | ||||
| 	// produces: | ||||
| 	// - application/json | ||||
| 	// responses: | ||||
| 	//   "200": | ||||
| 	//     "$ref": "#/responses/OrganizationList" | ||||
| 	//   "403": | ||||
| 	//     "$ref": "#/responses/forbidden" | ||||
| 	users, _, err := models.SearchUsers(&models.SearchUserOptions{ | ||||
| 		Type:     models.UserTypeOrganization, | ||||
| 		OrderBy:  models.SearchOrderByAlphabetically, | ||||
| 		PageSize: -1, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		ctx.Error(500, "SearchOrganizations", err) | ||||
| 		return | ||||
| 	} | ||||
| 	orgs := make([]*api.Organization, len(users)) | ||||
| 	for i := range users { | ||||
| 		orgs[i] = convert.ToOrganization(users[i]) | ||||
| 	} | ||||
| 	ctx.JSON(200, &orgs) | ||||
| } | ||||
|  | ||||
| @ -1,4 +1,5 @@ | ||||
| // Copyright 2015 The Gogs Authors. All rights reserved. | ||||
| // Copyright 2019 The Gitea Authors. All rights reserved. | ||||
| // Use of this source code is governed by a MIT-style | ||||
| // license that can be found in the LICENSE file. | ||||
| 
 | ||||
| @ -291,3 +292,27 @@ func DeleteUserPublicKey(ctx *context.APIContext) { | ||||
| 
 | ||||
| 	ctx.Status(204) | ||||
| } | ||||
| 
 | ||||
| //GetAllUsers API for getting information of all the users | ||||
| func GetAllUsers(ctx *context.APIContext) { | ||||
| 	// swagger:operation GET /admin/users admin adminGetAllUsers | ||||
| 	// --- | ||||
| 	// summary: List all users | ||||
| 	// produces: | ||||
| 	// - application/json | ||||
| 	// responses: | ||||
| 	//   "200": | ||||
| 	//     "$ref": "#/responses/UserList" | ||||
| 	//   "403": | ||||
| 	//     "$ref": "#/responses/forbidden" | ||||
| 	users, _, err := models.SearchUsers(&models.SearchUserOptions{ | ||||
| 		Type:     models.UserTypeIndividual, | ||||
| 		OrderBy:  models.SearchOrderByAlphabetically, | ||||
| 		PageSize: -1, | ||||
| 	}) | ||||
| 	if err != nil { | ||||
| 		ctx.Error(500, "SearchUsers", err) | ||||
| 		return | ||||
| 	} | ||||
| 	ctx.JSON(200, &users) | ||||
| } | ||||
|  | ||||
| @ -671,7 +671,9 @@ func RegisterRoutes(m *macaron.Macaron) { | ||||
| 		}) | ||||
| 
 | ||||
| 		m.Group("/admin", func() { | ||||
| 			m.Get("/orgs", admin.GetAllOrgs) | ||||
| 			m.Group("/users", func() { | ||||
| 				m.Get("", admin.GetAllUsers) | ||||
| 				m.Post("", bind(api.CreateUserOption{}), admin.CreateUser) | ||||
| 				m.Group("/:username", func() { | ||||
| 					m.Combo("").Patch(bind(api.EditUserOption{}), admin.EditUser). | ||||
| @ -680,6 +682,7 @@ func RegisterRoutes(m *macaron.Macaron) { | ||||
| 						m.Post("", bind(api.CreateKeyOption{}), admin.CreatePublicKey) | ||||
| 						m.Delete("/:id", admin.DeleteUserPublicKey) | ||||
| 					}) | ||||
| 					m.Get("/orgs", org.ListUserOrgs) | ||||
| 					m.Post("/orgs", bind(api.CreateOrgOption{}), admin.CreateOrg) | ||||
| 					m.Post("/repos", bind(api.CreateRepoOption{}), admin.CreateRepo) | ||||
| 				}) | ||||
|  | ||||
| @ -23,7 +23,45 @@ | ||||
|   }, | ||||
|   "basePath": "{{AppSubUrl}}/api/v1", | ||||
|   "paths": { | ||||
|     "/admin/orgs": { | ||||
|       "get": { | ||||
|         "produces": [ | ||||
|           "application/json" | ||||
|         ], | ||||
|         "tags": [ | ||||
|           "admin" | ||||
|         ], | ||||
|         "summary": "List all organizations", | ||||
|         "operationId": "adminGetAllOrgs", | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "$ref": "#/responses/OrganizationList" | ||||
|           }, | ||||
|           "403": { | ||||
|             "$ref": "#/responses/forbidden" | ||||
|           } | ||||
|         } | ||||
|       } | ||||
|     }, | ||||
|     "/admin/users": { | ||||
|       "get": { | ||||
|         "produces": [ | ||||
|           "application/json" | ||||
|         ], | ||||
|         "tags": [ | ||||
|           "admin" | ||||
|         ], | ||||
|         "summary": "List all users", | ||||
|         "operationId": "adminGetAllUsers", | ||||
|         "responses": { | ||||
|           "200": { | ||||
|             "$ref": "#/responses/UserList" | ||||
|           }, | ||||
|           "403": { | ||||
|             "$ref": "#/responses/forbidden" | ||||
|           } | ||||
|         } | ||||
|       }, | ||||
|       "post": { | ||||
|         "consumes": [ | ||||
|           "application/json" | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Shashvat Kedia
						Shashvat Kedia