Release v2.2.0
This commit is contained in:
@@ -0,0 +1,194 @@
|
||||
// Compose the primary web route registrations.
|
||||
|
||||
const registerAuthRoutes = require('./auth');
|
||||
const registerPagesRoutes = require('./admin/pages');
|
||||
const registerAccountRoutes = require('./admin/account');
|
||||
const registerUsersRoutes = require('./admin/users');
|
||||
const registerManageRoutes = require('./admin/manage');
|
||||
const registerScreenCommandRoutes = require('./admin/client-commands');
|
||||
const registerAnnouncementRoutes = require('./signage/announcements/routes');
|
||||
const registerContentRoutes = require('./admin/content');
|
||||
const registerDataSourceRoutes = require('./admin/data-sources');
|
||||
const registerSettingsRoutes = require('./settings/background-tasks');
|
||||
const registerFontRoutes = require('./settings/fonts');
|
||||
const { PERMISSIONS, normalizePermissionKeys } = require('#src/rbac');
|
||||
|
||||
function registerRoutes(app, deps) {
|
||||
// Group routes by the dependency bundle they need.
|
||||
registerAuthAndAccountRoutes(app, deps);
|
||||
registerSignageRoutes(app, deps);
|
||||
registerSettingsAndContentRoutes(app, deps);
|
||||
}
|
||||
|
||||
function registerAuthAndAccountRoutes(app, deps) {
|
||||
// Auth, profile, and user management routes share the same session helpers.
|
||||
registerAuthRoutes(app, {
|
||||
pool: deps.pool,
|
||||
pages: deps.pages,
|
||||
createUserSession: deps.createUserSession,
|
||||
setSessionCookie: deps.setSessionCookie,
|
||||
clearSessionCookie: deps.clearSessionCookie,
|
||||
setAuthMessageCookie: deps.setAuthMessageCookie,
|
||||
consumeAuthMessageCookie: deps.consumeAuthMessageCookie,
|
||||
parseCookies: deps.parseCookies,
|
||||
hashSessionToken: deps.hashSessionToken,
|
||||
verifyPassword: deps.verifyPassword,
|
||||
sessionCookieName: deps.sessionCookieName
|
||||
});
|
||||
|
||||
registerPagesRoutes(app, {
|
||||
pool: deps.pool,
|
||||
common: deps.common,
|
||||
pages: deps.pages,
|
||||
requirePermission: deps.requirePermission,
|
||||
buildDashboardState: deps.buildDashboardState,
|
||||
fetchScreensByPlaylistId: deps.fetchScreensByPlaylistId,
|
||||
getScreenDeleteBlockMessage: deps.playerActionService.getScreenDeleteBlockMessage,
|
||||
getScreenConnections: deps.playerActionService.getScreenConnections
|
||||
});
|
||||
|
||||
registerAccountRoutes(app, {
|
||||
pool: deps.pool,
|
||||
common: deps.common,
|
||||
pages: deps.pages,
|
||||
formatDashboardDate: deps.formatDashboardDate,
|
||||
getAuditUserId: deps.getAuditUserId,
|
||||
verifyPassword: deps.verifyPassword,
|
||||
hashPassword: deps.hashPassword,
|
||||
createUserSession: deps.createUserSession,
|
||||
setSessionCookie: deps.setSessionCookie
|
||||
});
|
||||
|
||||
registerUsersRoutes(app, {
|
||||
pool: deps.pool,
|
||||
common: deps.common,
|
||||
pages: deps.pages,
|
||||
formatDashboardDate: deps.formatDashboardDate,
|
||||
getAuditUserId: deps.getAuditUserId,
|
||||
hashPassword: deps.hashPassword,
|
||||
readArrayField: deps.readArrayField,
|
||||
rbacData: deps.rbacData,
|
||||
requirePermission: deps.requirePermission
|
||||
});
|
||||
}
|
||||
|
||||
function registerSignageRoutes(app, deps) {
|
||||
// Screen, playlist, and command routes share the player-facing wiring.
|
||||
registerManageRoutes(app, {
|
||||
pool: deps.pool,
|
||||
common: deps.common,
|
||||
pages: deps.pages,
|
||||
fetchOrderedPlaylistSlides: deps.fetchOrderedPlaylistSlides,
|
||||
fetchScreensByPlaylistId: deps.fetchScreensByPlaylistId,
|
||||
fetchPlaylistCanvasSignature: deps.fetchPlaylistCanvasSignature,
|
||||
getCanvasSignature: deps.getCanvasSignature,
|
||||
normalizeScheduleMode: deps.normalizeScheduleMode,
|
||||
parseDateTimeLocal: deps.parseDateTimeLocal,
|
||||
parseTimeLocal: deps.parseTimeLocal,
|
||||
readArrayField: deps.readArrayField,
|
||||
getAuditUserId: deps.getAuditUserId,
|
||||
redirectAfterSave: deps.redirectAfterSave,
|
||||
notifyPlayerScreens: deps.notifyPlayerScreens,
|
||||
broadcastDashboardState: deps.broadcastDashboardState,
|
||||
getScreenDeleteBlockMessage: deps.playerActionService.getScreenDeleteBlockMessage,
|
||||
getScreenConnections: deps.playerActionService.getScreenConnections,
|
||||
getPlaylistDeleteBlockMessage: deps.playerActionService.getPlaylistDeleteBlockMessage,
|
||||
forwardPlayerCommand: deps.playerActionService.forwardPlayerCommand,
|
||||
playerPublicBaseUrl: deps.playerPublicBaseUrl,
|
||||
requirePermission: deps.requirePermission
|
||||
});
|
||||
|
||||
registerAnnouncementRoutes(app, {
|
||||
pool: deps.pool,
|
||||
common: deps.common,
|
||||
pages: deps.pages,
|
||||
forwardAnnouncementRefresh: deps.playerActionService.forwardAnnouncementRefresh,
|
||||
getAuditUserId: deps.getAuditUserId,
|
||||
redirectAfterSave: deps.redirectAfterSave,
|
||||
requirePermission: deps.requirePermission
|
||||
});
|
||||
|
||||
registerScreenCommandRoutes(app, {
|
||||
pool: deps.pool,
|
||||
forwardPlayerCommand: deps.playerActionService.forwardPlayerCommand,
|
||||
getScreenConnections: deps.playerActionService.getScreenConnections,
|
||||
isClientNameAvailable: deps.isClientNameAvailable,
|
||||
withClientNameReservation: deps.withClientNameReservation,
|
||||
broadcastDashboardState: deps.broadcastDashboardState,
|
||||
requirePermission: deps.requirePermission
|
||||
});
|
||||
}
|
||||
|
||||
function registerSettingsAndContentRoutes(app, deps) {
|
||||
// Content, data-source, RBAC, and settings routes share the admin-side services.
|
||||
const registerRbacRoutes = require('./admin/rbac');
|
||||
|
||||
registerRbacRoutes(app, {
|
||||
pool: deps.pool,
|
||||
common: deps.common,
|
||||
pages: deps.pages,
|
||||
getAuditUserId: deps.getAuditUserId,
|
||||
rbacData: deps.rbacData,
|
||||
readArrayField: deps.readArrayField,
|
||||
permissions: PERMISSIONS,
|
||||
normalizePermissionKeys: normalizePermissionKeys,
|
||||
requirePermission: deps.requirePermission
|
||||
});
|
||||
|
||||
registerContentRoutes(app, {
|
||||
pool: deps.pool,
|
||||
common: deps.common,
|
||||
pages: deps.pages,
|
||||
upload: deps.upload,
|
||||
uploadDir: deps.uploadDir,
|
||||
fetchScreensBySlideId: deps.fetchScreensBySlideId,
|
||||
fetchScreensByTemplateId: deps.fetchScreensByTemplateId,
|
||||
collectUploadReferencesFromSlide: deps.collectUploadReferencesFromSlide,
|
||||
collectUploadReferencesFromTemplate: deps.collectUploadReferencesFromTemplate,
|
||||
collectUploadReferencesFromPayload: deps.collectUploadReferencesFromPayload,
|
||||
removeUnusedUploadFiles: deps.removeUnusedUploadFiles,
|
||||
syncPlaylistUploadsOnChange: deps.syncPlaylistUploadsOnChange,
|
||||
getAuditUserId: deps.getAuditUserId,
|
||||
redirectAfterSave: deps.redirectAfterSave,
|
||||
notifyPlayerScreens: deps.notifyPlayerScreens,
|
||||
broadcastDashboardState: deps.broadcastDashboardState,
|
||||
backgroundTaskQueue: deps.backgroundTaskQueue,
|
||||
hasAnyPermission: deps.hasAnyPermission,
|
||||
setAuthMessageCookie: deps.setAuthMessageCookie,
|
||||
getSlideDeleteBlockMessage: deps.playerActionService.getSlideDeleteBlockMessage,
|
||||
getTemplateDeleteBlockMessage: deps.playerActionService.getTemplateDeleteBlockMessage,
|
||||
getCanvasSizeDeleteBlockMessage: deps.playerActionService.getCanvasSizeDeleteBlockMessage,
|
||||
requirePermission: deps.requirePermission
|
||||
});
|
||||
|
||||
registerDataSourceRoutes(app, {
|
||||
pool: deps.pool,
|
||||
common: deps.common,
|
||||
pages: deps.pages,
|
||||
formatDashboardDate: deps.formatDashboardDate,
|
||||
getAuditUserId: deps.getAuditUserId,
|
||||
redirectAfterSave: deps.redirectAfterSave,
|
||||
backgroundTaskQueue: deps.backgroundTaskQueue,
|
||||
dataSourceTasks: deps.dataSourceTasks,
|
||||
setAuthMessageCookie: deps.setAuthMessageCookie,
|
||||
requirePermission: deps.requirePermission
|
||||
});
|
||||
|
||||
registerSettingsRoutes(app, {
|
||||
pages: deps.pages,
|
||||
backgroundTaskQueue: deps.backgroundTaskQueue,
|
||||
setAuthMessageCookie: deps.setAuthMessageCookie
|
||||
});
|
||||
|
||||
registerFontRoutes(app, {
|
||||
pool: deps.pool,
|
||||
pages: deps.pages,
|
||||
upload: deps.upload,
|
||||
uploadDir: deps.uploadDir,
|
||||
backgroundTaskQueue: deps.backgroundTaskQueue,
|
||||
setAuthMessageCookie: deps.setAuthMessageCookie,
|
||||
requirePermission: deps.requirePermission
|
||||
});
|
||||
}
|
||||
|
||||
module.exports = { registerRoutes };
|
||||
Reference in New Issue
Block a user