=== modified file 'dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/sqlview/DefaultSqlViewService.java' --- dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/sqlview/DefaultSqlViewService.java 2015-02-12 09:28:20 +0000 +++ dhis-2/dhis-services/dhis-service-administration/src/main/java/org/hisp/dhis/sqlview/DefaultSqlViewService.java 2015-02-12 09:51:39 +0000 @@ -38,7 +38,6 @@ /** * @author Dang Duy Hieu - * @version $Id DefaultSqlViewService.java July 06, 2010$ */ @Transactional public class DefaultSqlViewService === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/sqlview/UpdateSqlViewAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/sqlview/UpdateSqlViewAction.java 2015-02-11 22:50:44 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/sqlview/UpdateSqlViewAction.java 2015-02-12 09:51:39 +0000 @@ -76,13 +76,6 @@ this.sqlquery = sqlquery; } - private boolean query; - - public void setQuery( boolean query ) - { - this.query = query; - } - // ------------------------------------------------------------------------- // Action implementation // ------------------------------------------------------------------------- @@ -94,7 +87,6 @@ sqlView.setDescription( description.replaceAll( "\\s+", " " ).trim() ); sqlView.setSqlQuery( sqlquery ); - sqlView.setQuery( query ); sqlViewService.updateSqlView( sqlView.cleanSqlQuery() ); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/sqlview/ValidateAddUpdateSqlViewAction.java' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/sqlview/ValidateAddUpdateSqlViewAction.java 2015-02-12 09:28:20 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/java/org/hisp/dhis/dataadmin/action/sqlview/ValidateAddUpdateSqlViewAction.java 2015-02-12 09:51:39 +0000 @@ -97,6 +97,13 @@ this.sqlquery = sqlquery; } + private boolean query; + + public void setQuery( boolean query ) + { + this.query = query; + } + // ------------------------------------------------------------------------- // Output // ------------------------------------------------------------------------- @@ -112,6 +119,8 @@ // Action implementation // ------------------------------------------------------------------------- + //TODO move to service layer and validate queries made in web api + @Override public String execute() { @@ -138,7 +147,7 @@ return INPUT; } - final String validationRegex = getValidationRegex(); + final String protectedTablesRegex = getProtectedTablesRegex(); for ( String s : sqlquery.split( SEMICOLON ) ) { @@ -151,7 +160,7 @@ return INPUT; } - if ( tmp.concat( SPACE ).matches( validationRegex ) ) + if ( tmp.concat( SPACE ).matches( protectedTablesRegex ) ) { message = i18n.getString( "sqlquery_is_not_allowed" ); @@ -159,8 +168,11 @@ } } - message = sqlViewService.testSqlGrammar( sqlquery ); - + if ( !query ) + { + message = sqlViewService.testSqlGrammar( sqlquery ); + } + if ( message != null ) { return INPUT; @@ -173,7 +185,7 @@ // Supportive methods // ------------------------------------------------------------------------- - private String getValidationRegex() + private String getProtectedTablesRegex() { int i = 0; int len = PROTECTED_TABLES.size(); === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/sqlView.js' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/sqlView.js 2015-01-16 13:34:21 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/javascript/sqlView.js 2015-02-12 09:51:39 +0000 @@ -3,6 +3,7 @@ function validateAddUpdateSqlView( mode ) { var name = $("#name").val(); var sqlquery = $("#sqlquery").val(); + var query = $("#query").val(); $.ajax( { url: "validateAddUpdateSqlView.action", @@ -10,6 +11,7 @@ data: { "name": name, "sqlquery": sqlquery, + "query": query, "mode": mode }, dataType: "json", === modified file 'dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/updateSqlViewForm.vm' --- dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/updateSqlViewForm.vm 2015-02-11 22:32:01 +0000 +++ dhis-2/dhis-web/dhis-web-maintenance/dhis-web-maintenance-dataadmin/src/main/webapp/dhis-web-maintenance-dataadmin/updateSqlViewForm.vm 2015-02-12 09:51:39 +0000 @@ -7,6 +7,7 @@
+
@@ -26,13 +27,8 @@ - - + +
- -