summaryrefslogtreecommitdiff
path: root/web/source/settings/lib
diff options
context:
space:
mode:
authorLibravatar Vyr Cossont <vyr@noreply.codeberg.org>2025-10-13 19:15:24 +0200
committerLibravatar tobi <tobi.smethurst@protonmail.com>2025-10-17 15:33:15 +0200
commitc99b89f780f9d561ac0fbc2acf61291006396071 (patch)
tree646b04daea29d2b0ffa33bbc2181ebba0ceffb29 /web/source/settings/lib
parent[docs] Document setting `OTEL_EXPORTER_PROMETHEUS_HOST` for Docker (#4498) (diff)
downloadgotosocial-c99b89f780f9d561ac0fbc2acf61291006396071.tar.xz
[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>
Diffstat (limited to 'web/source/settings/lib')
-rw-r--r--web/source/settings/lib/types/scopes.ts15
1 files changed, 11 insertions, 4 deletions
diff --git a/web/source/settings/lib/types/scopes.ts b/web/source/settings/lib/types/scopes.ts
index 2bf5c21b4..c307bff21 100644
--- a/web/source/settings/lib/types/scopes.ts
+++ b/web/source/settings/lib/types/scopes.ts
@@ -24,6 +24,7 @@ const scopeApplications = "applications";
const scopeBlocks = "blocks";
const scopeBookmarks = "bookmarks";
const scopeConversations = "conversations";
+const scopeCustomEmojis = "custom_emojis";
const scopeDomainAllows = "domain_allows";
const scopeDomainBlocks = "domain_blocks";
const scopeFavourites = "favourites";
@@ -58,6 +59,7 @@ export const ScopeWriteBlocks = ScopeWrite + ":" + scopeBlocks;
export const ScopeReadBookmarks = ScopeRead + ":" + scopeBookmarks;
export const ScopeWriteBookmarks = ScopeWrite + ":" + scopeBookmarks;
export const ScopeWriteConversations = ScopeWrite + ":" + scopeConversations;
+export const ScopeReadCustomEmojis = ScopeRead + ":" + scopeCustomEmojis;
export const ScopeReadFavourites = ScopeRead + ":" + scopeFavourites;
export const ScopeWriteFavourites = ScopeWrite + ":" + scopeFavourites;
export const ScopeReadFilters = ScopeRead + ":" + scopeFilters;
@@ -77,12 +79,14 @@ export const ScopeReadStatuses = ScopeRead + ":" + scopeStatuses;
export const ScopeWriteStatuses = ScopeWrite + ":" + scopeStatuses;
export const ScopeAdminReadAccounts = ScopeAdminRead + ":" + scopeAccounts;
export const ScopeAdminWriteAccounts = ScopeAdminWrite + ":" + scopeAccounts;
-export const ScopeAdminReadReports = ScopeAdminRead + ":" + scopeReports;
-export const ScopeAdminWriteReports = ScopeAdminWrite + ":" + scopeReports;
+export const ScopeAdminReadCustomEmojis = ScopeAdminRead + ":" + scopeCustomEmojis;
+export const ScopeAdminWriteCustomEmojis = ScopeAdminWrite + ":" + scopeCustomEmojis;
export const ScopeAdminReadDomainAllows = ScopeAdminRead + ":" + scopeDomainAllows;
export const ScopeAdminWriteDomainAllows = ScopeAdminWrite + ":" + scopeDomainAllows;
export const ScopeAdminReadDomainBlocks = ScopeAdminRead + ":" + scopeDomainBlocks;
export const ScopeAdminWriteDomainBlocks = ScopeAdminWrite + ":" + scopeDomainBlocks;
+export const ScopeAdminReadReports = ScopeAdminRead + ":" + scopeReports;
+export const ScopeAdminWriteReports = ScopeAdminWrite + ":" + scopeReports;
export const ValidScopes = [
ScopeProfile,
@@ -101,6 +105,7 @@ export const ValidScopes = [
ScopeReadBookmarks,
ScopeWriteBookmarks,
ScopeWriteConversations,
+ ScopeReadCustomEmojis,
ScopeReadFavourites,
ScopeWriteFavourites,
ScopeReadFilters,
@@ -120,12 +125,14 @@ export const ValidScopes = [
ScopeWriteStatuses,
ScopeAdminReadAccounts,
ScopeAdminWriteAccounts,
- ScopeAdminReadReports,
- ScopeAdminWriteReports,
+ ScopeAdminReadCustomEmojis,
+ ScopeAdminWriteCustomEmojis,
ScopeAdminReadDomainAllows,
ScopeAdminWriteDomainAllows,
ScopeAdminReadDomainBlocks,
ScopeAdminWriteDomainBlocks,
+ ScopeAdminReadReports,
+ ScopeAdminWriteReports,
];
export const ValidTopLevelScopes = [