summaryrefslogtreecommitdiff
path: root/src/mongo/db/commands/user_management_commands.cpp
diff options
context:
space:
mode:
authorJonathan Reams <jbreams@mongodb.com>2018-06-29 12:35:20 -0400
committerJonathan Reams <jbreams@mongodb.com>2018-08-01 12:56:36 -0400
commit2c504892ae516f56dc127dee1146baf894a5fc59 (patch)
tree5bf4235aa14d748e29d2abac6535a5618ad200fd /src/mongo/db/commands/user_management_commands.cpp
parentf263446414cfdcc0e0caf24e7f61a058faf382ef (diff)
downloadmongo-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.cpp10
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();
}