You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@guacamole.apache.org by jm...@apache.org on 2016/08/14 01:03:54 UTC
[1/2] incubator-guacamole-client git commit: GUACAMOLE-75: Do not
insert duplicate permissions.
Repository: incubator-guacamole-client
Updated Branches:
refs/heads/master 6165ce3de -> d68ccab97
GUACAMOLE-75: Do not insert duplicate permissions.
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/e7114528
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/e7114528
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/e7114528
Branch: refs/heads/master
Commit: e71145285a3efc15081ee74b6fd4876ca0b3bb11
Parents: 8e283ef
Author: Michael Jumper <mj...@apache.org>
Authored: Fri Aug 12 11:04:06 2016 -0700
Committer: Michael Jumper <mj...@apache.org>
Committed: Fri Aug 12 11:26:05 2016 -0700
----------------------------------------------------------------------
.../ConnectionGroupPermissionMapper.xml | 23 +++++++++++++++-----
.../permission/ConnectionPermissionMapper.xml | 23 +++++++++++++++-----
.../SharingProfilePermissionMapper.xml | 23 +++++++++++++++-----
.../jdbc/permission/SystemPermissionMapper.xml | 19 ++++++++++++----
.../jdbc/permission/UserPermissionMapper.xml | 15 +++++++++++--
5 files changed, 82 insertions(+), 21 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/e7114528/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml
index c171b2d..5ab114a 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml
@@ -105,12 +105,25 @@
permission,
connection_group_id
)
- VALUES
- <foreach collection="permissions" item="permission" separator=",">
- (#{permission.userID,jdbcType=INTEGER},
- #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type,
- #{permission.objectIdentifier,jdbcType=INTEGER}::integer)
+ SELECT DISTINCT
+ permissions.user_id,
+ permissions.permission,
+ permissions.connection_group_id
+ FROM
+ <foreach collection="permissions" item="permission"
+ open="(" separator="UNION ALL" close=")">
+ SELECT #{permission.userID,jdbcType=INTEGER} AS user_id,
+ #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type AS permission,
+ #{permission.objectIdentifier,jdbcType=INTEGER}::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
+ );
</insert>
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/e7114528/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml
index f088932..eed00aa 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml
@@ -105,12 +105,25 @@
permission,
connection_id
)
- VALUES
- <foreach collection="permissions" item="permission" separator=",">
- (#{permission.userID,jdbcType=INTEGER},
- #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type,
- #{permission.objectIdentifier,jdbcType=INTEGER}::integer)
+ SELECT DISTINCT
+ permissions.user_id,
+ permissions.permission,
+ permissions.connection_id
+ FROM
+ <foreach collection="permissions" item="permission"
+ open="(" separator="UNION ALL" close=")">
+ SELECT #{permission.userID,jdbcType=INTEGER} AS user_id,
+ #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type AS permission,
+ #{permission.objectIdentifier,jdbcType=INTEGER}::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
+ );
</insert>
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/e7114528/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml
index 6f65edb..faddcdb 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml
@@ -105,12 +105,25 @@
permission,
sharing_profile_id
)
- VALUES
- <foreach collection="permissions" item="permission" separator=",">
- (#{permission.userID,jdbcType=INTEGER},
- #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type,
- #{permission.objectIdentifier,jdbcType=INTEGER}::integer)
+ SELECT DISTINCT
+ permissions.user_id,
+ permissions.permission,
+ permissions.sharing_profile_id
+ FROM
+ <foreach collection="permissions" item="permission"
+ open="(" separator="UNION ALL" close=")">
+ SELECT #{permission.userID,jdbcType=INTEGER} AS user_id,
+ #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type AS permission,
+ #{permission.objectIdentifier,jdbcType=INTEGER}::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
+ );
</insert>
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/e7114528/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml
index 35010f4..96ffb21 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SystemPermissionMapper.xml
@@ -79,11 +79,22 @@
user_id,
permission
)
- VALUES
- <foreach collection="permissions" item="permission" separator=",">
- (#{permission.userID,jdbcType=INTEGER},
- #{permission.type,jdbcType=VARCHAR}::guacamole_system_permission_type)
+ SELECT DISTINCT
+ permissions.user_id,
+ permissions.permission
+ FROM
+ <foreach collection="permissions" item="permission"
+ open="(" separator="UNION ALL" close=")">
+ SELECT #{permission.userID,jdbcType=INTEGER} AS user_id,
+ #{permission.type,jdbcType=VARCHAR}::guacamole_system_permission_type 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
+ );
</insert>
http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/e7114528/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml
----------------------------------------------------------------------
diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml
index 4af8966..0126ae5 100644
--- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml
+++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml
@@ -111,7 +111,11 @@
permission,
affected_user_id
)
- SELECT permissions.user_id, permissions.permission, guacamole_user.user_id FROM
+ SELECT DISTINCT
+ permissions.user_id,
+ permissions.permission,
+ guacamole_user.user_id
+ FROM
<foreach collection="permissions" item="permission"
open="(" separator="UNION ALL" close=")">
SELECT #{permission.userID,jdbcType=INTEGER} AS user_id,
@@ -119,7 +123,14 @@
#{permission.objectIdentifier,jdbcType=INTEGER} AS username
</foreach>
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 (
+ SELECT
+ guacamole_user_permission.user_id,
+ guacamole_user_permission.permission,
+ guacamole_user_permission.affected_user_id
+ FROM guacamole_user_permission
+ );
</insert>
[2/2] incubator-guacamole-client git commit: GUACAMOLE-75: Merge fix
for postgres duplication permission insert.
Posted by jm...@apache.org.
GUACAMOLE-75: Merge fix for postgres duplication permission insert.
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/d68ccab9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/d68ccab9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/d68ccab9
Branch: refs/heads/master
Commit: d68ccab97e7e4da8a7ae78912381fbf97e243fa1
Parents: 6165ce3 e711452
Author: James Muehlner <ja...@guac-dev.org>
Authored: Sat Aug 13 18:02:01 2016 -0700
Committer: James Muehlner <ja...@guac-dev.org>
Committed: Sat Aug 13 18:02:01 2016 -0700
----------------------------------------------------------------------
.../ConnectionGroupPermissionMapper.xml | 23 +++++++++++++++-----
.../permission/ConnectionPermissionMapper.xml | 23 +++++++++++++++-----
.../SharingProfilePermissionMapper.xml | 23 +++++++++++++++-----
.../jdbc/permission/SystemPermissionMapper.xml | 19 ++++++++++++----
.../jdbc/permission/UserPermissionMapper.xml | 15 +++++++++++--
5 files changed, 82 insertions(+), 21 deletions(-)
----------------------------------------------------------------------