From faf6438852bccebdf0ddd95c3a31124843586c49 Mon Sep 17 00:00:00 2001 From: Mike Cao Date: Sun, 3 Apr 2022 22:25:32 -0700 Subject: [PATCH] Allow user to change admin username. --- components/settings/AccountSettings.js | 17 +++++++++-------- lib/queries.js | 11 ++++++++++- pages/api/account/index.js | 7 ++----- pages/api/{accounts.js => accounts/index.js} | 0 pages/api/{websites.js => websites/index.js} | 0 5 files changed, 21 insertions(+), 14 deletions(-) rename pages/api/{accounts.js => accounts/index.js} (100%) rename pages/api/{websites.js => websites/index.js} (100%) diff --git a/components/settings/AccountSettings.js b/components/settings/AccountSettings.js index 4929b244..967492db 100644 --- a/components/settings/AccountSettings.js +++ b/components/settings/AccountSettings.js @@ -37,17 +37,18 @@ export default function AccountSettings() { ); - const Buttons = row => - row.username !== 'admin' ? ( - - + const Buttons = row => ( + + + {!row.is_admin && ( - - ) : null; + )} + + ); const columns = [ { diff --git a/lib/queries.js b/lib/queries.js index ed644874..7d3dd7a2 100644 --- a/lib/queries.js +++ b/lib/queries.js @@ -230,7 +230,16 @@ export async function saveEvent(website_id, session_id, url, event_type, event_v } export async function getAccounts() { - return runQuery(prisma.account.findMany()); + return runQuery( + prisma.account.findMany({ + orderBy: [ + { is_admin: 'desc' }, + { + username: 'asc', + }, + ], + }), + ); } export async function getAccountById(user_id) { diff --git a/pages/api/account/index.js b/pages/api/account/index.js index 2ec5f081..101d3e7f 100644 --- a/pages/api/account/index.js +++ b/pages/api/account/index.js @@ -23,10 +23,7 @@ export default async (req, res) => { // Only admin can change these fields if (current_user_is_admin) { - // Cannot change username of admin - if (username !== 'admin') { - data.username = username; - } + data.username = username; data.is_admin = is_admin; } @@ -37,7 +34,7 @@ export default async (req, res) => { return badRequest(res, 'Account already exists'); } } - + console.log('------------------\n', data); const updated = await updateAccount(user_id, data); return ok(res, updated); diff --git a/pages/api/accounts.js b/pages/api/accounts/index.js similarity index 100% rename from pages/api/accounts.js rename to pages/api/accounts/index.js diff --git a/pages/api/websites.js b/pages/api/websites/index.js similarity index 100% rename from pages/api/websites.js rename to pages/api/websites/index.js