Fix general settings route and req.user references

- Update frontend settings service to use correct /api/admin/settings/general route
- Fix all req.user to req.admin references in adminSettings.js
- Ensures settings can be saved without authentication errors
This commit is contained in:
2025-07-07 15:32:42 +02:00
parent f0768cd31b
commit 971397c338
20 changed files with 716 additions and 127 deletions
+47 -7
View File
@@ -30,23 +30,63 @@ async function verifyGalleryAccess(req, res, next) {
}
}
// Get gallery info
router.get('/:slug/info', async (req, res) => {
// Verify share token
router.get('/:slug/verify-token/:token', async (req, res) => {
try {
const { slug } = req.params;
const { slug, token } = req.params;
const event = await db('events')
.where({ slug })
.select('event_name', 'event_type', 'event_date', 'expires_at', 'is_active')
.where({ slug, is_active: true })
.select('id', 'share_link')
.first();
if (!event) {
return res.status(404).json({ error: 'Gallery not found' });
}
// Extract token from share link and verify
const expectedToken = event.share_link.split('/').pop();
if (token !== expectedToken) {
return res.status(404).json({ error: 'Invalid gallery link' });
}
res.json({ valid: true });
} catch (error) {
res.status(500).json({ error: 'Failed to verify token' });
}
});
// Get gallery info (with optional token verification)
router.get('/:slug/info', async (req, res) => {
try {
const { slug } = req.params;
const { token } = req.query;
const event = await db('events')
.where({ slug })
.select('event_name', 'event_type', 'event_date', 'expires_at', 'is_active', 'share_link')
.first();
if (!event) {
return res.status(404).json({ error: 'Gallery not found' });
}
// If token provided, verify it matches the share link
if (token) {
const expectedToken = event.share_link.split('/').pop();
if (token !== expectedToken) {
return res.status(404).json({ error: 'Invalid gallery link' });
}
}
res.json({
...event,
is_expired: !event.is_active || new Date(event.expires_at) < new Date()
event_name: event.event_name,
event_type: event.event_type,
event_date: event.event_date,
expires_at: event.expires_at,
is_active: event.is_active,
is_expired: !event.is_active || new Date(event.expires_at) < new Date(),
requires_password: true
});
} catch (error) {
res.status(500).json({ error: 'Failed to fetch gallery info' });