Browse Source

Merge branch 'chore/add-missing-tests-docs-to-admin-api' into 'develop'

Add missing docs and tests to Admin API

See merge request pleroma/pleroma!868
tags/v1.1.4
kaniini 5 years ago
parent
commit
a50a47a011
2 changed files with 163 additions and 63 deletions
  1. +128
    -63
      docs/Admin-API.md
  2. +35
    -0
      test/web/admin_api/admin_api_controller_test.exs

+ 128
- 63
docs/Admin-API.md View File

@@ -1,108 +1,173 @@
# Admin API

Authentication is required and the user must be an admin.

## `/api/pleroma/admin/users`

### List users

- Method `GET`
- Response:

```JSON
[
{
"deactivated": bool,
"id": integer,
"nickname": string
},
...
]
```

## `/api/pleroma/admin/user`

### Remove a user
* Method `DELETE`
* Params:
* `nickname`
* Response: User’s nickname

- Method `DELETE`
- Params:
- `nickname`
- Response: User’s nickname

### Create a user
* Method: `POST`
* Params:
* `nickname`
* `email`
* `password`
* Response: User’s nickname

- Method: `POST`
- Params:
- `nickname`
- `email`
- `password`
- Response: User’s nickname

## `/api/pleroma/admin/users/:nickname/toggle_activation`

### Toggle user activation

- Method: `PATCH`
- Params:
- `nickname`
- Response: User’s object

```JSON
{
"deactivated": bool,
"id": integer,
"nickname": string
}
```

## `/api/pleroma/admin/users/tag`

### Tag a list of users
* Method: `PUT`
* Params:
* `nickname`
* `tags`

- Method: `PUT`
- Params:
- `nickname`
- `tags`

### Untag a list of users
* Method: `DELETE`
* Params:
* `nickname`
* `tags`

- Method: `DELETE`
- Params:
- `nickname`
- `tags`

## `/api/pleroma/admin/permission_group/:nickname`

### Get user user permission groups membership
* Method: `GET`
* Params: none
* Response:

- Method: `GET`
- Params: none
- Response:

```JSON
{
"is_moderator": bool,
"is_admin": bool
"is_moderator": bool,
"is_admin": bool
}
```

## `/api/pleroma/admin/permission_group/:nickname/:permission_group`

Note: Available `:permission_group` is currently moderator and admin. 404 is returned when the permission group doesn’t exist.

### Get user user permission groups membership
* Method: `GET`
* Params: none
* Response:

- Method: `GET`
- Params: none
- Response:

```JSON
{
"is_moderator": bool,
"is_admin": bool
"is_moderator": bool,
"is_admin": bool
}
```

### Add user in permission group
* Method: `POST`
* Params: none
* Response:
* On failure: ``{"error": "…"}``
* On success: JSON of the ``user.info``

- Method: `POST`
- Params: none
- Response:
- On failure: `{"error": "…"}`
- On success: JSON of the `user.info`

### Remove user from permission group
* Method: `DELETE`
* Params: none
* Response:
* On failure: ``{"error": "…"}``
* On success: JSON of the ``user.info``
* Note: An admin cannot revoke their own admin status.

- Method: `DELETE`
- Params: none
- Response:
- On failure: `{"error": "…"}`
- On success: JSON of the `user.info`
- Note: An admin cannot revoke their own admin status.

## `/api/pleroma/admin/activation_status/:nickname`

### Active or deactivate a user
* Method: `PUT`
* Params:
* `nickname`
* `status` BOOLEAN field, false value means deactivation.

- Method: `PUT`
- Params:
- `nickname`
- `status` BOOLEAN field, false value means deactivation.

## `/api/pleroma/admin/relay`

### Follow a Relay
* Methods: `POST`
* Params:
* `relay_url`
* Response:
* On success: URL of the followed relay

- Methods: `POST`
- Params:
- `relay_url`
- Response:
- On success: URL of the followed relay

### Unfollow a Relay
* Methods: `DELETE`
* Params:
* `relay_url`
* Response:
* On success: URL of the unfollowed relay

- Methods: `DELETE`
- Params:
- `relay_url`
- Response:
- On success: URL of the unfollowed relay

## `/api/pleroma/admin/invite_token`

### Get a account registeration invite token
* Methods: `GET`
* Params: none
* Response: invite token (base64 string)

- Methods: `GET`
- Params: none
- Response: invite token (base64 string)

## `/api/pleroma/admin/email_invite`

### Sends registration invite via email
* Methods: `POST`
* Params:
* `email`
* `name`, optionnal

- Methods: `POST`
- Params:
- `email`
- `name`, optionnal

## `/api/pleroma/admin/password_reset`

### Get a password reset token for a given nickname
* Methods: `GET`
* Params: none
* Response: password reset token (base64 string)

- Methods: `GET`
- Params: none
- Response: password reset token (base64 string)

+ 35
- 0
test/web/admin_api/admin_api_controller_test.exs View File

@@ -330,4 +330,39 @@ defmodule Pleroma.Web.AdminAPI.AdminAPIControllerTest do

assert conn.status == 200
end

test "GET /api/pleroma/admin/users" do
admin = insert(:user, info: %{is_admin: true})
user = insert(:user)

conn =
build_conn()
|> assign(:user, admin)
|> get("/api/pleroma/admin/users")

assert json_response(conn, 200) == [
%{
"deactivated" => user.info.deactivated,
"id" => user.id,
"nickname" => user.nickname
}
]
end

test "PATCH /api/pleroma/admin/users/:nickname/toggle_activation" do
admin = insert(:user, info: %{is_admin: true})
user = insert(:user)

conn =
build_conn()
|> assign(:user, admin)
|> patch("/api/pleroma/admin/users/#{user.nickname}/toggle_activation")

assert json_response(conn, 200) ==
%{
"deactivated" => !user.info.deactivated,
"id" => user.id,
"nickname" => user.nickname
}
end
end

Loading…
Cancel
Save