Browse Source

Permission fix

pull/14074/head
Andrii Landiak 11 months ago
parent
commit
94aa57d894
  1. 13
      application/src/main/java/org/thingsboard/server/service/security/permission/CustomerUserPermissions.java
  2. 2
      application/src/main/java/org/thingsboard/server/service/security/permission/TenantAdminPermissions.java

13
application/src/main/java/org/thingsboard/server/service/security/permission/CustomerUserPermissions.java

@ -21,10 +21,12 @@ import org.thingsboard.server.common.data.HasCustomerId;
import org.thingsboard.server.common.data.HasTenantId;
import org.thingsboard.server.common.data.TbResourceInfo;
import org.thingsboard.server.common.data.User;
import org.thingsboard.server.common.data.id.ApiKeyId;
import org.thingsboard.server.common.data.id.DashboardId;
import org.thingsboard.server.common.data.id.EntityId;
import org.thingsboard.server.common.data.id.TbResourceId;
import org.thingsboard.server.common.data.id.UserId;
import org.thingsboard.server.common.data.pat.ApiKeyInfo;
import org.thingsboard.server.common.data.security.Authority;
import org.thingsboard.server.service.security.model.SecurityUser;
@ -48,6 +50,7 @@ public class CustomerUserPermissions extends AbstractPermissions {
put(Resource.ASSET_PROFILE, profilePermissionChecker);
put(Resource.TB_RESOURCE, customerResourcePermissionChecker);
put(Resource.MOBILE_APP_SETTINGS, new PermissionChecker.GenericPermissionChecker(Operation.READ));
put(Resource.API_KEY, apiKeysPermissionChecker);
}
private static final PermissionChecker customerAlarmPermissionChecker = new PermissionChecker() {
@ -202,4 +205,14 @@ public class CustomerUserPermissions extends AbstractPermissions {
return user.getTenantId().equals(entity.getTenantId());
}
};
private static final PermissionChecker apiKeysPermissionChecker = new PermissionChecker<ApiKeyId, ApiKeyInfo>() {
@Override
@SuppressWarnings("unchecked")
public boolean hasPermission(SecurityUser user, Operation operation, ApiKeyId entityId, ApiKeyInfo entity) {
return user.getTenantId().equals(entity.getTenantId()) && user.getId().equals(entity.getUserId());
}
};
}

2
application/src/main/java/org/thingsboard/server/service/security/permission/TenantAdminPermissions.java

@ -176,7 +176,7 @@ public class TenantAdminPermissions extends AbstractPermissions {
@Override
public boolean hasPermission(SecurityUser user, Operation operation, ApiKeyId entityId, ApiKeyInfo entity) {
return user.getId().equals(entity.getUserId());
return user.getTenantId().equals(entity.getTenantId());
}
};

Loading…
Cancel
Save