- Admin API: Added moderation log
- Web response cache (currently, enabled for ActivityPub)
- Mastodon API: Added an endpoint to get multiple statuses by IDs (`GET /api/v1/statuses/?ids[]=1&ids[]=2`)
+- OAuth: support for hierarchical permissions / [Mastodon 2.4.3 OAuth permissions](https://docs.joinmastodon.org/api/permissions/)
### Changed
- Configuration: Filter.AnonymizeFilename added ability to retain file extension with custom text
plug(
OAuthScopesPlug,
- %{scopes: ["admin:read:accounts", "read:accounts"]}
+ %{scopes: ["read:accounts"]}
when action in [:list_users, :user_show, :right_get, :invites]
)
plug(
OAuthScopesPlug,
- %{scopes: ["admin:write", "write:accounts"]}
+ %{scopes: ["write:accounts"]}
when action in [
:get_invite_token,
:revoke_invite,
plug(
OAuthScopesPlug,
- %{scopes: ["admin:read:reports", "read:reports"]} when action in [:list_reports, :report_show]
+ %{scopes: ["read:reports"]} when action in [:list_reports, :report_show]
)
plug(
OAuthScopesPlug,
- %{scopes: ["admin:write:reports", "write:reports"]}
+ %{scopes: ["write:reports"]}
when action in [:report_update_state, :report_respond]
)
plug(
OAuthScopesPlug,
- %{scopes: ["admin:read:statuses", "read:statuses"]} when action == :list_user_statuses
+ %{scopes: ["read:statuses"]} when action == :list_user_statuses
)
plug(
OAuthScopesPlug,
- %{scopes: ["admin:write:statuses", "write:statuses"]}
+ %{scopes: ["write:statuses"]}
when action in [:status_update, :status_delete]
)
plug(
OAuthScopesPlug,
- %{scopes: ["admin:read", "read"]}
+ %{scopes: ["read"]}
when action in [:config_show, :migrate_to_db, :migrate_from_db, :list_log]
)
plug(
OAuthScopesPlug,
- %{scopes: ["admin:write", "write"]}
+ %{scopes: ["write"]}
when action in [:relay_follow, :relay_unfollow, :config_update]
)