Browse Source
Merge pull request #14130 from dashevchenko/aiFilesValidationFix
AI node: fixed resources validation
pull/14135/head
Viacheslav Klimov
12 months ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with
8 additions and
10 deletions
application/src/main/java/org/thingsboard/server/actors/ruleChain/DefaultTbContext.java
rule-engine/rule-engine-api/src/main/java/org/thingsboard/rule/engine/api/TbContext.java
rule-engine/rule-engine-components/src/main/java/org/thingsboard/rule/engine/ai/TbAiNode.java
@ -1063,18 +1063,16 @@ public class DefaultTbContext implements TbContext {
@Override
public void checkTenantEntity ( EntityId entityId ) throws TbNodeException {
TenantId actualTenantId = TenantIdLoader . findTenantId ( this , entityId ) ;
assertSameTenantId ( actualTenantId , entityId ) ;
if ( ! getTenantId ( ) . equals ( actualTenantId ) ) {
throw new TbNodeException ( "Entity with id: '" + entityId + "' specified in the configuration doesn't belong to the current tenant." , true ) ;
}
}
@Override
public < E extends HasId < I > & HasTenantId , I extends EntityId > void checkTenantEntity ( E entity ) throws TbNodeException {
public < E extends HasId < I > & HasTenantId , I extends EntityId > void checkTenantOrSystem Entity ( E entity ) throws TbNodeException {
TenantId actualTenantId = entity . getTenantId ( ) ;
assertSameTenantId ( actualTenantId , entity . getId ( ) ) ;
}
private void assertSameTenantId ( TenantId tenantId , EntityId entityId ) throws TbNodeException {
if ( ! getTenantId ( ) . equals ( tenantId ) ) {
throw new TbNodeException ( "Entity with id: '" + entityId + "' specified in the configuration doesn't belong to the current tenant." , true ) ;
if ( ! getTenantId ( ) . equals ( actualTenantId ) & & ! actualTenantId . isSysTenantId ( ) ) {
throw new TbNodeException ( "Entity with id: '" + entity . getId ( ) + "' specified in the configuration doesn't belong to the current or system tenant." , true ) ;
}
}
@ -255,7 +255,7 @@ public interface TbContext {
void checkTenantEntity ( EntityId entityId ) throws TbNodeException ;
< E extends HasId < I > & HasTenantId , I extends EntityId > void checkTenantEntity ( E entity ) throws TbNodeException ;
< E extends HasId < I > & HasTenantId , I extends EntityId > void checkTenantOrSystem Entity ( E entity ) throws TbNodeException ;
boolean isLocalEntity ( EntityId entityId ) ;
@ -261,7 +261,7 @@ public final class TbAiNode extends TbAbstractExternalNode implements TbNode {
if ( ! ResourceType . GENERAL . equals ( resource . getResourceType ( ) ) ) {
throw new TbNodeException ( "[" + ctx . getTenantId ( ) + "] Resource with ID: [" + tbResourceId + "] has unsupported resource type: " + resource . getResourceType ( ) , true ) ;
}
ctx . checkTenantEntity ( resource ) ;
ctx . checkTenantOrSystem Entity ( resource ) ;
}
private ListenableFuture < List < TbResourceDataInfo > > loadResources ( TbContext ctx ) {