diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/base/EntityMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/base/EntityMapper.xml index 21efb9954..a29251194 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/base/EntityMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/apache/guacamole/auth/jdbc/base/EntityMapper.xml @@ -73,27 +73,31 @@ JOIN guacamole_user_group_member ON guacamole_user_group.user_group_id = guacamole_user_group_member.user_group_id WHERE guacamole_user_group.disabled = false - AND ( - guacamole_user_group_member.member_entity_id = #{entity.entityID} - - OR guacamole_user_group_member.member_entity_id IN ( - SELECT entity_id FROM guacamole_entity - WHERE type = 'USER_GROUP' AND name IN - - #{effectiveGroup,jdbcType=VARCHAR} - - ) - OR guacamole_user_group.entity_id IN ( - SELECT entity_id FROM guacamole_entity - WHERE type = 'USER_GROUP' AND name IN - - #{effectiveGroup,jdbcType=VARCHAR} - - ) - - ) + AND guacamole_user_group_member.member_entity_id = #{entity.entityID} + + UNION SELECT + guacamole_entity.name + FROM guacamole_user_group + JOIN guacamole_entity ON guacamole_user_group.entity_id = guacamole_entity.entity_id + JOIN guacamole_user_group_member ON guacamole_user_group.user_group_id = guacamole_user_group_member.user_group_id + JOIN guacamole_entity member_entity ON guacamole_user_group_member.member_entity_id = member_entity.entity_id + WHERE + guacamole_user_group.disabled = false + AND member_entity.type = 'USER_GROUP' AND member_entity.name IN + + #{effectiveGroup,jdbcType=VARCHAR} + + UNION SELECT + guacamole_entity.name + FROM guacamole_user_group + JOIN guacamole_entity ON guacamole_user_group.entity_id = guacamole_entity.entity_id + WHERE type = 'USER_GROUP' AND name IN + + #{effectiveGroup,jdbcType=VARCHAR} + +