Skip to content

Commit cb15b53

Browse files
Faustoleyva54Evergreen Agent
authored andcommitted
SERVER-78494 Restrict timeseries collection renames between buckets namespaces
1 parent 624f572 commit cb15b53

File tree

1 file changed

+13
-7
lines changed

1 file changed

+13
-7
lines changed

src/mongo/s/commands/cluster_rename_collection_cmd.cpp

Lines changed: 13 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -104,13 +104,19 @@ class RenameCollectionCmd final : public TypedCommand<RenameCollectionCmd> {
104104
"Can't rename a collection to itself",
105105
fromNss != toNss);
106106

107-
if (fromNss.isTimeseriesBucketsCollection() &&
108-
!AuthorizationSession::get(opCtx->getClient())
109-
->isAuthorizedForActionsOnResource(
110-
ResourcePattern::forClusterResource(fromNss.tenantId()),
111-
ActionType::setUserWriteBlockMode)) {
112-
uasserted(ErrorCodes::IllegalOperation,
113-
"Renaming a timeseries collection is not allowed");
107+
if (fromNss.isTimeseriesBucketsCollection()) {
108+
uassert(ErrorCodes::IllegalOperation,
109+
"Renaming system.buckets collections is not allowed",
110+
AuthorizationSession::get(opCtx->getClient())
111+
->isAuthorizedForActionsOnResource(
112+
ResourcePattern::forClusterResource(fromNss.tenantId()),
113+
ActionType::setUserWriteBlockMode));
114+
115+
uassert(ErrorCodes::IllegalOperation,
116+
str::stream()
117+
<< "Cannot rename time-series buckets collection {" << fromNss.ns()
118+
<< "} to a non-time-series buckets namespace {" << toNss.ns() << "}",
119+
toNss.isTimeseriesBucketsCollection());
114120
}
115121

116122
RenameCollectionRequest renameCollReq(request().getTo());

0 commit comments

Comments
 (0)