diff options
author | Judah Schvimer <judah@mongodb.com> | 2016-04-12 19:11:23 -0400 |
---|---|---|
committer | Judah Schvimer <judah@mongodb.com> | 2016-04-12 19:11:23 -0400 |
commit | 7ed530a55304bd9cc2b80c054f379b10d9cea8e2 (patch) | |
tree | ff1dac44961da031f3369f0288fb38a347d0d690 /src/mongo/s/commands/commands_public.cpp | |
parent | b0c0acc6767a74ed2e5aa50361ad4474291951f9 (diff) | |
download | mongo-7ed530a55304bd9cc2b80c054f379b10d9cea8e2.tar.gz |
SERVER-20224 commands that write support writeConcern
Diffstat (limited to 'src/mongo/s/commands/commands_public.cpp')
-rw-r--r-- | src/mongo/s/commands/commands_public.cpp | 82 |
1 files changed, 80 insertions, 2 deletions
diff --git a/src/mongo/s/commands/commands_public.cpp b/src/mongo/s/commands/commands_public.cpp index 933877fc369..96293f9d698 100644 --- a/src/mongo/s/commands/commands_public.cpp +++ b/src/mongo/s/commands/commands_public.cpp @@ -252,6 +252,9 @@ public: actions.addAction(ActionType::dropIndex); out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } } dropIndexesCmd; class CreateIndexesCmd : public AllShardsCollectionCommand { @@ -361,6 +364,10 @@ public: out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } + } createIndexesCmd; class ReIndexCmd : public AllShardsCollectionCommand { @@ -373,6 +380,10 @@ public: actions.addAction(ActionType::reIndex); out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } } reIndexCmd; class CollectionModCmd : public AllShardsCollectionCommand { @@ -385,6 +396,10 @@ public: actions.addAction(ActionType::collMod); out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } } collectionModCmd; @@ -399,6 +414,10 @@ public: out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } + bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -476,6 +495,9 @@ public: return Status(ErrorCodes::Unauthorized, "unauthorized"); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -505,6 +527,10 @@ public: out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } + bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -537,7 +563,6 @@ public: return true; } - } dropCmd; class RenameCollectionCmd : public PublicGridCommand { @@ -551,6 +576,9 @@ public: virtual bool adminOnly() const { return true; } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -590,6 +618,9 @@ public: const BSONObj& cmdObj) { return copydb::checkAuthForCopydbCommand(client, dbname, cmdObj); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } bool run(OperationContext* txn, const string& dbName, @@ -637,7 +668,6 @@ public: return adminPassthrough(txn, confTo, fixed, result); } } - } clusterCopyDBCmd; class CollectionStats : public PublicGridCommand { @@ -651,6 +681,10 @@ public: out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } + bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -815,6 +849,9 @@ public: actions.addAction(ActionType::find); out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -896,6 +933,10 @@ public: out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } + } convertToCappedCmd; class GroupCmd : public NotAllowedOnShardedCollectionCmd { @@ -909,6 +950,10 @@ public: out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } + virtual bool passOptions() const { return true; } @@ -993,6 +1038,9 @@ public: virtual bool passOptions() const { return true; } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } virtual Status checkAuthForCommand(ClientBasic* client, const std::string& dbname, const BSONObj& cmdObj) { @@ -1038,6 +1086,9 @@ public: actions.addAction(ActionType::find); out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } bool run(OperationContext* txn, const string& dbName, @@ -1166,6 +1217,10 @@ public: out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), ActionType::find)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } + bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -1293,6 +1348,9 @@ public: actions.addAction(ActionType::find); out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } bool run(OperationContext* txn, const string& dbName, @@ -1414,6 +1472,9 @@ public: // applyOps can do pretty much anything, so require all privileges. RoleGraph::generateUniversalPrivileges(out); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return true; + } virtual bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -1435,6 +1496,9 @@ public: actions.addAction(ActionType::compact); out->push_back(Privilege(parseResourcePattern(dbname, cmdObj), actions)); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } virtual bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -1455,6 +1519,9 @@ public: // $eval can do pretty much anything, so require all privileges. RoleGraph::generateUniversalPrivileges(out); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } virtual bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -1500,6 +1567,10 @@ public: str::stream() << "Not authorized to create users on db: " << dbname); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } + bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -1539,6 +1610,10 @@ public: << "Not authorized to list indexes on collection: " << ns.coll()); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } + bool run(OperationContext* txn, const string& dbName, BSONObj& cmdObj, @@ -1567,6 +1642,9 @@ public: const BSONObj& cmdObj) { return Status::OK(); } + virtual bool supportsWriteConcern(const BSONObj& cmd) const override { + return false; + } virtual bool run(OperationContext* txn, const string& dbname, |