changeset 1288:9f7dc950ffd2

Accept only well-formed XML documents as style in database
author Tom Gottfried <tom@intevation.de>
date Thu, 22 Nov 2018 12:25:01 +0100
parents 54b7d8e2b224
children e1480ad4b6b0
files pkg/models/intservices.go schema/gemma.sql
diffstat 2 files changed, 3 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/pkg/models/intservices.go	Thu Nov 22 11:48:54 2018 +0100
+++ b/pkg/models/intservices.go	Thu Nov 22 12:25:01 2018 +0100
@@ -44,14 +44,14 @@
 JOIN pg_class ON name = oid ORDER by relname`
 
 	selectStyleSQL = `
-SELECT style
+SELECT XMLSERIALIZE(DOCUMENT style AS text)
 FROM sys_admin.published_services
 JOIN pg_class ON name = oid
 WHERE relname = $1`
 
 	updateStyleSQL = `
 UPDATE sys_admin.published_services
-SET style = $1::bytea
+SET style = XMLPARSE(DOCUMENT $1)
 WHERE name IN (SELECT oid FROM pg_class WHERE relname = $2)`
 )
 
--- a/schema/gemma.sql	Thu Nov 22 11:48:54 2018 +0100
+++ b/schema/gemma.sql	Thu Nov 22 12:25:01 2018 +0100
@@ -57,7 +57,7 @@
 
     CREATE TABLE published_services (
         name regclass PRIMARY KEY,
-        style bytea,
+        style xml CHECK(style IS DOCUMENT),
         as_wms boolean NOT NULL DEFAULT TRUE,
         as_wfs boolean NOT NULL DEFAULT TRUE
     )