File tree Expand file tree Collapse file tree 3 files changed +25
-9
lines changed Expand file tree Collapse file tree 3 files changed +25
-9
lines changed Original file line number Diff line number Diff line change @@ -34,6 +34,9 @@ namespace QgsWms
34
34
// get parameters from query
35
35
QgsWmsParameters parameters ( QUrlQuery ( request.url () ) );
36
36
37
+ // check parameters validity
38
+ checkParameters ( parameters );
39
+
37
40
// init render context
38
41
QgsWmsRenderContext context ( project, serverIface );
39
42
context.setFlag ( QgsWmsRenderContext::UseScaleDenominator );
@@ -100,5 +103,26 @@ namespace QgsWms
100
103
throw QgsException ( QStringLiteral ( " Failed to compute GetLegendGraphics image" ) );
101
104
}
102
105
}
106
+
107
+ void checkParameters ( const QgsWmsParameters ¶meters )
108
+ {
109
+ if ( parameters.allLayersNickname ().isEmpty () )
110
+ {
111
+ throw QgsBadRequestException ( QgsServiceException::QGIS_MISSING_PARAMETER_VALUE,
112
+ parameters[QgsWmsParameter::LAYERS] );
113
+ }
114
+
115
+ if ( parameters.format () == QgsWmsParameters::Format::NONE )
116
+ {
117
+ throw QgsBadRequestException ( QgsServiceException::QGIS_MISSING_PARAMETER_VALUE,
118
+ parameters[QgsWmsParameter::FORMAT] );
119
+ }
120
+
121
+ if ( ! parameters.bbox ().isEmpty () && !parameters.rule ().isEmpty () )
122
+ {
123
+ throw QgsBadRequestException ( QgsServiceException::QGIS_INVALID_PARAMETER_VALUE,
124
+ QStringLiteral ( " BBOX parameter cannot be combined with RULE." ) );
125
+ }
126
+ }
103
127
} // namespace QgsWms
104
128
Original file line number Diff line number Diff line change @@ -29,6 +29,7 @@ namespace QgsWms
29
29
const QString &version, const QgsServerRequest &request,
30
30
QgsServerResponse &response );
31
31
32
+ void checkParameters ( const QgsWmsParameters ¶meters );
32
33
} // namespace QgsWms
33
34
34
35
Original file line number Diff line number Diff line change @@ -129,15 +129,6 @@ namespace QgsWms
129
129
130
130
QImage *QgsRenderer::getLegendGraphics ()
131
131
{
132
- // check parameters
133
- if ( mWmsParameters .allLayersNickname ().isEmpty () )
134
- throw QgsBadRequestException ( QgsServiceException::QGIS_MISSING_PARAMETER_VALUE,
135
- mWmsParameters [QgsWmsParameter::LAYERS] );
136
-
137
- if ( mWmsParameters .format () == QgsWmsParameters::Format::NONE )
138
- throw QgsBadRequestException ( QgsServiceException::QGIS_MISSING_PARAMETER_VALUE,
139
- mWmsParameters [QgsWmsParameter::FORMAT] );
140
-
141
132
// get layers
142
133
std::unique_ptr<QgsLayerRestorer> restorer;
143
134
restorer.reset ( new QgsLayerRestorer ( mContext .layers () ) );
You can’t perform that action at this time.
0 commit comments