feat: Add object-path support to OIDC attribute mapping

Closes #1359
This commit is contained in:
Maksim Eltyshev
2025-12-04 17:38:39 +01:00
parent b94759d399
commit f030b78f82
3 changed files with 6 additions and 13 deletions

View File

@@ -84,8 +84,8 @@ module.exports = {
}
}
const email = claims[sails.config.custom.oidcEmailAttribute];
const name = claims[sails.config.custom.oidcNameAttribute];
const email = _.get(claims, sails.config.custom.oidcEmailAttribute);
const name = _.get(claims, sails.config.custom.oidcNameAttribute);
if (!email || !name) {
throw 'missingValues';
@@ -93,7 +93,7 @@ module.exports = {
let role = User.Roles.BOARD_USER;
if (!sails.config.custom.oidcIgnoreRoles) {
const claimsRoles = claims[sails.config.custom.oidcRolesAttribute];
const claimsRoles = _.get(claims, sails.config.custom.oidcRolesAttribute);
if (Array.isArray(claimsRoles)) {
// Use a Set here to avoid quadratic time complexity
@@ -123,7 +123,7 @@ module.exports = {
isSsoUser: true,
};
if (!sails.config.custom.oidcIgnoreUsername) {
values.username = claims[sails.config.custom.oidcUsernameAttribute];
values.username = _.get(claims, sails.config.custom.oidcUsernameAttribute);
}
// This whole block technically needs to be executed in a transaction