module.exports.addRoleToIdentity = function()

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;
};