Release v2.2.0

This commit is contained in:
2026-08-01 21:41:44 +01:00
parent c643d2fb07
commit d6417b667c
673 changed files with 146752 additions and 7389 deletions
+34 -2
View File
@@ -1,3 +1,5 @@
// Permission section definitions and normalization helpers for RBAC.
const PERMISSION_SECTIONS = [
{
key: 'dashboard',
@@ -31,6 +33,18 @@ const PERMISSION_SECTIONS = [
{ key: 'delete', name: 'Delete', description: 'Delete screens.' }
]
},
{
key: 'announcements',
order: 35,
name: 'Announcements',
sectionName: 'Content',
actions: [
{ key: 'read', name: 'Read', description: 'View announcements.' },
{ key: 'create', name: 'Create', description: 'Create new announcements.' },
{ key: 'update', name: 'Update', description: 'Update announcements.' },
{ key: 'delete', name: 'Delete', description: 'Delete announcements.' }
]
},
{
key: 'playlists',
order: 40,
@@ -103,6 +117,17 @@ const PERMISSION_SECTIONS = [
{ key: 'delete', name: 'Delete', description: 'Delete API sources.' }
]
},
{
key: 'fonts',
order: 95,
name: 'Fonts',
sectionName: 'Settings',
actions: [
{ key: 'read', name: 'Read', description: 'View managed fonts.' },
{ key: 'create', name: 'Create', description: 'Upload managed fonts.' },
{ key: 'delete', name: 'Delete', description: 'Remove managed fonts.' }
]
},
{
key: 'background-tasks',
order: 100,
@@ -236,15 +261,22 @@ function hasAnyPermission(currentUser, permissionKeys) {
});
}
function requirePermission(permissionKey) {
function requirePermission(permissionKey, options) {
const normalizedPermissionKey = normalizePermissionKey(permissionKey);
if (!normalizedPermissionKey) {
throw new Error('requirePermission requires a permission key.');
}
const setAuthMessageCookie = options && options.setAuthMessageCookie;
return function (req, res, next) {
if (!req.currentUser) {
return res.redirect('/login?message=' + encodeURIComponent('Please sign in to continue.'));
if (typeof setAuthMessageCookie === 'function') {
setAuthMessageCookie(res, 'Please sign in to continue.');
return res.redirect('/login');
}
return res.redirect('/login');
}
if (hasPermission(req.currentUser, normalizedPermissionKey)) {