grantRolesToRole takes a grantedRoles argument, thusly:
{ grantRolesToRole: "productsReaderWriter", grantedRoles: [ { role: "productsReader", db: "products"} ], writeConcern: { w: "majority" , wtimeout: 5000 } }
But for 'grantPrivilegesToRole, the argument is not 'grantedPrivileges', but simply 'privileges'.
{ grantPrivilegesToRole: "<role>", privileges: [ { resource: { <resource> }, actions: [ "<action>", ... ] }, ... ], writeConcern: <write concern document> }
Similarly, revokeRolesFromRole has 'revokedRoles', but revokePrivelegesFromRole has just 'privileges'