summaryrefslogtreecommitdiff
path: root/src/mongo/db/auth/user_management_commands_parser.h
diff options
context:
space:
mode:
authorMark Benvenuto <mark.benvenuto@mongodb.com>2015-06-20 00:22:50 -0400
committerMark Benvenuto <mark.benvenuto@mongodb.com>2015-06-20 10:56:02 -0400
commit9c2ed42daa8fbbef4a919c21ec564e2db55e8d60 (patch)
tree3814f79c10d7b490948d8cb7b112ac1dd41ceff1 /src/mongo/db/auth/user_management_commands_parser.h
parent01965cf52bce6976637ecb8f4a622aeb05ab256a (diff)
downloadmongo-9c2ed42daa8fbbef4a919c21ec564e2db55e8d60.tar.gz
SERVER-18579: Clang-Format - reformat code, no comment reflow
Diffstat (limited to 'src/mongo/db/auth/user_management_commands_parser.h')
-rw-r--r--src/mongo/db/auth/user_management_commands_parser.h369
1 files changed, 182 insertions, 187 deletions
diff --git a/src/mongo/db/auth/user_management_commands_parser.h b/src/mongo/db/auth/user_management_commands_parser.h
index 68ef26ce894..c55210e8978 100644
--- a/src/mongo/db/auth/user_management_commands_parser.h
+++ b/src/mongo/db/auth/user_management_commands_parser.h
@@ -43,190 +43,185 @@
namespace mongo {
namespace auth {
- struct CreateOrUpdateUserArgs {
- UserName userName;
- bool hasHashedPassword;
- std::string hashedPassword;
- bool hasCustomData;
- BSONObj customData;
- bool hasRoles;
- std::vector<RoleName> roles;
- BSONObj writeConcern;
-
- CreateOrUpdateUserArgs() :
- hasHashedPassword(false), hasCustomData(false), hasRoles(false) {}
- };
-
- /**
- * Takes a command object describing an invocation of the "createUser" or "updateUser" commands
- * (which command it is is specified in "cmdName") on the database "dbname", and parses out all
- * the arguments into the "parsedArgs" output param.
- */
- Status parseCreateOrUpdateUserCommands(const BSONObj& cmdObj,
- StringData cmdName,
- const std::string& dbname,
- CreateOrUpdateUserArgs* parsedArgs);
-
- /**
- * Takes a command object describing an invocation of one of "grantRolesToUser",
- * "revokeRolesFromUser", "grantDelegateRolesToUser", "revokeDelegateRolesFromUser",
- * "grantRolesToRole", and "revokeRolesFromRoles" (which command it is is specified in the
- * "cmdName" argument), and parses out (into the parsedName out param) the user/role name of
- * the user/roles being modified, the roles being granted or revoked, and the write concern to
- * use.
- */
- Status parseRolePossessionManipulationCommands(const BSONObj& cmdObj,
- StringData cmdName,
- const std::string& dbname,
- std::string* parsedName,
- std::vector<RoleName>* parsedRoleNames,
- BSONObj* parsedWriteConcern);
-
- /**
- * Takes a command object describing an invocation of the "dropUser" command and parses out
- * the UserName of the user to be removed and the writeConcern.
- * Also validates the input and returns a non-ok Status if there is anything wrong.
- */
- Status parseAndValidateDropUserCommand(const BSONObj& cmdObj,
- const std::string& dbname,
- UserName* parsedUserName,
- BSONObj* parsedWriteConcern);
-
- /**
- * Takes a command object describing an invocation of the "dropAllUsersFromDatabase" command and
- * parses out the write concern.
- * Also validates the input and returns a non-ok Status if there is anything wrong.
- */
- Status parseAndValidateDropAllUsersFromDatabaseCommand(const BSONObj& cmdObj,
- const std::string& dbname,
- BSONObj* parsedWriteConcern);
-
- struct UsersInfoArgs {
- std::vector<UserName> userNames;
- bool allForDB;
- bool showPrivileges;
- bool showCredentials;
- UsersInfoArgs() : allForDB(false), showPrivileges(false), showCredentials(false) {}
- };
-
- /**
- * Takes a command object describing an invocation of the "usersInfo" command and parses out
- * all the arguments into the "parsedArgs" output param.
- */
- Status parseUsersInfoCommand(const BSONObj& cmdObj,
- StringData dbname,
- UsersInfoArgs* parsedArgs);
-
- struct RolesInfoArgs {
- std::vector<RoleName> roleNames;
- bool allForDB;
- bool showPrivileges;
- bool showBuiltinRoles;
- RolesInfoArgs() : allForDB(false), showPrivileges(false), showBuiltinRoles(false) {}
- };
-
- /**
- * Takes a command object describing an invocation of the "rolesInfo" command and parses out
- * the arguments into the "parsedArgs" output param.
- */
- Status parseRolesInfoCommand(const BSONObj& cmdObj,
- StringData dbname,
- RolesInfoArgs* parsedArgs);
-
- struct CreateOrUpdateRoleArgs {
- RoleName roleName;
- bool hasRoles;
- std::vector<RoleName> roles;
- bool hasPrivileges;
- PrivilegeVector privileges;
- BSONObj writeConcern;
- CreateOrUpdateRoleArgs() : hasRoles(false), hasPrivileges(false) {}
- };
-
- /**
- * Takes a command object describing an invocation of the "createRole" or "updateRole" commands
- * (which command it is is specified in "cmdName") on the database "dbname", and parses out all
- * the arguments into the "parsedArgs" output param.
- */
- Status parseCreateOrUpdateRoleCommands(const BSONObj& cmdObj,
- StringData cmdName,
- const std::string& dbname,
- CreateOrUpdateRoleArgs* parsedArgs);
-
- /**
- * Takes a command object describing an invocation of the "grantPrivilegesToRole" or
- * "revokePrivilegesFromRole" commands, and parses out the role name of the
- * role being modified, the privileges being granted or revoked, and the write concern to use.
- */
- Status parseAndValidateRolePrivilegeManipulationCommands(const BSONObj& cmdObj,
- StringData cmdName,
- const std::string& dbname,
- RoleName* parsedRoleName,
- PrivilegeVector* parsedPrivileges,
- BSONObj* parsedWriteConcern);
-
- /**
- * Takes a command object describing an invocation of the "dropRole" command and parses out
- * the RoleName of the role to be removed and the writeConcern.
- */
- Status parseDropRoleCommand(const BSONObj& cmdObj,
- const std::string& dbname,
- RoleName* parsedRoleName,
- BSONObj* parsedWriteConcern);
-
- /**
- * Takes a command object describing an invocation of the "dropAllRolesFromDatabase" command and
- * parses out the write concern.
- */
- Status parseDropAllRolesFromDatabaseCommand(const BSONObj& cmdObj,
- const std::string& dbname,
- BSONObj* parsedWriteConcern);
-
- /**
- * Parses the privileges described in "privileges" into a vector of Privilege objects.
- * Returns Status::OK() upon successfully parsing all the elements of "privileges".
- */
- Status parseAndValidatePrivilegeArray(const BSONArray& privileges,
- PrivilegeVector* parsedPrivileges);
-
- /**
- * Takes a BSONArray of name,db pair documents, parses that array and returns (via the
- * output param parsedRoleNames) a list of the role names in the input array.
- * Performs syntactic validation of "rolesArray", only.
- */
- Status parseRoleNamesFromBSONArray(const BSONArray& rolesArray,
- StringData dbname,
- std::vector<RoleName>* parsedRoleNames);
-
- /**
- * Takes a BSONArray of name,db pair documents, parses that array and returns (via the
- * output param parsedUserNames) a list of the usernames in the input array.
- * Performs syntactic validation of "usersArray", only.
- */
- Status parseUserNamesFromBSONArray(const BSONArray& usersArray,
- StringData dbname,
- std::vector<UserName>* parsedUserNames);
-
- struct MergeAuthzCollectionsArgs {
- std::string usersCollName;
- std::string rolesCollName;
- std::string db;
- bool drop;
- BSONObj writeConcern;
- MergeAuthzCollectionsArgs() : drop(false) {}
- };
-
- /**
- * Takes a command object describing an invocation of the "_mergeAuthzCollections" command and
- * parses out the name of the temporary collections to use for user and role data, whether or
- * not to drop the existing users/roles, the database if this is a for a db-specific restore,
- * and the writeConcern.
- * Returns ErrorCodes::OutdatedClient if the "db" field is missing, as that likely indicates
- * the command was sent by an outdated (pre 2.6.4) version of mongorestore.
- * Returns other codes indicating missing or incorrectly typed fields.
- */
- Status parseMergeAuthzCollectionsCommand(const BSONObj& cmdObj,
- MergeAuthzCollectionsArgs* parsedArgs);
-
-} // namespace auth
-} // namespace mongo
+struct CreateOrUpdateUserArgs {
+ UserName userName;
+ bool hasHashedPassword;
+ std::string hashedPassword;
+ bool hasCustomData;
+ BSONObj customData;
+ bool hasRoles;
+ std::vector<RoleName> roles;
+ BSONObj writeConcern;
+
+ CreateOrUpdateUserArgs() : hasHashedPassword(false), hasCustomData(false), hasRoles(false) {}
+};
+
+/**
+ * Takes a command object describing an invocation of the "createUser" or "updateUser" commands
+ * (which command it is is specified in "cmdName") on the database "dbname", and parses out all
+ * the arguments into the "parsedArgs" output param.
+ */
+Status parseCreateOrUpdateUserCommands(const BSONObj& cmdObj,
+ StringData cmdName,
+ const std::string& dbname,
+ CreateOrUpdateUserArgs* parsedArgs);
+
+/**
+ * Takes a command object describing an invocation of one of "grantRolesToUser",
+ * "revokeRolesFromUser", "grantDelegateRolesToUser", "revokeDelegateRolesFromUser",
+ * "grantRolesToRole", and "revokeRolesFromRoles" (which command it is is specified in the
+ * "cmdName" argument), and parses out (into the parsedName out param) the user/role name of
+ * the user/roles being modified, the roles being granted or revoked, and the write concern to
+ * use.
+ */
+Status parseRolePossessionManipulationCommands(const BSONObj& cmdObj,
+ StringData cmdName,
+ const std::string& dbname,
+ std::string* parsedName,
+ std::vector<RoleName>* parsedRoleNames,
+ BSONObj* parsedWriteConcern);
+
+/**
+ * Takes a command object describing an invocation of the "dropUser" command and parses out
+ * the UserName of the user to be removed and the writeConcern.
+ * Also validates the input and returns a non-ok Status if there is anything wrong.
+ */
+Status parseAndValidateDropUserCommand(const BSONObj& cmdObj,
+ const std::string& dbname,
+ UserName* parsedUserName,
+ BSONObj* parsedWriteConcern);
+
+/**
+ * Takes a command object describing an invocation of the "dropAllUsersFromDatabase" command and
+ * parses out the write concern.
+ * Also validates the input and returns a non-ok Status if there is anything wrong.
+ */
+Status parseAndValidateDropAllUsersFromDatabaseCommand(const BSONObj& cmdObj,
+ const std::string& dbname,
+ BSONObj* parsedWriteConcern);
+
+struct UsersInfoArgs {
+ std::vector<UserName> userNames;
+ bool allForDB;
+ bool showPrivileges;
+ bool showCredentials;
+ UsersInfoArgs() : allForDB(false), showPrivileges(false), showCredentials(false) {}
+};
+
+/**
+ * Takes a command object describing an invocation of the "usersInfo" command and parses out
+ * all the arguments into the "parsedArgs" output param.
+ */
+Status parseUsersInfoCommand(const BSONObj& cmdObj, StringData dbname, UsersInfoArgs* parsedArgs);
+
+struct RolesInfoArgs {
+ std::vector<RoleName> roleNames;
+ bool allForDB;
+ bool showPrivileges;
+ bool showBuiltinRoles;
+ RolesInfoArgs() : allForDB(false), showPrivileges(false), showBuiltinRoles(false) {}
+};
+
+/**
+ * Takes a command object describing an invocation of the "rolesInfo" command and parses out
+ * the arguments into the "parsedArgs" output param.
+ */
+Status parseRolesInfoCommand(const BSONObj& cmdObj, StringData dbname, RolesInfoArgs* parsedArgs);
+
+struct CreateOrUpdateRoleArgs {
+ RoleName roleName;
+ bool hasRoles;
+ std::vector<RoleName> roles;
+ bool hasPrivileges;
+ PrivilegeVector privileges;
+ BSONObj writeConcern;
+ CreateOrUpdateRoleArgs() : hasRoles(false), hasPrivileges(false) {}
+};
+
+/**
+ * Takes a command object describing an invocation of the "createRole" or "updateRole" commands
+ * (which command it is is specified in "cmdName") on the database "dbname", and parses out all
+ * the arguments into the "parsedArgs" output param.
+ */
+Status parseCreateOrUpdateRoleCommands(const BSONObj& cmdObj,
+ StringData cmdName,
+ const std::string& dbname,
+ CreateOrUpdateRoleArgs* parsedArgs);
+
+/**
+ * Takes a command object describing an invocation of the "grantPrivilegesToRole" or
+ * "revokePrivilegesFromRole" commands, and parses out the role name of the
+ * role being modified, the privileges being granted or revoked, and the write concern to use.
+ */
+Status parseAndValidateRolePrivilegeManipulationCommands(const BSONObj& cmdObj,
+ StringData cmdName,
+ const std::string& dbname,
+ RoleName* parsedRoleName,
+ PrivilegeVector* parsedPrivileges,
+ BSONObj* parsedWriteConcern);
+
+/**
+ * Takes a command object describing an invocation of the "dropRole" command and parses out
+ * the RoleName of the role to be removed and the writeConcern.
+ */
+Status parseDropRoleCommand(const BSONObj& cmdObj,
+ const std::string& dbname,
+ RoleName* parsedRoleName,
+ BSONObj* parsedWriteConcern);
+
+/**
+ * Takes a command object describing an invocation of the "dropAllRolesFromDatabase" command and
+ * parses out the write concern.
+ */
+Status parseDropAllRolesFromDatabaseCommand(const BSONObj& cmdObj,
+ const std::string& dbname,
+ BSONObj* parsedWriteConcern);
+
+/**
+ * Parses the privileges described in "privileges" into a vector of Privilege objects.
+ * Returns Status::OK() upon successfully parsing all the elements of "privileges".
+ */
+Status parseAndValidatePrivilegeArray(const BSONArray& privileges,
+ PrivilegeVector* parsedPrivileges);
+
+/**
+ * Takes a BSONArray of name,db pair documents, parses that array and returns (via the
+ * output param parsedRoleNames) a list of the role names in the input array.
+ * Performs syntactic validation of "rolesArray", only.
+ */
+Status parseRoleNamesFromBSONArray(const BSONArray& rolesArray,
+ StringData dbname,
+ std::vector<RoleName>* parsedRoleNames);
+
+/**
+ * Takes a BSONArray of name,db pair documents, parses that array and returns (via the
+ * output param parsedUserNames) a list of the usernames in the input array.
+ * Performs syntactic validation of "usersArray", only.
+ */
+Status parseUserNamesFromBSONArray(const BSONArray& usersArray,
+ StringData dbname,
+ std::vector<UserName>* parsedUserNames);
+
+struct MergeAuthzCollectionsArgs {
+ std::string usersCollName;
+ std::string rolesCollName;
+ std::string db;
+ bool drop;
+ BSONObj writeConcern;
+ MergeAuthzCollectionsArgs() : drop(false) {}
+};
+
+/**
+ * Takes a command object describing an invocation of the "_mergeAuthzCollections" command and
+ * parses out the name of the temporary collections to use for user and role data, whether or
+ * not to drop the existing users/roles, the database if this is a for a db-specific restore,
+ * and the writeConcern.
+ * Returns ErrorCodes::OutdatedClient if the "db" field is missing, as that likely indicates
+ * the command was sent by an outdated (pre 2.6.4) version of mongorestore.
+ * Returns other codes indicating missing or incorrectly typed fields.
+ */
+Status parseMergeAuthzCollectionsCommand(const BSONObj& cmdObj,
+ MergeAuthzCollectionsArgs* parsedArgs);
+
+} // namespace auth
+} // namespace mongo