From 75f51f2244ac537c70c24283586b35975abfb663 Mon Sep 17 00:00:00 2001 From: Nick Couchman Date: Tue, 15 Aug 2017 14:28:20 -0400 Subject: [PATCH] GUACAMOLE-363: Fix up JDBC maps for proper SQL Server syntax. --- .../connection/ConnectionRecordMapper.xml | 8 ++------ .../ConnectionGroupPermissionMapper.xml | 10 ++++------ .../permission/ConnectionPermissionMapper.xml | 20 +++++++++---------- .../SharingProfilePermissionMapper.xml | 20 +++++++++---------- .../permission/SystemPermissionMapper.xml | 16 +++++++-------- .../jdbc/permission/UserPermissionMapper.xml | 10 ++++------ .../SharingProfileParameterMapper.xml | 2 +- 7 files changed, 36 insertions(+), 50 deletions(-) diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml index ec077db7f..2b873bb9a 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml @@ -90,7 +90,7 @@ diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml index 2890ab31d..a7998880a 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml @@ -117,12 +117,10 @@ #{permission.objectIdentifier,jdbcType=INTEGER} AS connection_group_id AS permissions - WHERE (user_id, permission, connection_group_id) NOT IN ( - SELECT - [guacamole].[connection_group_permission].user_id, - [guacamole].[connection_group_permission].permission, - [guacamole].[connection_group_permission].connection_group_id - FROM [guacamole].[connection_group_permission] + WHERE NOT EXISTS (SELECT 1 FROM [guacamole].[connection_group_permission] + WHERE [guacamole].[connection_group_permission].user_id = permissions.user_id AND + [guacamole].[connection_group_permission].permission = permissions.permission AND + [guacamole].[connection_group_permission].connection_group_id = permissions.connection_group_id ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml index 8ea85bc3c..08e875ccb 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml @@ -87,12 +87,12 @@ DELETE FROM [guacamole].[connection_permission] - WHERE (user_id, permission, connection_id) IN + WHERE - (#{permission.userID,jdbcType=INTEGER}, - #{permission.type,jdbcType=VARCHAR}, - #{permission.objectIdentifier,jdbcType=INTEGER}) + open="(" separator=" OR " close=")"> + (user_id = #{permission.userID,jdbcType=INTEGER} AND + permission = #{permission.type,jdbcType=VARCHAR} AND + connection_id = #{permission.objectIdentifier,jdbcType=INTEGER}) @@ -117,12 +117,10 @@ #{permission.objectIdentifier,jdbcType=INTEGER} AS connection_id AS permissions - WHERE (user_id, permission, connection_id) NOT IN ( - SELECT - [guacamole].[connection_permission].user_id, - [guacamole].[connection_permission].permission, - [guacamole].[connection_permission].connection_id - FROM [guacamole].[connection_permission] + WHERE NOT EXISTS ( SELECT 1 FROM [guacamole].[connection_permission] + WHERE [guacamole].[connection_permission].user_id = permissions.user_id AND + [guacamole].[connection_permission].permission = permissions.permission AND + [guacamole].[connection_permission].connection_id = permissions.connection_id ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml index cb706b8d4..354dfb594 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml @@ -87,12 +87,12 @@ DELETE FROM [guacamole].[sharing_profile_permission] - WHERE (user_id, permission, sharing_profile_id) IN + WHERE - (#{permission.userID,jdbcType=INTEGER}, - #{permission.type,jdbcType=VARCHAR}, - #{permission.objectIdentifier,jdbcType=INTEGER}) + open="(" separator=" OR " close=")"> + (user_id = #{permission.userID,jdbcType=INTEGER} AND + permission = #{permission.type,jdbcType=VARCHAR} AND + sharing_profile_id = #{permission.objectIdentifier,jdbcType=INTEGER}) @@ -117,12 +117,10 @@ #{permission.objectIdentifier,jdbcType=INTEGER} AS sharing_profile_id AS permissions - WHERE (user_id, permission, sharing_profile_id) NOT IN ( - SELECT - [guacamole].[sharing_profile_permission].user_id, - [guacamole].[sharing_profile_permission].permission, - [guacamole].[sharing_profile_permission].sharing_profile_id - FROM [guacamole].[sharing_profile_permission] + WHERE NOT EXISTS (SELECT 1 FROM [guacamole].[sharing_profile_permission] + WHERE [guacamole].[sharing_profile_permission].user_id = permissions.user_id + AND [guacamole].[sharing_profile_permission].permission = permissions.permission + AND [guacamole].[sharing_profile_permission].sharing_profile_id = permissions.sharing_profile_id ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml index d9e622b69..048877922 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml @@ -63,11 +63,11 @@ DELETE FROM [guacamole].[system_permission] - WHERE (user_id, permission) IN + WHERE - (#{permission.userID,jdbcType=INTEGER}, - #{permission.type,jdbcType=VARCHAR}) + open="(" separator=" OR " close=")"> + (user_id = #{permission.userID,jdbcType=INTEGER} + AND permission = #{permission.type,jdbcType=VARCHAR}) @@ -89,11 +89,9 @@ #{permission.type,jdbcType=VARCHAR} AS permission AS permissions - WHERE (user_id, permission) NOT IN ( - SELECT - [guacamole].[system_permission].user_id, - [guacamole].[system_permission].permission - FROM [guacamole].[system_permission] + WHERE NOT EXISTS (SELECT 1 FROM [guacamole].[system_permission] + WHERE [guacamole].[system_permission].user_id = permissions.user_id + AND [guacamole].[system_permission].permission = permissions.permission ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml index 595c3263d..606719dcf 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml @@ -124,12 +124,10 @@ AS permissions JOIN [guacamole].[user] ON [guacamole].[user].username = permissions.username - WHERE (permissions.user_id, permissions.permission, [guacamole].[user].user_id) NOT IN ( - SELECT - [guacamole].[user_permission].user_id, - [guacamole].[user_permission].permission, - [guacamole].[user_permission].affected_user_id - FROM [guacamole].[user_permission] + WHERE NOT EXISTS (SELECT 1 FROM [guacamole].[user_permission] + WHERE [guacamole].[user_permission].user_id = permissions.user_id + AND [guacamole].[user_permission].permission = permissions.permission + AND [guacamole].[user_permission].affected_user_id = [guacamole].[user].user_id ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/sharingprofile/SharingProfileParameterMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/sharingprofile/SharingProfileParameterMapper.xml index 8835350b7..8f4a3fa10 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/sharingprofile/SharingProfileParameterMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/sharingprofile/SharingProfileParameterMapper.xml @@ -57,7 +57,7 @@ ) VALUES - (#{parameter.sharingProfileIdentifier,jdbcType=INTEGER} + (#{parameter.sharingProfileIdentifier,jdbcType=INTEGER}, #{parameter.name,jdbcType=VARCHAR}, #{parameter.value,jdbcType=VARCHAR})