in source/user-manager/cognito-user.js [876:922]
module.exports.addRoleToIdentity = function (identityPoolRoleParams) {
var promise = new Promise(function(resolve, reject) {
var cognitoidentity = new AWS.CognitoIdentity({apiVersion: '2014-06-30', region: configuration.aws_region});
var policyDoc = JSON.stringify(identityPoolRoleParams.policyDocument);
var providerName = 'cognito-idp.' + configuration.cognito_region + '.amazonaws.com/' + identityPoolRoleParams.provider + ':' + identityPoolRoleParams.ClientId;
var params = {
IdentityPoolId: identityPoolRoleParams.IdentityPoolId, /* required */
Roles: {
/* required */
authenticated: identityPoolRoleParams.trustAuthRole
},
RoleMappings: {
Provider: {
Type: 'Rules', /* required */
AmbiguousRoleResolution: 'Deny',
RulesConfiguration: {
Rules: [/* required */
{
Claim: 'custom:role', /* required */
MatchType: 'Equals', /* required */
RoleARN: identityPoolRoleParams.rolesystem, /* required */
Value: identityPoolRoleParams.adminRoleName /* required */
},
{
Claim: 'custom:role', /* required */
MatchType: 'Equals', /* required */
RoleARN: identityPoolRoleParams.rolesupportOnly, /* required */
Value: identityPoolRoleParams.userRoleName /* required */
},
]
}
}
}
};
params = JSON.parse(JSON.stringify(params).split('Provider').join(providerName));
cognitoidentity.setIdentityPoolRoles(params, function (err, data) {
if (err) {
reject(err);
} else {
resolve(data);
}
});
});
return promise;
};