Fix for azure groups and roles sync

Marcin committed Apr 22, 2026 at 18:02 UTC 6a1b5745dd1bfbb9e2890c9e05f1590b14f4bbff
1 file changed +13 -13
webserver.js
+13 -13
@@ -8501,26 +8501,26 @@ module.exports.CreateWebServer = function (parent, db, args, certificates, doneF
8501 if((Array.isArray(strategy.custom.authorities) && strategy.custom.authorities.filter(x => x.trim().length > 0).length > 0) == false || strategy.custom.authorities.includes('groups')) {
8502 getGroups(user.preset, tokenset).then((groups) => {
8503 user = Object.assign(user, { 'groups': groups });
8504 - //done(null, user);
8504 +
8505 + if(strategy.custom.authorities.includes('roles')){
8506 + if(user.roles){
8507 + if(!strategy.custom.authorities.includes('groups')){
8508 + user.groups = user.roles;
8509 + } else {
8510 + user.groups = (user.groups || []).concat(user.roles);
8511 + }
8512 + }
8513 + }
8514 + parent.authLog('oidcCallback',`OIDC: USER GROUPS/ROLES: ${JSON.stringify(user)}`);
8515 + done(null, user);
8516 }).catch((err) => {
8517 let error = new Error('OIDC: GROUPS: No groups found due to error:', { cause: err });
8518 parent.debug('error', `${JSON.stringify(error)}`);
8519 parent.authLog('oidcCallback', error.message);
8520 user.groups = [];
8510 - //done(null, user);
8521 + done(null, user);
8522 });
8523 }
8513 - if(strategy.custom.authorities.includes('roles')){
8514 - if(user.roles){
8515 - if(!strategy.custom.authorities.includes('groups')){
8516 - user.groups = user.roles;
8517 - } else {
8518 - user.groups = (user.groups || []).concat(user.roles);
8519 - }
8520 - }
8521 - }
8522 - parent.authLog('OIDC: USER GROUPS/ROLES:', user);
8523 - done(null, user);
8524 } else {
8525 done(null, user);
8526 }