const UserModel = require('../models/UserModel') const jwt = require('jsonwebtoken') const { canUseProjects, respondProjectProfileIncomplete, } = require('../utils/projectProfile') /** حداقل ثبت‌نام برای پروژه: نام کاربری + نام */ module.exports = async (req, res, next) => { try { if (!('authorization' in req.headers)) { return res.status(401).send({ status: 'error', code: 401, message: 'You are not authorized!', }) } const token = req.header('Authorization').split(' ')[1] if (!token) return res.status(401).send('Access Denied') const decodedToken = jwt.verify(token, process.env.APP_SECRET) if (!decodedToken) { return res.status(401).send({ status: 'error', code: 401, message: 'Your token is not valid!', }) } const user = await UserModel.findById(decodedToken.id) if (!user) { return res.status(401).send({ status: 'error', code: 401, message: 'Your token is not valid!', }) } if (!canUseProjects(user)) { return respondProjectProfileIncomplete(res) } req.user = user next() } catch (error) { console.error('isBasicRegister middleware:', error) res.status(500).send({ status: 'error', code: 500, message: 'Server error', }) } }