mirror of
https://github.com/myronblair/tomtomgames
synced 2026-06-30 17:51:08 -05:00
Fix pending_signups stat pollution and use branded reset email
- pending_signups stat and list queries now filter username != __reset__ so active password-reset rows no longer inflate the signup counter or appear in the admin pending-signups list - send_password_reset now calls sendPasswordResetEmail() from mailer.php instead of building a plain-text cybermailSend() call inline; the wrapper sends a branded dark-theme HTML email matching the verification email style
This commit is contained in:
+3
-3
@@ -14,7 +14,7 @@ switch ($action) {
|
||||
'active_users' => db()->query("SELECT COUNT(*) FROM users WHERE status='active'")->fetchColumn(),
|
||||
'pending_purchases' => db()->query("SELECT COUNT(*) FROM token_purchases WHERE status='pending'")->fetchColumn(),
|
||||
'pending_cashouts' => db()->query("SELECT COUNT(*) FROM cashout_requests WHERE status='pending'")->fetchColumn(),
|
||||
'pending_signups' => db()->query("SELECT COUNT(*) FROM pending_registrations WHERE expires_at > NOW()")->fetchColumn(),
|
||||
'pending_signups' => db()->query("SELECT COUNT(*) FROM pending_registrations WHERE expires_at > NOW() AND username != '__reset__'")->fetchColumn(),
|
||||
'total_tokens_sold' => db()->query("SELECT COALESCE(SUM(tokens),0) FROM token_purchases WHERE status='completed'")->fetchColumn(),
|
||||
'total_revenue' => db()->query("SELECT COALESCE(SUM(amount_cents),0)/100 FROM token_purchases WHERE status='completed'")->fetchColumn(),
|
||||
]]);
|
||||
@@ -22,7 +22,7 @@ switch ($action) {
|
||||
|
||||
// ─── PENDING SIGNUPS ──────────────────────────────────────
|
||||
case 'pending_signups':
|
||||
$rows = db()->query("SELECT id,username,alias,email,expires_at,created_at FROM pending_registrations WHERE expires_at > NOW() ORDER BY created_at DESC")->fetchAll();
|
||||
$rows = db()->query("SELECT id,username,alias,email,expires_at,created_at FROM pending_registrations WHERE expires_at > NOW() AND username != '__reset__' ORDER BY created_at DESC")->fetchAll();
|
||||
echo json_encode(['success'=>true,'pending'=>$rows]);
|
||||
break;
|
||||
|
||||
@@ -373,7 +373,7 @@ switch ($action) {
|
||||
$resetUrl = rtrim(SITE_URL,'/') . '/reset_password.php?token=' . urlencode($token);
|
||||
$subject = SITE_NAME . ' — Password Reset Request';
|
||||
$body = "Hi {$user['alias']},\n\nA password reset was requested for your account.\n\nClick here to reset: {$resetUrl}\n\nExpires in 1 hour. If you didn't request this, ignore this email.\n\n— " . SITE_NAME;
|
||||
$sent = cybermailSend($user['email'], $user['alias'], $subject, $body, '', ['password-reset']);
|
||||
$sent = sendPasswordResetEmail($user['email'], $user['alias'], $resetUrl);
|
||||
echo json_encode($sent ? ['success'=>true] : ['success'=>false,'error'=>'Failed to send reset email. Please try again.']);
|
||||
break;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user