[feature] granular admin scopes for custom emojis (#4489)

This PR adds admin equivalents of the `read:custom_emojis` OAuth scope: `admin:read:custom_emojis` and `admin:write:custom_emojis`.

This is so tools which only touch emojis can run without other admin permissions. (`slurp emojis import` is one such tool.)

I've also sorted the admin section of the scopes lists alphabetically like the non-admin section, and updated the Swagger test script to print the same command path that it actually runs.

## API compatibility

Neither [Mastodon](https://docs.joinmastodon.org/api/oauth-scopes/) nor Akkoma nor Iceshrimp.NET has an equivalent scope, so there are no alternate scope names to worry about.

Co-authored-by: tobi <tobi.smethurst@protonmail.com>
Reviewed-on: https://codeberg.org/superseriousbusiness/gotosocial/pulls/4489
Co-authored-by: Vyr Cossont <vyr@noreply.codeberg.org>
Co-committed-by: Vyr Cossont <vyr@noreply.codeberg.org>
This commit is contained in:
Vyr Cossont
2025-10-13 19:15:24 +02:00
committed by kim
co-authored by tobi
parent 0e10e7feba
commit 8d6209fe4f
11 changed files with 50 additions and 33 deletions
+4 -2
View File
@@ -86,12 +86,14 @@ const (
ScopeWriteStatuses Scope = ScopeWrite + ":" + scopeStatuses
ScopeAdminReadAccounts Scope = ScopeAdminRead + ":" + scopeAccounts
ScopeAdminWriteAccounts Scope = ScopeAdminWrite + ":" + scopeAccounts
ScopeAdminReadReports Scope = ScopeAdminRead + ":" + scopeReports
ScopeAdminWriteReports Scope = ScopeAdminWrite + ":" + scopeReports
ScopeAdminReadCustomEmojis Scope = ScopeAdminRead + ":" + scopeCustomEmojis
ScopeAdminWriteCustomEmojis Scope = ScopeAdminWrite + ":" + scopeCustomEmojis
ScopeAdminReadDomainAllows Scope = ScopeAdminRead + ":" + scopeDomainAllows
ScopeAdminWriteDomainAllows Scope = ScopeAdminWrite + ":" + scopeDomainAllows
ScopeAdminReadDomainBlocks Scope = ScopeAdminRead + ":" + scopeDomainBlocks
ScopeAdminWriteDomainBlocks Scope = ScopeAdminWrite + ":" + scopeDomainBlocks
ScopeAdminReadReports Scope = ScopeAdminRead + ":" + scopeReports
ScopeAdminWriteReports Scope = ScopeAdminWrite + ":" + scopeReports
)
// Permits returns true if the