Skip to content

Commit a10e213

Browse files
authored
Fixed the NPE caused by view permission check
1 parent 57f22e7 commit a10e213

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/queryengine/plan/statement/metadata/view/CreateLogicalViewStatement.java

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
import org.apache.iotdb.common.rpc.thrift.TSStatus;
2323
import org.apache.iotdb.commons.auth.entity.PrivilegeType;
24+
import org.apache.iotdb.commons.conf.IoTDBConstant;
2425
import org.apache.iotdb.commons.path.PartialPath;
2526
import org.apache.iotdb.commons.schema.view.viewExpression.ViewExpression;
2627
import org.apache.iotdb.db.auth.AuthorityChecker;
@@ -44,6 +45,7 @@
4445
import java.util.ArrayList;
4546
import java.util.Collections;
4647
import java.util.List;
48+
import java.util.Objects;
4749

4850
/** CREATE LOGICAL VIEW statement. */
4951
public class CreateLogicalViewStatement extends Statement {
@@ -99,11 +101,18 @@ public TSStatus checkPermissionBeforeProcess(String userName) {
99101
PrivilegeType.READ_SCHEMA);
100102
}
101103

104+
final List<PartialPath> paths =
105+
Objects.nonNull(getTargetPathList())
106+
? getTargetPathList()
107+
: Collections.singletonList(
108+
batchGenerationItem
109+
.getIntoDevice()
110+
.concatNode(IoTDBConstant.ONE_LEVEL_PATH_WILDCARD));
102111
if (status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
103112
return AuthorityChecker.getTSStatus(
104113
AuthorityChecker.checkFullPathOrPatternListPermission(
105-
userName, getTargetPathList(), PrivilegeType.WRITE_SCHEMA),
106-
getTargetPathList(),
114+
userName, paths, PrivilegeType.WRITE_SCHEMA),
115+
paths,
107116
PrivilegeType.WRITE_SCHEMA);
108117
}
109118
return status;

0 commit comments

Comments
 (0)