fix(slideshow): read globals from app_settings, not the missing settings table
slideshowSettings used settingsService.getSetting, which queries db('settings')
- a table that does not exist in this app (globals live in app_settings). Every
GET /gallery/:slug/show/:token/session and /state therefore threw and returned
500 INTERNAL_ERROR once a valid token resolved. Switch to getAppSetting
(utils/appSettings), which reads app_settings where the slideshow_watermark_*
and branding_* values are actually written.
This commit is contained in:
@@ -26,7 +26,9 @@ const {
|
|||||||
const { buildContentDisposition } = require('../utils/filenameSanitizer');
|
const { buildContentDisposition } = require('../utils/filenameSanitizer');
|
||||||
const { getStorage } = require('../services/storage');
|
const { getStorage } = require('../services/storage');
|
||||||
const { setGalleryAuthCookies } = require('../utils/tokenUtils');
|
const { setGalleryAuthCookies } = require('../utils/tokenUtils');
|
||||||
const { getSetting } = require('../services/settingsService');
|
// Read globals from app_settings (the real table) — settingsService.getSetting
|
||||||
|
// queries a non-existent `settings` table and throws.
|
||||||
|
const { getAppSetting } = require('../utils/appSettings');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
|
|
||||||
// Get storage path from environment or default
|
// Get storage path from environment or default
|
||||||
@@ -268,21 +270,21 @@ async function slideshowSettings(event) {
|
|||||||
const wm = event.show_watermark;
|
const wm = event.show_watermark;
|
||||||
const inherit = (wm === null || wm === undefined);
|
const inherit = (wm === null || wm === undefined);
|
||||||
const enabled = inherit
|
const enabled = inherit
|
||||||
? (await getSetting('slideshow_watermark_enabled', false)) === true
|
? (await getAppSetting('slideshow_watermark_enabled', false)) === true
|
||||||
: (wm === true || wm === 1 || wm === '1');
|
: (wm === true || wm === 1 || wm === '1');
|
||||||
let watermark = null;
|
let watermark = null;
|
||||||
if (enabled) {
|
if (enabled) {
|
||||||
const source = inherit
|
const source = inherit
|
||||||
? (await getSetting('slideshow_watermark_source', 'logo'))
|
? (await getAppSetting('slideshow_watermark_source', 'logo'))
|
||||||
: (event.show_watermark_source || 'logo');
|
: (event.show_watermark_source || 'logo');
|
||||||
const position = inherit
|
const position = inherit
|
||||||
? (await getSetting('slideshow_watermark_position', 'bottom-right'))
|
? (await getAppSetting('slideshow_watermark_position', 'bottom-right'))
|
||||||
: (event.show_watermark_position || 'bottom-right');
|
: (event.show_watermark_position || 'bottom-right');
|
||||||
const opacity = inherit
|
const opacity = inherit
|
||||||
? (await getSetting('slideshow_watermark_opacity', 60))
|
? (await getAppSetting('slideshow_watermark_opacity', 60))
|
||||||
: (event.show_watermark_opacity ?? 60);
|
: (event.show_watermark_opacity ?? 60);
|
||||||
const style = inherit
|
const style = inherit
|
||||||
? (await getSetting('slideshow_watermark_style', 'white'))
|
? (await getAppSetting('slideshow_watermark_style', 'white'))
|
||||||
: (event.show_watermark_style || 'white');
|
: (event.show_watermark_style || 'white');
|
||||||
// Resolve the chosen logo to a URL. Branding assets come from settings;
|
// Resolve the chosen logo to a URL. Branding assets come from settings;
|
||||||
// the event source uses the event's own hero logo.
|
// the event source uses the event's own hero logo.
|
||||||
@@ -290,11 +292,11 @@ async function slideshowSettings(event) {
|
|||||||
if (source === 'event') {
|
if (source === 'event') {
|
||||||
url = event.hero_logo_url || null;
|
url = event.hero_logo_url || null;
|
||||||
} else if (source === 'logo_dark') {
|
} else if (source === 'logo_dark') {
|
||||||
url = await getSetting('branding_logo_url_dark', null);
|
url = await getAppSetting('branding_logo_url_dark', null);
|
||||||
} else if (source === 'favicon') {
|
} else if (source === 'favicon') {
|
||||||
url = await getSetting('branding_favicon_url', null);
|
url = await getAppSetting('branding_favicon_url', null);
|
||||||
} else {
|
} else {
|
||||||
url = await getSetting('branding_logo_url', null);
|
url = await getAppSetting('branding_logo_url', null);
|
||||||
}
|
}
|
||||||
if (url) {
|
if (url) {
|
||||||
watermark = { url, position: position || 'bottom-right', opacity: opacity ?? 60, style: style || 'white' };
|
watermark = { url, position: position || 'bottom-right', opacity: opacity ?? 60, style: style || 'white' };
|
||||||
|
|||||||
Reference in New Issue
Block a user