Added extra server permission to see all server events.
Ylian Saint-Hilaire committed
Aug 18, 2020 at 12:46 UTC
75fd54c34dee7d560bd4ad9c743a952487e6ed7e
3 files changed
+11
-3
meshuser.js
+1
@@ -63,6 +63,7 @@ module.exports.CreateMeshUser = function (parent, db, ws, req, args, domain, use
63
const SITERIGHT_USERGROUPS = 0x00000100;
64
const SITERIGHT_RECORDINGS = 0x00000200;
65
const SITERIGHT_LOCKSETTINGS = 0x00000400;
66
+ const SITERIGHT_ALLEVENTS = 0x00000800;
67
const SITERIGHT_ADMIN = 0xFFFFFFFF;
68
69
var obj = {};
views/default.handlebars
+7
@@ -11052,6 +11052,7 @@
11052
x += '<div id=d2MngUsr><label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_manageusers>' + "Manage Users" + '</label><br></div>';
11053
x += '<div id=d2MngGrp><label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_manageusergroups>' + "Manage User Groups" + '</label><br></div>';
11054
x += '<div id=d2MngRec><label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_managerecordings>' + "Manage Recordings" + '</label><br></div>';
11055
+ x += '<div id=d2AllEvnt><label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_allevents>' + "View All Events" + '</label><br></div>';
11056
if (x != '') { x += '<hr/>'; }
11057
x = '<div><div id=d2AdminPermissions>' + x;
11058
x += '<label><input type=checkbox onchange=showUserAdminDialogValidate() id=ua_lockedaccount>' + "Lock Account" + '</label><br>';
@@ -11083,6 +11084,10 @@
11084
Q('ua_managerecordings').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 512) != 0)); // Manage Recordings
11085
QE('ua_managerecordings', !uself && (userinfo.siteadmin & 512));
11086
}
11087
+ if ((userinfo.siteadmin & 2048) != 0) {
11088
+ Q('ua_allevents').checked = ((user.siteadmin != 0xFFFFFFFF) && ((user.siteadmin & 2048) != 0)); // View all events
11089
+ QE('ua_allevents', !uself && (userinfo.siteadmin & 2048));
11090
+ }
11091
11092
QE('ua_fulladmin', !uself && (userinfo.siteadmin == 0xFFFFFFFF));
11093
QE('ua_serverbackup', !uself && (userinfo.siteadmin == 0xFFFFFFFF));
@@ -11117,6 +11122,7 @@
11122
QE('ua_nomeshcmd', !Q('ua_fulladmin').checked);
11123
QE('ua_manageusergroups', !Q('ua_fulladmin').checked);
11124
QE('ua_managerecordings', !Q('ua_fulladmin').checked);
11125
+ QE('ua_allevents', !Q('ua_fulladmin').checked);
11126
QE('ua_locksettings', !Q('ua_fulladmin').checked);
11127
QE('ua_fileaccessquota', Q('ua_fileaccess').checked && !Q('ua_fulladmin').checked);
11128
}
@@ -11136,6 +11142,7 @@
11142
if (Q('ua_manageusergroups').checked == true) siteadmin += 256;
11143
if (Q('ua_managerecordings').checked == true) siteadmin += 512;
11144
if (Q('ua_locksettings').checked == true) siteadmin += 1024;
11145
+ if (Q('ua_allevents').checked == true) siteadmin += 2048;
11146
}
11147
var x = { action: 'edituser', id: user._id, siteadmin: siteadmin };
11148
if (isNaN(quota) == false) { x.quota = (quota * 1024); }
webserver.js
+3
-3
@@ -3193,9 +3193,9 @@ module.exports.CreateWebServer = function (parent, db, args, certificates) {
3193
const user = obj.users[userid];
3194
const subscriptions = [userid, 'server-global'];
3195
if (user.siteadmin != null) {
3196
- // Allow full site administrators and user managers to get all events.
3197
- if ((user.siteadmin == 0xFFFFFFFF) || ((user.siteadmin & 2) != 0)) subscriptions.push('*');
3198
- if ((user.siteadmin & 2) != 0) {
3196
+ // Allow full site administrators of users with all events rights to see all events.
3197
+ if ((user.siteadmin == 0xFFFFFFFF) || ((user.siteadmin & 2048) != 0)) { subscriptions.push('*'); }
3198
+ else if ((user.siteadmin & 2) != 0) {
3199
if ((user.groups == null) || (user.groups.length == 0)) {
3200
// Subscribe to all user changes
3201
subscriptions.push('server-users');