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

This commit is contained in:
Nick Couchman
2017-08-15 14:28:20 -04:00
parent b6e88d33b3
commit 75f51f2244
7 changed files with 36 additions and 50 deletions

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>

View File

@@ -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>