diff options
Diffstat (limited to 'src/mongo/db/pipeline/document_source_out.cpp')
-rw-r--r-- | src/mongo/db/pipeline/document_source_out.cpp | 26 |
1 files changed, 5 insertions, 21 deletions
diff --git a/src/mongo/db/pipeline/document_source_out.cpp b/src/mongo/db/pipeline/document_source_out.cpp index 356c5b5d110..67df77f760c 100644 --- a/src/mongo/db/pipeline/document_source_out.cpp +++ b/src/mongo/db/pipeline/document_source_out.cpp @@ -77,7 +77,7 @@ DocumentSourceOut::~DocumentSourceOut() { } std::unique_ptr<DocumentSourceOut::LiteParsed> DocumentSourceOut::LiteParsed::parseToDifferentDB( - const AggregationRequest& request, const BSONElement& spec) { + const NamespaceString& nss, const BSONElement& spec) { auto specObj = spec.Obj(); auto dbElem = specObj["db"]; @@ -90,38 +90,22 @@ std::unique_ptr<DocumentSourceOut::LiteParsed> DocumentSourceOut::LiteParsed::pa "Invalid {} target namespace, {}"_format(kStageName, targetNss.ns()), targetNss.isValid()); - ActionSet actions{ActionType::insert, ActionType::remove}; - if (request.shouldBypassDocumentValidation()) { - actions.addAction(ActionType::bypassDocumentValidation); - } - - PrivilegeVector privileges{Privilege(ResourcePattern::forExactNamespace(targetNss), actions)}; - - return std::make_unique<DocumentSourceOut::LiteParsed>(std::move(targetNss), - std::move(privileges)); + return std::make_unique<DocumentSourceOut::LiteParsed>(std::move(targetNss)); } std::unique_ptr<DocumentSourceOut::LiteParsed> DocumentSourceOut::LiteParsed::parse( - const AggregationRequest& request, const BSONElement& spec) { + const NamespaceString& nss, const BSONElement& spec) { uassert(16990, "{} only supports a string argument, but found {}"_format(kStageName, typeName(spec.type())), spec.type() == BSONType::String); - NamespaceString targetNss{request.getNamespaceString().db(), spec.valueStringData()}; + NamespaceString targetNss{nss.db(), spec.valueStringData()}; uassert(ErrorCodes::InvalidNamespace, "Invalid {} target namespace, {}"_format(kStageName, targetNss.ns()), targetNss.isValid()); - ActionSet actions{ActionType::insert, ActionType::remove}; - if (request.shouldBypassDocumentValidation()) { - actions.addAction(ActionType::bypassDocumentValidation); - } - - PrivilegeVector privileges{Privilege(ResourcePattern::forExactNamespace(targetNss), actions)}; - - return std::make_unique<DocumentSourceOut::LiteParsed>(std::move(targetNss), - std::move(privileges)); + return std::make_unique<DocumentSourceOut::LiteParsed>(std::move(targetNss)); } void DocumentSourceOut::initialize() { |