diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml index 391e90d30..d42b47a1f 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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=VARCHAR} - 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=VARCHAR} - 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=VARCHAR} - AND - - - - - AND permission = 'READ'; + AND guacamole_connection_attribute.connection_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml index daeec396f..022ec97b3 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml @@ -172,31 +172,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=VARCHAR} + AND guacamole_connection_history.connection_id = #{identifier,jdbcType=VARCHAR} diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml index 9addd3c10..7274f79ae 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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=VARCHAR} - 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=VARCHAR} - 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=VARCHAR} - 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=VARCHAR} - AND - - - - - AND permission = 'READ'; + AND guacamole_connection_group_attribute.connection_group_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml index 455f31f14..ad8076c85 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml index bf8706e36..072e644f4 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml index 52c83e3dc..58fba1430 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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=VARCHAR} - 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=VARCHAR} - AND - - - - - AND permission = 'READ'; + AND guacamole_sharing_profile_attribute.sharing_profile_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml index a27ff1b59..0dcfa2efc 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml @@ -63,20 +63,45 @@ WHERE guacamole_entity.type = 'USER' + + + 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' - 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' - AND - - - - - AND permission = 'READ'; + AND guacamole_user.user_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml index 1b0ec4e3b..764213e6d 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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' - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml index 46edb96cd..447321a24 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml @@ -160,21 +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-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml index 37092b4f6..4d68da754 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml @@ -49,20 +49,45 @@ WHERE guacamole_entity.type = 'USER_GROUP' + + + 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' - 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' - AND - - - - - AND permission = 'READ'; + AND guacamole_user_group.user_group_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml index aedc956c5..bfcd6c647 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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' - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml index 9e0820392..609d907f5 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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' - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml index 4ef3c72ba..9fa81b91e 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/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' - AND permission = 'READ' 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' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml index 54cb575c0..7b1adae8e 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionMapper.xml @@ -63,17 +63,38 @@ FROM [guacamole_connection] - - + + + + @@ -89,16 +110,15 @@ @@ -172,51 +192,48 @@ WHERE [guacamole_connection_history].connection_id = [guacamole_connection].connection_id ) AS last_active FROM [guacamole_connection] - JOIN [guacamole_connection_permission] ON [guacamole_connection_permission].connection_id = [guacamole_connection].connection_id WHERE [guacamole_connection].connection_id IN #{identifier,jdbcType=INTEGER} - AND - - - - - AND permission = 'READ'; + AND [guacamole_connection].connection_id IN ( + + + + + ); 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} - 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} - AND - - - - - AND permission = 'READ'; + AND [guacamole_connection_attribute].connection_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml index e24f2e863..0ea14cc85 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connection/ConnectionRecordMapper.xml @@ -168,31 +168,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} + AND [guacamole_connection_history].connection_id = #{identifier,jdbcType=INTEGER} diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml index 32c1d1348..4bc8a2796 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/connectiongroup/ConnectionGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/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} - 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} - 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} - 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} - AND - - - - - AND permission = 'READ'; + AND [guacamole_connection_group_attribute].connection_group_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml index ef58daf3d..23cef25e3 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/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-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml index 23feeeeaf..bb45e4bbc 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/SharingProfilePermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/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-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml index 450341921..5c088045e 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/permission/UserPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/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} - 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} - AND - - - - - AND permission = 'READ'; + AND [guacamole_sharing_profile_attribute].sharing_profile_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml index 7d70950af..80344968b 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserMapper.xml @@ -63,20 +63,45 @@ WHERE [guacamole_entity].type = 'USER' + + + SELECT DISTINCT [guacamole_user_permission].affected_user_id + FROM [guacamole_user_permission] + WHERE + + + + + + AND permission = 'READ' + + @@ -160,19 +185,18 @@ ) 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 WHERE [guacamole_entity].name IN #{identifier,jdbcType=VARCHAR} AND [guacamole_entity].type = 'USER' - AND - - - - - AND permission = 'READ'; + AND [guacamole_user].user_id IN ( + + + + + ); SELECT [guacamole_user_attribute].user_id, @@ -181,19 +205,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' - AND - - - - - AND permission = 'READ'; + AND [guacamole_user].user_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml index e6eccba96..ee67931ad 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserParentUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/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' - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml index 179ef39ae..8518e7097 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/user/UserRecordMapper.xml @@ -158,21 +158,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-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml index aed0247be..21c776aa1 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMapper.xml @@ -49,20 +49,45 @@ WHERE [guacamole_entity].type = 'USER_GROUP' + + + 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' - 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' - AND - - - - - AND permission = 'READ'; + AND [guacamole_user_group].user_group_id IN ( + + + + + ); diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml index 2092f24e9..b11a3c529 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/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' - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml index 2c91c92c2..b0682b041 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupMemberUserMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/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' - AND permission = 'READ' diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml index 0ea9252e7..198a6244d 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/src/main/resources/org/apache/guacamole/auth/jdbc/usergroup/UserGroupParentUserGroupMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-sqlserver/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' - AND permission = 'READ'