first user promoted to admin

This commit is contained in:
2ManyProjects 2025-05-03 19:50:13 -05:00
parent 31e5084ea5
commit de4e8486c4
3 changed files with 15 additions and 8 deletions

View file

@ -16,6 +16,11 @@ module.exports = (pool, query) => {
'SELECT * FROM users WHERE email = $1', 'SELECT * FROM users WHERE email = $1',
[email] [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) { if (userCheck.rows.length > 0) {
return res.status(400).json({ return res.status(400).json({
@ -30,6 +35,13 @@ module.exports = (pool, query) => {
[email, firstName, lastName] [email, firstName, lastName]
); );
console.log("REGISTERED NEW USER ", email) 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){ if(isSubscribed){
let subResult = await query( let subResult = await query(
`INSERT INTO subscribers (id, email, first_name, last_name, status) `INSERT INTO subscribers (id, email, first_name, last_name, status)

View file

@ -1,10 +1,5 @@
-- Seed data for testing -- 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 -- Note: Product categories are already inserted in the schema file, so we're skipping that step

View file

@ -5,6 +5,6 @@ ALTER TABLE users ADD COLUMN is_admin BOOLEAN DEFAULT FALSE;
CREATE INDEX idx_user_is_admin ON users(is_admin); CREATE INDEX idx_user_is_admin ON users(is_admin);
-- Set the first user as admin for testing -- Set the first user as admin for testing
UPDATE users -- UPDATE users
SET is_admin = TRUE -- SET is_admin = TRUE
WHERE email = 'shaivkamat@2many.ca'; -- WHERE email = 'shaivkamat@2many.ca';