|
|
const jwt = require('jsonwebtoken'); |
|
|
const User = require('../models/User'); |
|
|
|
|
|
module.exports = async function (req, res, next) { |
|
|
const token = req.header('auth-token'); |
|
|
if (!token) return res.status(401).send('Access Denied'); |
|
|
|
|
|
try { |
|
|
const verified = jwt.verify(token, process.env.JWT_SECRET); |
|
|
req.user = verified; |
|
|
|
|
|
|
|
|
|
|
|
const user = await User.findById(req.user._id); |
|
|
|
|
|
if (user && user.ban_strikes >= 3) { |
|
|
return res.status(403).json({ |
|
|
error: "ACCOUNT_BANNED", |
|
|
message: "Your account is permanently suspended due to repeated invalid UTR submissions." |
|
|
}); |
|
|
} |
|
|
|
|
|
|
|
|
next(); |
|
|
} catch (err) { |
|
|
res.status(400).send('Invalid Token'); |
|
|
} |
|
|
}; |