summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSemyon Danilov <[email protected]>2025-09-24 15:50:00 +0400
committerGitHub <[email protected]>2025-09-24 15:50:00 +0400
commit2f8e5133e3d05ab04738f66e1aa4bee7b3537a87 (patch)
tree8844c268538e86265753d11a36bdd13ec6860445
parent0bb369695d81ba26d60f1de77ffeb9d9ad17609c (diff)
EXT-1522 Fix CMS manual request approval not emptying request's actions (#25579)
-rw-r--r--ydb/core/cms/cms.cpp4
-rw-r--r--ydb/core/cms/cms_ut.cpp9
2 files changed, 12 insertions, 1 deletions
diff --git a/ydb/core/cms/cms.cpp b/ydb/core/cms/cms.cpp
index ea8efd3b496..d7311f192de 100644
--- a/ydb/core/cms/cms.cpp
+++ b/ydb/core/cms/cms.cpp
@@ -1561,6 +1561,10 @@ void TCms::ManuallyApproveRequest(TEvCms::TEvManageRequestRequest::TPtr &ev, con
perm->SetDeadline(deadline.GetValue());
}
+ copy->Request.ClearActions();
+
+ it->second = *copy;
+
AcceptPermissions(resp->Record, rec.GetRequestId(), rec.GetUser(), ctx, true);
auto actor = new TRequestApproveActor(requestId, State, ev->Sender);
diff --git a/ydb/core/cms/cms_ut.cpp b/ydb/core/cms/cms_ut.cpp
index 1f01e175fca..7cb7b78ab92 100644
--- a/ydb/core/cms/cms_ut.cpp
+++ b/ydb/core/cms/cms_ut.cpp
@@ -547,6 +547,10 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
// Manual approval
auto approveResp = env.CheckApproveRequest("user", rid1, false, TStatus::OK);
UNIT_ASSERT_VALUES_EQUAL(approveResp.ManuallyApprovedPermissionsSize(), 1);
+
+ // Check that request is now allowed
+ env.CheckRequest("user", rid1, false, TStatus::ALLOW);
+
TString permissionId = approveResp.GetManuallyApprovedPermissions(0).GetId();
auto rec2 = env.CheckGetPermission("user", permissionId);
UNIT_ASSERT_VALUES_EQUAL(rec2.PermissionsSize(), 1);
@@ -636,7 +640,7 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
auto rid1 = rec1.GetRequestId();
- // // Manual approval
+ // Manual approval
auto approveResp = env.CheckApproveRequest("user", rid1, false, TStatus::OK);
UNIT_ASSERT_VALUES_EQUAL(approveResp.ManuallyApprovedPermissionsSize(), 2);
for (const auto& permission : approveResp.GetManuallyApprovedPermissions()) {
@@ -645,6 +649,9 @@ Y_UNIT_TEST_SUITE(TCmsTest) {
UNIT_ASSERT_VALUES_EQUAL(rec3.PermissionsSize(), 1);
UNIT_ASSERT_VALUES_EQUAL(rec3.GetPermissions(0).GetId(), permissionId);
}
+
+ // Check that request is now allowed
+ env.CheckRequest("user", rid1, false, TStatus::ALLOW);
}
Y_UNIT_TEST(ManualRequestApprovalAlreadyLockedNode)