summaryrefslogtreecommitdiff
path: root/src/mongo/db/auth/user_management_commands_parser.cpp
diff options
context:
space:
mode:
authorSpencer Jackson <spencer.jackson@mongodb.com>2017-07-31 11:21:40 -0400
committerSpencer Jackson <spencer.jackson@mongodb.com>2017-07-31 13:59:59 -0400
commit0a801f1e152136be8cd0d7c57fda71555042cca1 (patch)
tree801ca92c11597ec06e30bbad285ba4d6cd0889f8 /src/mongo/db/auth/user_management_commands_parser.cpp
parent9096def9687739a40df79efe4e9e4d9b19215201 (diff)
downloadmongo-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.cpp15
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();
}