/**
* 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.
*
* In the case of a reconciliation run, the assignments and roles will be pre-loaded into the ReconContext. This script
* will first attempt to find the roles and assignments in the ReconContext and if they are not found will issue a read.
*/
/*global object */
var effectiveAssignments = [],
// Allow for configuration in virtual attribute config, but default
if (effectiveRolesPropName === undefined) {
var effectiveRolesPropName = "effectiveRoles";
}
/**
* Returns a managed role object representing the supplied role id.
*
* If the ReconContext is present it will use the stored values for roles, otherwise it will issue a read request.
*
* @param roleId the id of the managed role
* @returns a managed role object
*/
// First check if roles were loaded in the context (in case of recon)
if (roles != null) {
return role;
}
}
}
}
/**
* Returns a managed assignment object representing the supplied assignment id.
*
* If the ReconContext is present it will use the stored values for assignments, otherwise it will issue a read request.
*
* @param assignmentId the id of the managed assignment
* @returns a managed assignment object
*/
// First check if assignments were loaded in the context (in case of recon)
if (assignments != null) {
for (var index in assignments) {
return assignment;
}
}
}
}
if (effectiveRoles != null) {
var assignmentMap = {};
var roleId = effectiveRoles[i];
// Only try to retrieve role details for role ids in URL format
if (roleRelationship != null) {
if (assignment !== null) {
}
}
} else {
}
} else {
logger.debug("Role does not point to a resource, will not try to retrieve assignment details for {}", roleId);
}
}
}
// Add all assignments to the effectiveAssignments array
for (var assignment in assignmentMap) {
}