From 75c8b7ff0edd21b4521205a20764d949bcdf5962 Mon Sep 17 00:00:00 2001 From: Dario Piotrowicz Date: Mon, 6 Mar 2023 19:06:32 +0000 Subject: [PATCH] remove admins endpoint --- backend/src/utils/auth/getAdmins.ts | 15 +++++++++++ backend/src/utils/auth/isUserAdmin.ts | 2 +- .../src/routes/(frontend)/about/index.tsx | 2 +- functions/api/wb/settings/server/admins.ts | 26 ------------------- 4 files changed, 17 insertions(+), 28 deletions(-) create mode 100644 backend/src/utils/auth/getAdmins.ts diff --git a/backend/src/utils/auth/getAdmins.ts b/backend/src/utils/auth/getAdmins.ts new file mode 100644 index 0000000..0232cac --- /dev/null +++ b/backend/src/utils/auth/getAdmins.ts @@ -0,0 +1,15 @@ +import { type Database } from 'wildebeest/backend/src/database' +import { Person, personFromRow } from 'wildebeest/backend/src/activitypub/actors' + +export async function getAdmins(db: Database): Promise { + let rows: unknown[] = [] + try { + const stmt = db.prepare('SELECT * FROM actors WHERE is_admin=1') + const result = await stmt.all() + rows = result.success ? (result.results as unknown[]) : [] + } catch { + /* empty */ + } + + return rows.map(personFromRow) +} diff --git a/backend/src/utils/auth/isUserAdmin.ts b/backend/src/utils/auth/isUserAdmin.ts index bdecb2c..704959f 100644 --- a/backend/src/utils/auth/isUserAdmin.ts +++ b/backend/src/utils/auth/isUserAdmin.ts @@ -1,7 +1,7 @@ import { emailSymbol } from 'wildebeest/backend/src/activitypub/actors' import { Database } from 'wildebeest/backend/src/database' import { getJwtEmail } from 'wildebeest/backend/src/utils/auth/getJwtEmail' -import { getAdmins } from 'wildebeest/functions/api/wb/settings/server/admins' +import { getAdmins } from './getAdmins' import { isUserAuthenticated } from './isUserAuthenticated' export async function isUserAdmin( diff --git a/frontend/src/routes/(frontend)/about/index.tsx b/frontend/src/routes/(frontend)/about/index.tsx index aafe8b3..ea43c82 100644 --- a/frontend/src/routes/(frontend)/about/index.tsx +++ b/frontend/src/routes/(frontend)/about/index.tsx @@ -10,10 +10,10 @@ import { ServerSettingsData } from '~/routes/(admin)/settings/(admin)/server-set import { Account } from '~/types' import { getDocumentHead } from '~/utils/getDocumentHead' import { instanceLoader } from '../layout' -import { getAdmins } from 'wildebeest/functions/api/wb/settings/server/admins' import { emailSymbol } from 'wildebeest/backend/src/activitypub/actors' import { loadLocalMastodonAccount } from 'wildebeest/backend/src/mastodon/account' import { AccountCard } from '~/components/AccountCard/AccountCard' +import { getAdmins } from 'wildebeest/backend/src/utils/auth/getAdmins' type AboutInfo = { image: string diff --git a/functions/api/wb/settings/server/admins.ts b/functions/api/wb/settings/server/admins.ts index 143b004..e69de29 100644 --- a/functions/api/wb/settings/server/admins.ts +++ b/functions/api/wb/settings/server/admins.ts @@ -1,26 +0,0 @@ -import type { Env } from 'wildebeest/backend/src/types/env' -import type { ContextData } from 'wildebeest/backend/src/types/context' -import { type Database, getDatabase } from 'wildebeest/backend/src/database' -import { Person, personFromRow } from 'wildebeest/backend/src/activitypub/actors' - -export const onRequestGet: PagesFunction = async ({ env }) => { - return handleRequestGet(await getDatabase(env)) -} - -export async function handleRequestGet(db: Database) { - const admins = await getAdmins(db) - return new Response(JSON.stringify(admins), { status: 200 }) -} - -export async function getAdmins(db: Database): Promise { - let rows: unknown[] = [] - try { - const stmt = db.prepare('SELECT * FROM actors WHERE is_admin=1') - const result = await stmt.all() - rows = result.success ? (result.results as unknown[]) : [] - } catch { - /* empty */ - } - - return rows.map(personFromRow) -}