@Override public Grid getRawDataValues( DataQueryParams params ) { securityManager.decideAccess( params ); params = securityManager.withDataApprovalConstraints( params ); params = securityManager.withDimensionConstraints( params ); queryValidator.validate( params ); return getRawDataGrid( params ); }
@Override public List<OrganisationUnit> getUserOrgUnits( DataQueryParams params, String userOrgUnit ) { List<OrganisationUnit> units = new ArrayList<>(); User currentUser = securityManager.getCurrentUser( params ); if ( userOrgUnit != null ) { List<String> ous = DimensionalObjectUtils.getItemsFromParam( userOrgUnit ); for ( String ou : ous ) { OrganisationUnit unit = idObjectManager.get( OrganisationUnit.class, ou ); if ( unit != null ) { units.add( unit ); } } } else if ( currentUser != null && currentUser.hasOrganisationUnit() ) { units = currentUser.getSortedOrganisationUnits(); } return units; }
@Override public Grid getAggregatedEventData( EventQueryParams params ) { securityManager.decideAccessEventQuery( params ); queryValidator.validate( params ); if ( dhisConfig.isAnalyticsCacheEnabled() ) { final EventQueryParams query = new EventQueryParams.Builder( params ).build(); return queryCache.get( query.getKey(), key -> getAggregatedEventDataGrid( query ) ).get(); } return getAggregatedEventDataGrid( params ); }
@Override public Rectangle getRectangle( EventQueryParams params ) { if ( !databaseInfo.isSpatialSupport() ) { throw new IllegalQueryException( "Spatial database support is not enabled" ); } params = new EventQueryParams.Builder( params ) .withGeometryOnly( true ) .withStartEndDatesForPeriods() .build(); securityManager.decideAccessEventQuery( params ); queryValidator.validate( params ); params = queryPlanner.planEventQuery( params ); return eventAnalyticsManager.getRectangle( params ); }
@Override public Grid getAggregatedDataValues( DataQueryParams params ) { // --------------------------------------------------------------------- // Security and validation // --------------------------------------------------------------------- securityManager.decideAccess( params ); params = securityManager.withDataApprovalConstraints( params ); params = securityManager.withDimensionConstraints( params ); queryValidator.validate( params ); if ( dhisConfig.isAnalyticsCacheEnabled() ) { final DataQueryParams query = DataQueryParams.newBuilder( params ).build(); return queryCache.get( params.getKey(), key -> getAggregatedDataValueGridInternal( query ) ).get(); } return getAggregatedDataValueGridInternal( params ); }
@Override public Grid getEventClusters( EventQueryParams params ) { if ( !databaseInfo.isSpatialSupport() ) { throw new IllegalQueryException( "Spatial database support is not enabled" ); } params = new EventQueryParams.Builder( params ) .withGeometryOnly( true ) .withStartEndDatesForPeriods() .build(); securityManager.decideAccessEventQuery( params ); queryValidator.validate( params ); Grid grid = new ListGrid(); // --------------------------------------------------------------------- // Headers // --------------------------------------------------------------------- grid.addHeader( new GridHeader( ITEM_COUNT, NAME_COUNT, ValueType.NUMBER, Long.class.getName(), false, false ) ) .addHeader( new GridHeader( ITEM_CENTER, NAME_CENTER, ValueType.TEXT, String.class.getName(), false, false ) ) .addHeader( new GridHeader( ITEM_EXTENT, NAME_EXTENT, ValueType.TEXT, String.class.getName(), false, false ) ) .addHeader( new GridHeader( ITEM_POINTS, NAME_POINTS, ValueType.TEXT, String.class.getName(), false, false ) ); // --------------------------------------------------------------------- // Data // --------------------------------------------------------------------- params = queryPlanner.planEventQuery( params ); eventAnalyticsManager.getEventClusters( params, grid, queryValidator.getMaxLimit() ); return grid; }
User user = securityManager.getCurrentUser( params );
@Override public Grid getEvents( EventQueryParams params ) securityManager.decideAccessEventQuery( params );
User user = securityManager.getCurrentUser( params ); List<OrganisationUnit> organisationUnits = asTypedList( params.getDimensionOrFilterItems( ORGUNIT_DIM_ID ) ); Collection<OrganisationUnit> roots = user != null ? user.getOrganisationUnits() : null;