shell bypass 403
const express = require('express')
const { uploadImage } = require('../helper/file-upload')
const blogs = require('../Schema/blog')
const generateUrl = require('../helper/generateUrl')
const router = express.Router()
router.post('/new', uploadImage.single('image'), async (req, res) => {
try {
console.log("📸 Incoming File:", req.file); // Debug log
console.log("📝 Incoming Body:", req.body);
// Ensure image is uploaded
if (!req.file) {
return res.redirect(`/sites/pioneer-reality/admin/blogs?error=Image Not Found!`);
}
// Extract data
const { title, disc } = req.body;
const picture = `/uploads/${req.file.filename}`;
const url = generateUrl(title); // Fix: Use title, not name
// Save to database
const newblogs = await blogs.create({ title, picture, disc, url });
return res.redirect(`/sites/pioneer-reality/admin/blogs?message=New blog added`);
} catch (error) {
console.error("❌ Error:", error);
return res.redirect(`/sites/pioneer-reality/admin/blogs?error=${encodeURIComponent(error.message)}`);
}
});
router.post('/delete', async (req, res) => {
try {
const { id } = req.body;
if (!id) {
return res.redirect(`/sites/pioneer-reality/admin/blogs?error=Team member ID is required!`);
}
// Find and delete the team member
const teamMember = await blogs.findByIdAndDelete(id);
if (!teamMember) {
return res.redirect(`/sites/pioneer-reality/admin/blogs?error=Team member not found!`);
}
return res.redirect(`/sites/pioneer-reality/admin/blogs?message=Team member deleted successfully`);
} catch (error) {
console.error('Error:', error);
return res.redirect(`/sites/pioneer-reality/admin/blogs?error=${error.message}`);
}
});
router.post('/edit', uploadImage.single('image'), async (req, res) => {
try {
const { id, title , disc } = req.body;
const image = req.file;
if (!id) {
return res.redirect(`/sites/pioneer-reality/admin/blogs?error=Team member ID is required!`);
}
// Find the team member
const teamMember = await blogs.findById(id);
if (!teamMember) {
return res.redirect(`/sites/pioneer-reality/admin/blogs?error=Team member not found!`);
}
// Update fields
if (title) teamMember.title = title;
if (disc) teamMember.disc = disc;
if (image) teamMember.picture = `/uploads/${image.filename}`; // Update image if provided
await teamMember.save(); // Save the updated team member
return res.redirect(`/sites/pioneer-reality/admin/blogs?message=blogs updated successfully`);
} catch (error) {
console.error('Error:', error);
return res.redirect(`/sites/pioneer-reality/admin/blogs?error=${error.message}`);
}
});
module.exports = router