Sử dụng antigravity cli để sửa lỗi người dùng public không nhìn thấy tour chia sẻ

This commit is contained in:
2026-06-10 22:32:26 +07:00
parent 358a98b21b
commit edd91d4d64
7 changed files with 74 additions and 17 deletions
+3 -2
View File
@@ -137,14 +137,15 @@ router.get('/:id', optionalAuth, async (req, res) => {
if (!tour) return res.status(404).json({ message: 'Tour không tồn tại.' });
const isOwner = req.user && tour.createdBy._id.toString() === req.user._id.toString();
const tourCreatedById = tour.createdBy?._id || tour.createdBy;
const isOwner = req.user && req.user._id && tourCreatedById && tourCreatedById.toString() === req.user._id.toString();
const isAdmin = req.user && req.user.role === 'admin';
const isTokenValid = tour.shareToken && (!tour.shareTokenExpires || new Date() < tour.shareTokenExpires);
const userEmail = req.user ? req.user.email : null;
let hasAccess = tour.privacy === 'public' || isOwner || isAdmin ||
(tour.privacy === 'shared' && req.query.token === tour.shareToken && isTokenValid) ||
(tour.privacy === 'member' && req.user && (
(tour.privacy === 'member' && req.user && req.user._id && (
tour.sharedWith.some(u => u.toString() === req.user._id.toString()) ||
(userEmail && tour.sharedEmails.includes(userEmail))
));