forked from forgejo/forgejo
[MODERATION] add user blocking API
- Follow up for: #540, #802
- Add API routes for user blocking from user and organization
perspective.
- The new routes have integration testing.
- The new model functions have unit tests.
- Actually quite boring to write and to read this pull request.
(cherry picked from commit f3afaf15c7
)
This commit is contained in:
parent
37b4e6ef9b
commit
6d754db3e5
12 changed files with 626 additions and 9 deletions
|
@ -437,3 +437,95 @@ func ListOrgActivityFeeds(ctx *context.APIContext) {
|
|||
|
||||
ctx.JSON(http.StatusOK, convert.ToActivities(ctx, feeds, ctx.Doer))
|
||||
}
|
||||
|
||||
// ListBlockedUsers list the organization's blocked users.
|
||||
func ListBlockedUsers(ctx *context.APIContext) {
|
||||
// swagger:operation GET /orgs/{org}/list_blocked organization orgListBlockedUsers
|
||||
// ---
|
||||
// summary: List the organization's blocked users
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: org
|
||||
// in: path
|
||||
// description: name of the org
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: page
|
||||
// in: query
|
||||
// description: page number of results to return (1-based)
|
||||
// type: integer
|
||||
// - name: limit
|
||||
// in: query
|
||||
// description: page size of results
|
||||
// type: integer
|
||||
// responses:
|
||||
// "200":
|
||||
// "$ref": "#/responses/BlockedUserList"
|
||||
|
||||
utils.ListUserBlockedUsers(ctx, ctx.ContextUser)
|
||||
}
|
||||
|
||||
// BlockUser blocks a user from the organization.
|
||||
func BlockUser(ctx *context.APIContext) {
|
||||
// swagger:operation PUT /orgs/{org}/block/{username} organization orgBlockUser
|
||||
// ---
|
||||
// summary: Blocks a user from the organization
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: org
|
||||
// in: path
|
||||
// description: name of the org
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: username
|
||||
// in: path
|
||||
// description: username of the user
|
||||
// type: string
|
||||
// required: true
|
||||
// responses:
|
||||
// "204":
|
||||
// "$ref": "#/responses/empty"
|
||||
// "404":
|
||||
// "$ref": "#/responses/notFound"
|
||||
|
||||
user := user.GetUserByParams(ctx)
|
||||
if ctx.Written() {
|
||||
return
|
||||
}
|
||||
|
||||
utils.BlockUser(ctx, ctx.Org.Organization.AsUser(), user)
|
||||
}
|
||||
|
||||
// UnblockUser unblocks a user from the organization.
|
||||
func UnblockUser(ctx *context.APIContext) {
|
||||
// swagger:operation PUT /orgs/{org}/unblock/{username} organization orgUnblockUser
|
||||
// ---
|
||||
// summary: Unblock a user from the organization
|
||||
// produces:
|
||||
// - application/json
|
||||
// parameters:
|
||||
// - name: org
|
||||
// in: path
|
||||
// description: name of the org
|
||||
// type: string
|
||||
// required: true
|
||||
// - name: username
|
||||
// in: path
|
||||
// description: username of the user
|
||||
// type: string
|
||||
// required: true
|
||||
// responses:
|
||||
// "204":
|
||||
// "$ref": "#/responses/empty"
|
||||
// "404":
|
||||
// "$ref": "#/responses/notFound"
|
||||
|
||||
user := user.GetUserByParams(ctx)
|
||||
if ctx.Written() {
|
||||
return
|
||||
}
|
||||
|
||||
utils.UnblockUser(ctx, ctx.Org.Organization.AsUser(), user)
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue