This is an automated email from the ASF dual-hosted git repository.
rong pushed a commit to branch dev/1.3
in repository https://gitbox.apache.org/repos/asf/iotdb.git
The following commit(s) were added to refs/heads/dev/1.3 by this push:
new c1ab85f82d9 Pipe: Fixed the ttl privilege logic at receiver side
(#15135) (#15145)
c1ab85f82d9 is described below
commit c1ab85f82d913d1993b3483048de025f219d81ed
Author: Caideyipi <[email protected]>
AuthorDate: Tue Mar 25 10:18:19 2025 +0800
Pipe: Fixed the ttl privilege logic at receiver side (#15135) (#15145)
---
.../receiver/protocol/IoTDBConfigNodeReceiver.java | 28 +++++++++++++++++-----
1 file changed, 22 insertions(+), 6 deletions(-)
diff --git
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java
index 87ba3affef1..0986e50b31a 100644
---
a/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java
+++
b/iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/receiver/protocol/IoTDBConfigNodeReceiver.java
@@ -22,6 +22,7 @@ package
org.apache.iotdb.confignode.manager.pipe.receiver.protocol;
import org.apache.iotdb.common.rpc.thrift.TSStatus;
import org.apache.iotdb.commons.auth.entity.PrivilegeType;
import org.apache.iotdb.commons.conf.CommonDescriptor;
+import org.apache.iotdb.commons.conf.IoTDBConstant;
import org.apache.iotdb.commons.path.PartialPath;
import org.apache.iotdb.commons.path.PathPatternTree;
import
org.apache.iotdb.commons.pipe.connector.payload.airgap.AirGapPseudoTPipeTransferRequest;
@@ -283,12 +284,27 @@ public class IoTDBConfigNodeReceiver extends
IoTDBFileReceiver {
PrivilegeType.WRITE_SCHEMA.ordinal())
.getStatus();
case SetTTL:
- return configManager
- .checkUserPrivileges(
- username,
- Collections.singletonList(new PartialPath(((SetTTLPlan)
plan).getPathPattern())),
- PrivilegeType.WRITE_SCHEMA.ordinal())
- .getStatus();
+ return Objects.equals(
+ configManager
+ .getTTLManager()
+ .getAllTTL()
+ .get(
+ String.join(
+ String.valueOf(IoTDBConstant.PATH_SEPARATOR),
+ ((SetTTLPlan) plan).getPathPattern())),
+ ((SetTTLPlan) plan).getTTL())
+ ? StatusUtils.OK
+ : configManager
+ .checkUserPrivileges(
+ username,
+ ((SetTTLPlan) plan).isDataBase()
+ ? Collections.emptyList()
+ : Collections.singletonList(
+ new PartialPath(((SetTTLPlan)
plan).getPathPattern())),
+ ((SetTTLPlan) plan).isDataBase()
+ ? PrivilegeType.MANAGE_DATABASE.ordinal()
+ : PrivilegeType.WRITE_SCHEMA.ordinal())
+ .getStatus();
case UpdateTriggerStateInTable:
case DeleteTriggerInTable:
return configManager