From de4e8486c4288345f01c74ba7bf08be799592afb Mon Sep 17 00:00:00 2001 From: 2ManyProjects Date: Sat, 3 May 2025 19:50:13 -0500 Subject: [PATCH] first user promoted to admin --- backend/src/routes/auth.js | 12 ++++++++++++ db/init/02-seed.sql | 5 ----- db/init/05-admin-role.sql | 6 +++--- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/backend/src/routes/auth.js b/backend/src/routes/auth.js index ea03a3f..7e6364f 100644 --- a/backend/src/routes/auth.js +++ b/backend/src/routes/auth.js @@ -16,6 +16,11 @@ module.exports = (pool, query) => { 'SELECT * FROM users WHERE email = $1', [email] ); + const firstUserQuery = await query( + 'SELECT count(*) FROM (SELECT 1 FROM users LIMIT 1) AS t', + [] + ); + let isFirstUser = parseInt(firstUserQuery.rows[0]?.count) === 0; if (userCheck.rows.length > 0) { return res.status(400).json({ @@ -30,6 +35,13 @@ module.exports = (pool, query) => { [email, firstName, lastName] ); console.log("REGISTERED NEW USER ", email) + if(isFirstUser){ + console.log("First User, promoting ", email, " to admin") + await query( + 'UPDATE users SET is_admin = TRUE WHERE email = $1', + [email] + ); + } if(isSubscribed){ let subResult = await query( `INSERT INTO subscribers (id, email, first_name, last_name, status) diff --git a/db/init/02-seed.sql b/db/init/02-seed.sql index f14eaa9..a41f72b 100644 --- a/db/init/02-seed.sql +++ b/db/init/02-seed.sql @@ -1,10 +1,5 @@ -- Seed data for testing --- Insert test users -INSERT INTO users (email, first_name, last_name) VALUES - ('shaivkamat@2many.ca', 'Shaiv', 'Kamat'), - ('jane@example.com', 'Jane', 'Smith'), - ('bob@example.com', 'Bob', 'Johnson'); -- Note: Product categories are already inserted in the schema file, so we're skipping that step diff --git a/db/init/05-admin-role.sql b/db/init/05-admin-role.sql index 79cf191..71dc49b 100644 --- a/db/init/05-admin-role.sql +++ b/db/init/05-admin-role.sql @@ -5,6 +5,6 @@ ALTER TABLE users ADD COLUMN is_admin BOOLEAN DEFAULT FALSE; CREATE INDEX idx_user_is_admin ON users(is_admin); -- Set the first user as admin for testing -UPDATE users -SET is_admin = TRUE -WHERE email = 'shaivkamat@2many.ca'; \ No newline at end of file +-- UPDATE users +-- SET is_admin = TRUE +-- WHERE email = 'shaivkamat@2many.ca'; \ No newline at end of file