diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml index 859cec53e..05c4f61ce 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml @@ -63,17 +63,38 @@ FROM guacamole_connection - - + + + + @@ -89,16 +110,15 @@ @@ -166,53 +186,50 @@ failover_only, MAX(start_date) AS last_active FROM guacamole_connection - JOIN guacamole_connection_permission ON guacamole_connection_permission.connection_id = guacamole_connection.connection_id LEFT JOIN guacamole_connection_history ON guacamole_connection_history.connection_id = guacamole_connection.connection_id WHERE guacamole_connection.connection_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ' + AND guacamole_connection.connection_id IN ( + + + + + ) GROUP BY guacamole_connection.connection_id; SELECT primary_connection_id, guacamole_sharing_profile.sharing_profile_id FROM guacamole_sharing_profile - JOIN guacamole_sharing_profile_permission ON guacamole_sharing_profile_permission.sharing_profile_id = guacamole_sharing_profile.sharing_profile_id WHERE primary_connection_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ'; + AND guacamole_sharing_profile.sharing_profile_id IN ( + + + + + ); SELECT guacamole_connection_attribute.connection_id, attribute_name, attribute_value FROM guacamole_connection_attribute - JOIN guacamole_connection_permission ON guacamole_connection_permission.connection_id = guacamole_connection_attribute.connection_id WHERE guacamole_connection_attribute.connection_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ'; + AND guacamole_connection_attribute.connection_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml index 2d2ed5bc9..1dcf9506e 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml @@ -170,31 +170,27 @@ LEFT JOIN guacamole_connection ON guacamole_connection_history.connection_id = guacamole_connection.connection_id LEFT JOIN guacamole_user ON guacamole_connection_history.user_id = guacamole_user.user_id - - JOIN guacamole_connection_permission ON - guacamole_connection_history.connection_id = guacamole_connection_permission.connection_id - AND - - - - - AND guacamole_connection_permission.permission = 'READ' - - - JOIN guacamole_user_permission ON - guacamole_connection_history.user_id = guacamole_user_permission.affected_user_id - AND - - - - - AND guacamole_user_permission.permission = 'READ' - + + guacamole_connection_history.connection_id IN ( + + + + + ) + + + AND guacamole_connection_history.user_id IN ( + + + + + ) + - guacamole_connection_history.connection_id = #{identifier,jdbcType=INTEGER}::integer + AND guacamole_connection_history.connection_id = #{identifier,jdbcType=INTEGER}::integer diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml index 37841dee2..dd2dbabb2 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml @@ -64,17 +64,38 @@ FROM guacamole_connection_group - - + + + + @@ -90,16 +111,15 @@ @@ -163,66 +183,62 @@ max_connections_per_user, enable_session_affinity FROM guacamole_connection_group - JOIN guacamole_connection_group_permission ON guacamole_connection_group_permission.connection_group_id = guacamole_connection_group.connection_group_id WHERE guacamole_connection_group.connection_group_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ'; + AND guacamole_connection_group.connection_group_id IN ( + + + + + ); SELECT parent_id, guacamole_connection_group.connection_group_id FROM guacamole_connection_group - JOIN guacamole_connection_group_permission ON guacamole_connection_group_permission.connection_group_id = guacamole_connection_group.connection_group_id WHERE parent_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ'; + AND guacamole_connection_group.connection_group_id IN ( + + + + + ); SELECT parent_id, guacamole_connection.connection_id FROM guacamole_connection - JOIN guacamole_connection_permission ON guacamole_connection_permission.connection_id = guacamole_connection.connection_id WHERE parent_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ'; + AND guacamole_connection.connection_id IN ( + + + + + ); SELECT guacamole_connection_group_attribute.connection_group_id, attribute_name, attribute_value FROM guacamole_connection_group_attribute - JOIN guacamole_connection_group_permission ON guacamole_connection_group_permission.connection_group_id = guacamole_connection_group_attribute.connection_group_id WHERE guacamole_connection_group_attribute.connection_group_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ'; + AND guacamole_connection_group_attribute.connection_group_id IN ( + + + + + ); 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 e3b405321..b67f3b46c 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 @@ -34,7 +34,7 @@ - SELECT + SELECT DISTINCT #{entity.entityID,jdbcType=INTEGER} AS entity_id, permission, connection_id 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 d4ce5896d..35e04a72b 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 @@ -34,7 +34,7 @@ - SELECT + SELECT DISTINCT #{entity.entityID,jdbcType=INTEGER} AS entity_id, permission, affected_entity.name AS affected_name 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 fbd8ae07b..a4b5f1b7c 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 @@ -34,7 +34,7 @@ - - + + + + @@ -97,36 +118,34 @@ guacamole_sharing_profile.sharing_profile_name, primary_connection_id FROM guacamole_sharing_profile - JOIN guacamole_sharing_profile_permission ON guacamole_sharing_profile_permission.sharing_profile_id = guacamole_sharing_profile.sharing_profile_id WHERE guacamole_sharing_profile.sharing_profile_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ'; + AND guacamole_sharing_profile.sharing_profile_id IN ( + + + + + ); SELECT guacamole_sharing_profile_attribute.sharing_profile_id, attribute_name, attribute_value FROM guacamole_sharing_profile_attribute - JOIN guacamole_sharing_profile_permission ON guacamole_sharing_profile_permission.sharing_profile_id = guacamole_sharing_profile_attribute.sharing_profile_id WHERE guacamole_sharing_profile_attribute.sharing_profile_id IN #{identifier,jdbcType=INTEGER}::integer - AND - - - - - AND permission = 'READ'; + AND guacamole_sharing_profile_attribute.sharing_profile_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml index 1181b3774..94d607e33 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml @@ -63,20 +63,45 @@ WHERE guacamole_entity.type = 'USER'::guacamole_entity_type + + + SELECT DISTINCT guacamole_user_permission.affected_user_id + FROM guacamole_user_permission + WHERE + + + + + + AND permission = 'READ' + + @@ -154,7 +179,6 @@ MAX(start_date) AS last_active FROM guacamole_user JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id - JOIN guacamole_user_permission ON affected_user_id = guacamole_user.user_id LEFT JOIN guacamole_user_history ON guacamole_user_history.user_id = guacamole_user.user_id WHERE guacamole_entity.name IN AND guacamole_entity.type = 'USER'::guacamole_entity_type - AND - - - - - AND permission = 'READ' + AND guacamole_user.user_id IN ( + + + + + ) GROUP BY guacamole_user.user_id, guacamole_entity.entity_id; SELECT @@ -177,19 +201,18 @@ FROM guacamole_user_attribute JOIN guacamole_user ON guacamole_user.user_id = guacamole_user_attribute.user_id JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id - JOIN guacamole_user_permission ON affected_user_id = guacamole_user.user_id WHERE guacamole_entity.name IN #{identifier,jdbcType=VARCHAR} AND guacamole_entity.type = 'USER'::guacamole_entity_type - AND - - - - - AND permission = 'READ'; + AND guacamole_user.user_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml index bcff7a259..ef7dc425c 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml @@ -40,16 +40,15 @@ FROM guacamole_user_group_member JOIN guacamole_user_group ON guacamole_user_group_member.user_group_id = guacamole_user_group.user_group_id JOIN guacamole_entity ON guacamole_entity.entity_id = guacamole_user_group.entity_id - JOIN guacamole_user_group_permission ON affected_user_group_id = guacamole_user_group.user_group_id WHERE - - - - - + guacamole_user_group.user_group_id IN ( + + + + + ) AND guacamole_user_group_member.member_entity_id = #{parent.entityID,jdbcType=INTEGER} AND guacamole_entity.type = 'USER_GROUP'::guacamole_entity_type - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml index b943bb6ff..204329fdf 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml @@ -160,20 +160,19 @@ guacamole_user_history.end_date FROM guacamole_user_history - - JOIN guacamole_user_permission ON - guacamole_user_history.user_id = guacamole_user_permission.affected_user_id - AND - - - - - AND guacamole_user_permission.permission = 'READ' - + + + guacamole_connection_history.user_id IN ( + + + + + ) + - guacamole_entity.name = #{username,jdbcType=VARCHAR} + AND guacamole_entity.name = #{username,jdbcType=VARCHAR} diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml index 0006d4267..88232ad11 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml @@ -49,20 +49,45 @@ WHERE guacamole_entity.type = 'USER_GROUP'::guacamole_entity_type + + + SELECT DISTINCT guacamole_user_group_permission.affected_user_group_id + FROM guacamole_user_group_permission + WHERE + + + + + + AND permission = 'READ' + + @@ -110,19 +135,18 @@ disabled FROM guacamole_user_group JOIN guacamole_entity ON guacamole_user_group.entity_id = guacamole_entity.entity_id - JOIN guacamole_user_group_permission ON affected_user_group_id = guacamole_user_group.user_group_id WHERE guacamole_entity.name IN #{identifier,jdbcType=VARCHAR} AND guacamole_entity.type = 'USER_GROUP'::guacamole_entity_type - AND - - - - - AND permission = 'READ'; + AND guacamole_user_group.user_group_id IN ( + + + + + ); SELECT guacamole_user_group_attribute.user_group_id, @@ -131,19 +155,18 @@ FROM guacamole_user_group_attribute JOIN guacamole_user_group ON guacamole_user_group.user_group_id = guacamole_user_group_attribute.user_group_id JOIN guacamole_entity ON guacamole_user_group.entity_id = guacamole_entity.entity_id - JOIN guacamole_user_group_permission ON affected_user_group_id = guacamole_user_group.user_group_id WHERE guacamole_entity.name IN #{identifier,jdbcType=VARCHAR} AND guacamole_entity.type = 'USER_GROUP'::guacamole_entity_type - AND - - - - - AND permission = 'READ'; + AND guacamole_user_group.user_group_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml index 13f4d71a9..09f12b2bf 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml @@ -39,16 +39,15 @@ FROM guacamole_user_group_member JOIN guacamole_entity ON guacamole_entity.entity_id = guacamole_user_group_member.member_entity_id JOIN guacamole_user_group ON guacamole_user_group.entity_id = guacamole_entity.entity_id - JOIN guacamole_user_group_permission ON affected_user_group_id = guacamole_user_group.user_group_id WHERE - - - - - + guacamole_user_group.user_group_id IN ( + + + + + ) AND guacamole_user_group_member.user_group_id = #{parent.objectID,jdbcType=INTEGER} AND guacamole_entity.type = 'USER_GROUP'::guacamole_entity_type - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml index 562b1ad47..a3ad5a78d 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml @@ -39,16 +39,15 @@ FROM guacamole_user_group_member JOIN guacamole_entity ON guacamole_entity.entity_id = guacamole_user_group_member.member_entity_id JOIN guacamole_user ON guacamole_user.entity_id = guacamole_entity.entity_id - JOIN guacamole_user_permission ON affected_user_id = guacamole_user.user_id WHERE - - - - - + guacamole_user.user_id IN ( + + + + + ) AND guacamole_user_group_member.user_group_id = #{parent.objectID,jdbcType=INTEGER} AND guacamole_entity.type = 'USER'::guacamole_entity_type - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml index 035211c97..9fec628d3 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml @@ -40,16 +40,15 @@ FROM guacamole_user_group_member JOIN guacamole_user_group ON guacamole_user_group_member.user_group_id = guacamole_user_group.user_group_id JOIN guacamole_entity ON guacamole_entity.entity_id = guacamole_user_group.entity_id - JOIN guacamole_user_group_permission ON affected_user_group_id = guacamole_user_group.user_group_id WHERE - - - - - + guacamole_user_group.user_group_id IN ( + + + + + ) AND guacamole_user_group_member.member_entity_id = #{parent.entityID,jdbcType=INTEGER} AND guacamole_entity.type = 'USER_GROUP'::guacamole_entity_type - AND permission = 'READ'