diff options
author | Jonathan Reams <jbreams@mongodb.com> | 2018-06-29 12:35:20 -0400 |
---|---|---|
committer | Jonathan Reams <jbreams@mongodb.com> | 2018-08-01 12:56:36 -0400 |
commit | 2c504892ae516f56dc127dee1146baf894a5fc59 (patch) | |
tree | 5bf4235aa14d748e29d2abac6535a5618ad200fd /src/mongo/db/commands/user_management_commands.cpp | |
parent | f263446414cfdcc0e0caf24e7f61a058faf382ef (diff) | |
download | mongo-2c504892ae516f56dc127dee1146baf894a5fc59.tar.gz |
SERVER-35890 refactor User cache into InvalidatingLRUCache and UserHandle
Diffstat (limited to 'src/mongo/db/commands/user_management_commands.cpp')
-rw-r--r-- | src/mongo/db/commands/user_management_commands.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mongo/db/commands/user_management_commands.cpp b/src/mongo/db/commands/user_management_commands.cpp index 82823e3cfcc..2fca9a9973f 100644 --- a/src/mongo/db/commands/user_management_commands.cpp +++ b/src/mongo/db/commands/user_management_commands.cpp @@ -147,17 +147,17 @@ Status getCurrentUserRoles(OperationContext* opCtx, AuthorizationManager* authzManager, const UserName& userName, stdx::unordered_set<RoleName>* roles) { - User* user; authzManager->invalidateUserByName(userName); // Need to make sure cache entry is up to date - Status status = authzManager->acquireUser(opCtx, userName, &user); - if (!status.isOK()) { - return status; + auto swUser = authzManager->acquireUser(opCtx, userName); + if (!swUser.isOK()) { + return swUser.getStatus(); } + auto user = std::move(swUser.getValue()); + RoleNameIterator rolesIt = user->getRoles(); while (rolesIt.more()) { roles->insert(rolesIt.next()); } - authzManager->releaseUser(user); return Status::OK(); } |