You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by mj...@apache.org on 2017/10/01 02:10:18 UTC

[06/28] incubator-guacamole-client git commit: GUACAMOLE-363: Fix up JDBC maps for proper SQL Server syntax.

GUACAMOLE-363: Fix up JDBC maps for proper SQL Server syntax.


Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/commit/75f51f22
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/75f51f22
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/75f51f22

Branch: refs/heads/master
Commit: 75f51f2244ac537c70c24283586b35975abfb663
Parents: b6e88d3
Author: Nick Couchman <vn...@apache.org>
Authored: Tue Aug 15 14:28:20 2017 -0400
Committer: Nick Couchman <vn...@apache.org>
Committed: Thu Sep 28 07:00:52 2017 -0400

----------------------------------------------------------------------
 .../jdbc/connection/ConnectionRecordMapper.xml  |  8 ++------
 .../ConnectionGroupPermissionMapper.xml         | 10 ++++------
 .../permission/ConnectionPermissionMapper.xml   | 20 +++++++++-----------
 .../SharingProfilePermissionMapper.xml          | 20 +++++++++-----------
 .../jdbc/permission/SystemPermissionMapper.xml  | 16 +++++++---------
 .../jdbc/permission/UserPermissionMapper.xml    | 10 ++++------
 .../SharingProfileParameterMapper.xml           |  2 +-
 7 files changed, 36 insertions(+), 50 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/75f51f22/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml
----------------------------------------------------------------------
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 ec077db..2b873bb 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 @@
     <!-- Search for specific connection records -->
     <select id="search" resultMap="ConnectionRecordResultMap">
 
-        SELECT
+        SELECT TOP (#{limit,jdbcType=INTEGER})
             [guacamole].[connection_history].connection_id,
             [guacamole].[connection_history].connection_name,
             [guacamole].[connection_history].remote_host,
@@ -139,14 +139,12 @@
             <if test="sortPredicate.descending">DESC</if>
         </foreach>
 
-        LIMIT #{limit,jdbcType=INTEGER}
-
     </select>
 
     <!-- Search for specific connection records -->
     <select id="searchReadable" resultMap="ConnectionRecordResultMap">
 
-        SELECT
+        SELECT TOP (#{limit,jdbcType=INTEGER})
             [guacamole].[connection_history].connection_id,
             [guacamole].[connection_history].connection_name,
             [guacamole].[connection_history].remote_host,
@@ -209,8 +207,6 @@
             <if test="sortPredicate.descending">DESC</if>
         </foreach>
 
-        LIMIT #{limit,jdbcType=INTEGER}
-
     </select>
 
 </mapper>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/75f51f22/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml
----------------------------------------------------------------------
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 2890ab3..a799888 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
             </foreach>
         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
         );
 
     </insert>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/75f51f22/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml
----------------------------------------------------------------------
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 8ea85bc..08e875c 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 id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.ObjectPermissionModel">
 
         DELETE FROM [guacamole].[connection_permission]
-        WHERE (user_id, permission, connection_id) IN
+        WHERE
             <foreach collection="permissions" item="permission"
-                     open="(" separator="," close=")">
-                (#{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})
             </foreach>
 
     </delete>
@@ -117,12 +117,10 @@
                        #{permission.objectIdentifier,jdbcType=INTEGER} AS connection_id
             </foreach>
         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
         );
 
     </insert>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/75f51f22/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml
----------------------------------------------------------------------
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 cb706b8..354dfb5 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 id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.ObjectPermissionModel">
 
         DELETE FROM [guacamole].[sharing_profile_permission]
-        WHERE (user_id, permission, sharing_profile_id) IN
+        WHERE
             <foreach collection="permissions" item="permission"
-                     open="(" separator="," close=")">
-                (#{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})
             </foreach>
 
     </delete>
@@ -117,12 +117,10 @@
                        #{permission.objectIdentifier,jdbcType=INTEGER} AS sharing_profile_id
             </foreach>
         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
         );
 
     </insert>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/75f51f22/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml
----------------------------------------------------------------------
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 d9e622b..0488779 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 id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.SystemPermissionModel">
 
         DELETE FROM [guacamole].[system_permission]
-        WHERE (user_id, permission) IN
+        WHERE
             <foreach collection="permissions" item="permission"
-                     open="(" separator="," close=")">
-                (#{permission.userID,jdbcType=INTEGER},
-                 #{permission.type,jdbcType=VARCHAR})
+                     open="(" separator=" OR " close=")">
+                     (user_id = #{permission.userID,jdbcType=INTEGER}
+                      AND permission = #{permission.type,jdbcType=VARCHAR})
             </foreach>
 
     </delete>
@@ -89,11 +89,9 @@
                        #{permission.type,jdbcType=VARCHAR} AS permission
             </foreach>
         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
         );
 
     </insert>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/75f51f22/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml
----------------------------------------------------------------------
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 595c326..606719d 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 @@
             </foreach>
         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
         );
 
     </insert>

http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/75f51f22/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/sharingprofile/SharingProfileParameterMapper.xml
----------------------------------------------------------------------
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 8835350..8f4a3fa 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 
             <foreach collection="parameters" item="parameter" separator=",">
-                (#{parameter.sharingProfileIdentifier,jdbcType=INTEGER}
+                (#{parameter.sharingProfileIdentifier,jdbcType=INTEGER},
                  #{parameter.name,jdbcType=VARCHAR},
                  #{parameter.value,jdbcType=VARCHAR})
             </foreach>