feat: organizer application system
All checks were successful
Build Images and Deploy / Update-PROD-Stack (push) Successful in 30s
All checks were successful
Build Images and Deploy / Update-PROD-Stack (push) Successful in 30s
This commit is contained in:
@@ -159,6 +159,7 @@ const Users = {
|
||||
db.prepare('UPDATE users SET username = ?, display_name = ?, password_hash = ?, is_admin = 0, is_organizer = 0 WHERE id = ?')
|
||||
.run(scrambled, '[deleted]', '', userId);
|
||||
db.prepare('UPDATE password_reset_tokens SET used = 1 WHERE user_id = ?').run(userId);
|
||||
db.prepare('DELETE FROM organizer_applications WHERE user_id = ?').run(userId);
|
||||
db.prepare("DELETE FROM sessions WHERE sess LIKE ?").run('%"userId":' + userId + '%');
|
||||
},
|
||||
|
||||
@@ -171,6 +172,7 @@ const Users = {
|
||||
db.prepare('UPDATE packages SET first_scanned_by = NULL WHERE first_scanned_by = ?').run(userId);
|
||||
db.prepare('UPDATE packages SET last_scanned_by = NULL WHERE last_scanned_by = ?').run(userId);
|
||||
db.prepare('DELETE FROM password_reset_tokens WHERE user_id = ?').run(userId);
|
||||
db.prepare('DELETE FROM organizer_applications WHERE user_id = ?').run(userId);
|
||||
db.prepare("DELETE FROM sessions WHERE sess LIKE ?").run('%"userId":' + userId + '%');
|
||||
db.prepare('DELETE FROM users WHERE id = ?').run(userId);
|
||||
},
|
||||
@@ -488,4 +490,36 @@ const Scans = {
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = { Users, Hunts, Packages, Scans, generateCode };
|
||||
module.exports = { Users, Hunts, Packages, Scans, OrganizerApplications, generateCode };
|
||||
|
||||
// ─── Organizer Applications ──────────────────────────────
|
||||
const OrganizerApplications = {
|
||||
submit(userId, reason) {
|
||||
db.prepare('INSERT INTO organizer_applications (user_id, reason) VALUES (?, ?)').run(userId, reason);
|
||||
},
|
||||
|
||||
getPending() {
|
||||
return db.prepare(`
|
||||
SELECT oa.*, COALESCE(u.display_name, u.username) as display_name, u.username
|
||||
FROM organizer_applications oa
|
||||
JOIN users u ON oa.user_id = u.id
|
||||
ORDER BY oa.created_at ASC
|
||||
`).all();
|
||||
},
|
||||
|
||||
findByUser(userId) {
|
||||
return db.prepare('SELECT * FROM organizer_applications WHERE user_id = ?').get(userId);
|
||||
},
|
||||
|
||||
findById(id) {
|
||||
return db.prepare('SELECT * FROM organizer_applications WHERE id = ?').get(id);
|
||||
},
|
||||
|
||||
delete(id) {
|
||||
db.prepare('DELETE FROM organizer_applications WHERE id = ?').run(id);
|
||||
},
|
||||
|
||||
deleteByUser(userId) {
|
||||
db.prepare('DELETE FROM organizer_applications WHERE user_id = ?').run(userId);
|
||||
}
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user