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 --> <!-- Search for specific connection records -->
<select id="search" resultMap="ConnectionRecordResultMap"> <select id="search" resultMap="ConnectionRecordResultMap">
SELECT SELECT TOP (#{limit,jdbcType=INTEGER})
[guacamole].[connection_history].connection_id, [guacamole].[connection_history].connection_id,
[guacamole].[connection_history].connection_name, [guacamole].[connection_history].connection_name,
[guacamole].[connection_history].remote_host, [guacamole].[connection_history].remote_host,
@@ -139,14 +139,12 @@
<if test="sortPredicate.descending">DESC</if> <if test="sortPredicate.descending">DESC</if>
</foreach> </foreach>
LIMIT #{limit,jdbcType=INTEGER}
</select> </select>
<!-- Search for specific connection records --> <!-- Search for specific connection records -->
<select id="searchReadable" resultMap="ConnectionRecordResultMap"> <select id="searchReadable" resultMap="ConnectionRecordResultMap">
SELECT SELECT TOP (#{limit,jdbcType=INTEGER})
[guacamole].[connection_history].connection_id, [guacamole].[connection_history].connection_id,
[guacamole].[connection_history].connection_name, [guacamole].[connection_history].connection_name,
[guacamole].[connection_history].remote_host, [guacamole].[connection_history].remote_host,
@@ -209,8 +207,6 @@
<if test="sortPredicate.descending">DESC</if> <if test="sortPredicate.descending">DESC</if>
</foreach> </foreach>
LIMIT #{limit,jdbcType=INTEGER}
</select> </select>
</mapper> </mapper>

View File

@@ -117,12 +117,10 @@
#{permission.objectIdentifier,jdbcType=INTEGER} AS connection_group_id #{permission.objectIdentifier,jdbcType=INTEGER} AS connection_group_id
</foreach> </foreach>
AS permissions AS permissions
WHERE (user_id, permission, connection_group_id) NOT IN ( WHERE NOT EXISTS (SELECT 1 FROM [guacamole].[connection_group_permission]
SELECT WHERE [guacamole].[connection_group_permission].user_id = permissions.user_id AND
[guacamole].[connection_group_permission].user_id, [guacamole].[connection_group_permission].permission = permissions.permission AND
[guacamole].[connection_group_permission].permission, [guacamole].[connection_group_permission].connection_group_id = permissions.connection_group_id
[guacamole].[connection_group_permission].connection_group_id
FROM [guacamole].[connection_group_permission]
); );
</insert> </insert>

View File

@@ -87,12 +87,12 @@
<delete id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.ObjectPermissionModel"> <delete id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.ObjectPermissionModel">
DELETE FROM [guacamole].[connection_permission] DELETE FROM [guacamole].[connection_permission]
WHERE (user_id, permission, connection_id) IN WHERE
<foreach collection="permissions" item="permission" <foreach collection="permissions" item="permission"
open="(" separator="," close=")"> open="(" separator=" OR " close=")">
(#{permission.userID,jdbcType=INTEGER}, (user_id = #{permission.userID,jdbcType=INTEGER} AND
#{permission.type,jdbcType=VARCHAR}, permission = #{permission.type,jdbcType=VARCHAR} AND
#{permission.objectIdentifier,jdbcType=INTEGER}) connection_id = #{permission.objectIdentifier,jdbcType=INTEGER})
</foreach> </foreach>
</delete> </delete>
@@ -117,12 +117,10 @@
#{permission.objectIdentifier,jdbcType=INTEGER} AS connection_id #{permission.objectIdentifier,jdbcType=INTEGER} AS connection_id
</foreach> </foreach>
AS permissions AS permissions
WHERE (user_id, permission, connection_id) NOT IN ( WHERE NOT EXISTS ( SELECT 1 FROM [guacamole].[connection_permission]
SELECT WHERE [guacamole].[connection_permission].user_id = permissions.user_id AND
[guacamole].[connection_permission].user_id, [guacamole].[connection_permission].permission = permissions.permission AND
[guacamole].[connection_permission].permission, [guacamole].[connection_permission].connection_id = permissions.connection_id
[guacamole].[connection_permission].connection_id
FROM [guacamole].[connection_permission]
); );
</insert> </insert>

View File

@@ -87,12 +87,12 @@
<delete id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.ObjectPermissionModel"> <delete id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.ObjectPermissionModel">
DELETE FROM [guacamole].[sharing_profile_permission] DELETE FROM [guacamole].[sharing_profile_permission]
WHERE (user_id, permission, sharing_profile_id) IN WHERE
<foreach collection="permissions" item="permission" <foreach collection="permissions" item="permission"
open="(" separator="," close=")"> open="(" separator=" OR " close=")">
(#{permission.userID,jdbcType=INTEGER}, (user_id = #{permission.userID,jdbcType=INTEGER} AND
#{permission.type,jdbcType=VARCHAR}, permission = #{permission.type,jdbcType=VARCHAR} AND
#{permission.objectIdentifier,jdbcType=INTEGER}) sharing_profile_id = #{permission.objectIdentifier,jdbcType=INTEGER})
</foreach> </foreach>
</delete> </delete>
@@ -117,12 +117,10 @@
#{permission.objectIdentifier,jdbcType=INTEGER} AS sharing_profile_id #{permission.objectIdentifier,jdbcType=INTEGER} AS sharing_profile_id
</foreach> </foreach>
AS permissions AS permissions
WHERE (user_id, permission, sharing_profile_id) NOT IN ( WHERE NOT EXISTS (SELECT 1 FROM [guacamole].[sharing_profile_permission]
SELECT WHERE [guacamole].[sharing_profile_permission].user_id = permissions.user_id
[guacamole].[sharing_profile_permission].user_id, AND [guacamole].[sharing_profile_permission].permission = permissions.permission
[guacamole].[sharing_profile_permission].permission, AND [guacamole].[sharing_profile_permission].sharing_profile_id = permissions.sharing_profile_id
[guacamole].[sharing_profile_permission].sharing_profile_id
FROM [guacamole].[sharing_profile_permission]
); );
</insert> </insert>

View File

@@ -63,11 +63,11 @@
<delete id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.SystemPermissionModel"> <delete id="delete" parameterType="org.apache.guacamole.auth.jdbc.permission.SystemPermissionModel">
DELETE FROM [guacamole].[system_permission] DELETE FROM [guacamole].[system_permission]
WHERE (user_id, permission) IN WHERE
<foreach collection="permissions" item="permission" <foreach collection="permissions" item="permission"
open="(" separator="," close=")"> open="(" separator=" OR " close=")">
(#{permission.userID,jdbcType=INTEGER}, (user_id = #{permission.userID,jdbcType=INTEGER}
#{permission.type,jdbcType=VARCHAR}) AND permission = #{permission.type,jdbcType=VARCHAR})
</foreach> </foreach>
</delete> </delete>
@@ -89,11 +89,9 @@
#{permission.type,jdbcType=VARCHAR} AS permission #{permission.type,jdbcType=VARCHAR} AS permission
</foreach> </foreach>
AS permissions AS permissions
WHERE (user_id, permission) NOT IN ( WHERE NOT EXISTS (SELECT 1 FROM [guacamole].[system_permission]
SELECT WHERE [guacamole].[system_permission].user_id = permissions.user_id
[guacamole].[system_permission].user_id, AND [guacamole].[system_permission].permission = permissions.permission
[guacamole].[system_permission].permission
FROM [guacamole].[system_permission]
); );
</insert> </insert>

View File

@@ -124,12 +124,10 @@
</foreach> </foreach>
AS permissions AS permissions
JOIN [guacamole].[user] ON [guacamole].[user].username = permissions.username JOIN [guacamole].[user] ON [guacamole].[user].username = permissions.username
WHERE (permissions.user_id, permissions.permission, [guacamole].[user].user_id) NOT IN ( WHERE NOT EXISTS (SELECT 1 FROM [guacamole].[user_permission]
SELECT WHERE [guacamole].[user_permission].user_id = permissions.user_id
[guacamole].[user_permission].user_id, AND [guacamole].[user_permission].permission = permissions.permission
[guacamole].[user_permission].permission, AND [guacamole].[user_permission].affected_user_id = [guacamole].[user].user_id
[guacamole].[user_permission].affected_user_id
FROM [guacamole].[user_permission]
); );
</insert> </insert>

View File

@@ -57,7 +57,7 @@
) )
VALUES VALUES
<foreach collection="parameters" item="parameter" separator=","> <foreach collection="parameters" item="parameter" separator=",">
(#{parameter.sharingProfileIdentifier,jdbcType=INTEGER} (#{parameter.sharingProfileIdentifier,jdbcType=INTEGER},
#{parameter.name,jdbcType=VARCHAR}, #{parameter.name,jdbcType=VARCHAR},
#{parameter.value,jdbcType=VARCHAR}) #{parameter.value,jdbcType=VARCHAR})
</foreach> </foreach>