summaryrefslogtreecommitdiff
path: root/jstests/auth/system_roles_collMod.js
blob: c82a8d8b8b1aaf77c24dcf3841ce6182756edeb2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// Verify custom roles still exist after noop collMod calls

(function() {
    'use strict';
    print("START auth-system-roles-collMod.js");
    TestData.roleGraphInvalidationIsFatal = false;
    var conn = MongoRunner.runMongod({});
    var db = conn.getDB("test");

    assert.commandWorked(db.runCommand(
        {createRole: "role1", roles: [{role: "readWrite", db: "test"}], privileges: []}));
    assert(db.runCommand({rolesInfo: "role1"}).roles[0].role === "role1");

    // RoleGraph not invalidated after empty collMod
    assert.commandWorked(db.adminCommand({collMod: "system.roles"}));
    assert(db.runCommand({rolesInfo: "role1"}).roles[0].role === "role1");

    // RoleGraph invalidated after non-empty collMod
    assert.commandWorked(db.adminCommand({collMod: "system.roles", validationLevel: "off"}));
    assert(db.runCommand({rolesInfo: "role1"}).roles.length === 0);

    print("SUCCESS auth-system-roles-collMod.js");
    MongoRunner.stopMongod(conn);
})();