Fix checking sub property before parent property

fixes bug 4520

mstrhakr committed Sep 7, 2022 at 10:31 UTC b0ec3af9bb18ecea89773d52c5390bd75afc3ac7
1 file changed +14 -12
webserver.js
+14 -12
@@ -2673,19 +2673,21 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
2673 if ((req.user.name != null) && (req.user.name != user.name)) { user.name = req.user.name; userChanged = true; }
2674 if ((req.user.email != null) && (req.user.email != user.email)) { user.email = req.user.email; user.emailVerified = true; userChanged = true; }
2675
2676 - // Sync the user groups if enabled
2677 - if (domain.authstrategies[authStrategy].groups.sync.enabled === true) { syncExternalUserGroups(domain, user, userMemberships, authStrategy) }
2676 + if (typeof domain.authstrategies[authStrategy].groups == 'object') {
2677 + // Sync the user groups if enabled
2678 + if ((typeof domain.authstrategies[authStrategy].groups.sync == 'object') && (domain.authstrategies[authStrategy].groups.sync.enabled === true)) { syncExternalUserGroups(domain, user, userMemberships, authStrategy) }
2679
2679 - // See if the user is a member of the site admin group.
2680 - if ((typeof domain.authstrategies[authStrategy].groups.siteadmin !== 'undefined') && (domain.authstrategies[authStrategy].groups.siteadmin !== null)) {
2681 - if ((typeof siteAdminGroup === 'string') && (user.siteadmin !== 0xFFFFFFFF)) {
2682 - parent.debug('authlog', `${authStrategy.toUpperCase()}: Granting site admin privilages to user "${user.name}" found in administrator group: ${siteAdminGroup}`);
2683 - user.siteadmin = 0xFFFFFFFF;
2684 - userChanged = true;
2685 - } else if ((siteAdminGroup === false) && (user.siteadmin === 0xFFFFFFFF)) {
2686 - parent.debug('authlog', `${authStrategy.toUpperCase()}: Revoking site admin privilages from user "${user.name}" since they are not found in any administrator groups.`);
2687 - delete user.siteadmin;
2688 - userChanged = true;
2680 + // See if the user is a member of the site admin group.
2681 + if ((typeof domain.authstrategies[authStrategy].groups.siteadmin !== 'undefined') && (domain.authstrategies[authStrategy].groups.siteadmin !== null)) {
2682 + if ((typeof siteAdminGroup === 'string') && (user.siteadmin !== 0xFFFFFFFF)) {
2683 + parent.debug('authlog', `${authStrategy.toUpperCase()}: Granting site admin privilages to user "${user.name}" found in administrator group: ${siteAdminGroup}`);
2684 + user.siteadmin = 0xFFFFFFFF;
2685 + userChanged = true;
2686 + } else if ((siteAdminGroup === false) && (user.siteadmin === 0xFFFFFFFF)) {
2687 + parent.debug('authlog', `${authStrategy.toUpperCase()}: Revoking site admin privilages from user "${user.name}" since they are not found in any administrator groups.`);
2688 + delete user.siteadmin;
2689 + userChanged = true;
2690 + }
2691 }
2692 }
2693