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(-)
----------------------------------------------------------------------