feat(auth): Enforce global email verification for all users, restrict dashboard if unverified, add verification badges and banners
This commit is contained in:
+4
-4
@@ -2,7 +2,7 @@ const express = require('express');
|
||||
const router = express.Router();
|
||||
const QRCode = require('qrcode');
|
||||
const shortid = require('shortid');
|
||||
const { verifyToken } = require('../middleware/auth');
|
||||
const { verifyToken, requireEmailVerification } = require('../middleware/auth');
|
||||
const { Pool } = require('pg');
|
||||
|
||||
const pgPool = new Pool({
|
||||
@@ -56,7 +56,7 @@ router.get('/:id', verifyToken, async (req, res) => {
|
||||
});
|
||||
|
||||
// Generate QR Code
|
||||
router.post('/generate', verifyToken, async (req, res) => {
|
||||
router.post('/generate', verifyToken, requireEmailVerification, async (req, res) => {
|
||||
const { name, type, dataType, destinationUrl, designData, customSlug, folderId } = req.body;
|
||||
const userId = req.user.id;
|
||||
|
||||
@@ -107,7 +107,7 @@ router.post('/generate', verifyToken, async (req, res) => {
|
||||
});
|
||||
|
||||
// Update QR Code (Editable Link / Move Folder / Update Design)
|
||||
router.put('/:id', verifyToken, async (req, res) => {
|
||||
router.put('/:id', verifyToken, requireEmailVerification, async (req, res) => {
|
||||
const { name, destinationUrl, shortUrlId, designData, folderId } = req.body;
|
||||
const qrId = req.params.id;
|
||||
const userId = req.user.id;
|
||||
@@ -150,7 +150,7 @@ router.put('/:id', verifyToken, async (req, res) => {
|
||||
});
|
||||
|
||||
// Delete QR Code
|
||||
router.delete('/:id', verifyToken, async (req, res) => {
|
||||
router.delete('/:id', verifyToken, requireEmailVerification, async (req, res) => {
|
||||
try {
|
||||
const result = await pgPool.query('DELETE FROM qr_codes WHERE id = $1 AND user_id = $2 RETURNING id', [req.params.id, req.user.id]);
|
||||
if (result.rows.length === 0) return res.status(404).json({ error: 'Not found' });
|
||||
|
||||
Reference in New Issue
Block a user