diff options
author | Spencer Jackson <spencer.jackson@mongodb.com> | 2017-07-31 11:21:40 -0400 |
---|---|---|
committer | Spencer Jackson <spencer.jackson@mongodb.com> | 2017-07-31 13:59:59 -0400 |
commit | 0a801f1e152136be8cd0d7c57fda71555042cca1 (patch) | |
tree | 801ca92c11597ec06e30bbad285ba4d6cd0889f8 /src/mongo/db/auth/user_management_commands_parser.cpp | |
parent | 9096def9687739a40df79efe4e9e4d9b19215201 (diff) | |
download | mongo-0a801f1e152136be8cd0d7c57fda71555042cca1.tar.gz |
SERVER-29182: Add restriction support to the usersInfo command
Diffstat (limited to 'src/mongo/db/auth/user_management_commands_parser.cpp')
-rw-r--r-- | src/mongo/db/auth/user_management_commands_parser.cpp | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/mongo/db/auth/user_management_commands_parser.cpp b/src/mongo/db/auth/user_management_commands_parser.cpp index f1ab1f40735..ec10ce928f7 100644 --- a/src/mongo/db/auth/user_management_commands_parser.cpp +++ b/src/mongo/db/auth/user_management_commands_parser.cpp @@ -323,6 +323,7 @@ Status parseAndValidateDropAllUsersFromDatabaseCommand(const BSONObj& cmdObj, Status parseUsersInfoCommand(const BSONObj& cmdObj, StringData dbname, UsersInfoArgs* parsedArgs) { unordered_set<std::string> validFieldNames; validFieldNames.insert("usersInfo"); + validFieldNames.insert("showAuthenticationRestrictions"); validFieldNames.insert("showPrivileges"); validFieldNames.insert("showCredentials"); @@ -364,6 +365,20 @@ Status parseUsersInfoCommand(const BSONObj& cmdObj, StringData dbname, UsersInfo return status; } + const auto showAuthenticationRestrictions = cmdObj["showAuthenticationRestrictions"]; + if (showAuthenticationRestrictions.eoo()) { + parsedArgs->authenticationRestrictionsFormat = AuthenticationRestrictionsFormat::kOmit; + } else { + bool show; + status = bsonExtractBooleanField(cmdObj, "showAuthenticationRestrictions", &show); + if (!status.isOK()) { + return status; + } + parsedArgs->authenticationRestrictionsFormat = show + ? AuthenticationRestrictionsFormat::kShow + : AuthenticationRestrictionsFormat::kOmit; + } + return Status::OK(); } |