effectiveAssignments.js revision 9abe33608be5ecedc64fcc7727c885fd04ac5558
/**
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2014 ForgeRock AS. All rights reserved.
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*/
/**
* Calculates the effective assignments, based on the effective roles
*/
/*global object */
// Allow for configuration in virtual attribute config, but default
if (effectiveRolesPropName === undefined) {
var effectiveRolesPropName = "effectiveRoles";
}
var effectiveAssignments = {};
if (effectiveRoles != null) {
var roleId = effectiveRoles[i];
// Only try to retrieve role details for role ids in URL format
if (roleInfo != null) {
if (effectiveAssignments[assignmentName] == null) {
}
// Shallow merge of attributes operations if some already exist, e.g. "system":{"attributes":["x"]}
for (var assignmentPropName in assignment) {
// Include information on where the assignment comes from, to allow easier management and debugging
}
if (existingProp != null) {
effectiveAssignments[assignmentName][assignmentPropName] = effectiveAssignments[assignmentName][assignmentPropName].concat(assignmentProp);
} else {
}
}
}
} else {
}
} else {
logger.debug("Role does not point to a resource, will not try to retrieve assignment details for {}", roleId);
}
}
}