mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 17:13:21 +00:00 
			
		
		
		
	GUACAMOLE-1239: Update JDBC queries to handle case-sensitivity.
This commit is contained in:
		| @@ -61,7 +61,14 @@ | ||||
|             (SELECT user_id FROM guacamole_user | ||||
|              JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|              WHERE | ||||
|                    guacamole_entity.name = #{record.username,jdbcType=VARCHAR} | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         guacamole_entity.name = #{record.username,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(guacamole_entity.name) = LOWER(#{record.username,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|                AND guacamole_entity.type = 'USER'::guacamole_entity_type), | ||||
|             #{record.username,jdbcType=VARCHAR}, | ||||
|             #{record.startDate,jdbcType=TIMESTAMP}, | ||||
| @@ -110,7 +117,15 @@ | ||||
|                     guacamole_connection_history.user_id IN ( | ||||
|                         SELECT user_id | ||||
|                         FROM guacamole_user | ||||
|                         WHERE POSITION(#{term.term,jdbcType=VARCHAR} IN username) > 0 | ||||
|                     WHERE | ||||
|                         <choose> | ||||
|                             <when test="caseSensitive"> | ||||
|                                 POSITION(#{term.term,jdbcType=VARCHAR} IN username) > 0 | ||||
|                             </when> | ||||
|                             <otherwise> | ||||
|                                 POSITION(LOWER(#{term.term,jdbcType=VARCHAR}) IN LOWER(username)) > 0 | ||||
|                             </otherwise> | ||||
|                         </choose> | ||||
|                     ) | ||||
|  | ||||
|                     OR guacamole_connection_history.connection_id IN ( | ||||
| @@ -198,7 +213,14 @@ | ||||
|                         FROM guacamole_user | ||||
|                         JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|                         WHERE | ||||
|                                 POSITION(#{term.term,jdbcType=VARCHAR} IN guacamole_entity.name) > 0 | ||||
|                             <choose> | ||||
|                                 <when test="caseSensitive"> | ||||
|                                     POSITION(#{term.term,jdbcType=VARCHAR} IN guacamole_entity.name) > 0 | ||||
|                                 </when> | ||||
|                                 <otherwise> | ||||
|                                     POSITION(LOWER(#{term.term,jdbcType=VARCHAR}) IN LOWER(guacamole_entity.name)) > 0 | ||||
|                                 </otherwise> | ||||
|                             </choose> | ||||
|                             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|                     ) | ||||
|  | ||||
|   | ||||
| @@ -28,7 +28,7 @@ | ||||
|         <result column="entity_id"         property="entityID"         jdbcType="INTEGER"/> | ||||
|         <result column="permission"        property="type"             jdbcType="VARCHAR" | ||||
|                 javaType="org.apache.guacamole.net.auth.permission.ObjectPermission$Type"/> | ||||
|         <result column="affected_name"     property="objectIdentifier" jdbcType="INTEGER"/> | ||||
|         <result column="affected_name"     property="objectIdentifier" jdbcType="VARCHAR"/> | ||||
|     </resultMap> | ||||
|  | ||||
|     <!-- Select all permissions for a given entity --> | ||||
| @@ -68,7 +68,16 @@ | ||||
|                 <property name="groups"   value="effectiveGroups"/> | ||||
|             </include> | ||||
|             AND permission = #{type,jdbcType=VARCHAR}::guacamole_object_permission_type | ||||
|             AND affected_entity.name = #{identifier,jdbcType=VARCHAR} | ||||
|             AND | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     affected_entity.name = #{identifier,jdbcType=VARCHAR} | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(affected_entity.name) = LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|              | ||||
|             AND affected_entity.type = 'USER'::guacamole_entity_type | ||||
|  | ||||
|     </select> | ||||
| @@ -86,11 +95,23 @@ | ||||
|                 <property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/> | ||||
|                 <property name="groups"   value="effectiveGroups"/> | ||||
|             </include> | ||||
|             AND affected_entity.name IN | ||||
|                 <foreach collection="identifiers" item="identifier" | ||||
|             AND  | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         affected_entity.name IN | ||||
|                         <foreach collection="identifiers" item="identifier" | ||||
|                          open="(" separator="," close=")"> | ||||
|                     #{identifier,jdbcType=VARCHAR} | ||||
|                 </foreach> | ||||
|                             #{identifier,jdbcType=VARCHAR} | ||||
|                         </foreach> | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(affected_entity.name) IN | ||||
|                         <foreach collection="identifiers" item="identifier" | ||||
|                          open="(" separator="," close=")"> | ||||
|                             LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                         </foreach> | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             AND permission IN | ||||
|                 <foreach collection="permissions" item="permission" | ||||
|                          open="(" separator="," close=")"> | ||||
| @@ -108,13 +129,26 @@ | ||||
|         WHERE | ||||
|             guacamole_user_permission.affected_user_id = affected_user.user_id | ||||
|             AND affected_user.entity_id = affected_entity.entity_id | ||||
|             AND (guacamole_user_permission.entity_id, permission, affected_entity.name) IN | ||||
|                 <foreach collection="permissions" item="permission" | ||||
|                          open="(" separator="," close=")"> | ||||
|                     (#{permission.entityID,jdbcType=INTEGER}, | ||||
|                      #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type, | ||||
|                      #{permission.objectIdentifier,jdbcType=INTEGER}) | ||||
|                 </foreach> | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     AND (guacamole_user_permission.entity_id, permission, affected_entity.name) IN | ||||
|                     <foreach collection="permissions" item="permission" | ||||
|                             open="(" separator="," close=")"> | ||||
|                         (#{permission.entityID,jdbcType=INTEGER}, | ||||
|                          #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type, | ||||
|                          #{permission.objectIdentifier,jdbcType=VARCHAR}) | ||||
|                     </foreach> | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     AND (guacamole_user_permission.entity_id, permission, LOWER(affected_entity.name)) IN | ||||
|                     <foreach collection="permissions" item="permission" | ||||
|                              open="(" separator="," close=")"> | ||||
|                         (#{permission.entityID,jdbcType=INTEGER}, | ||||
|                          #{permission.type,jdbcType=VARCHAR}::guacamole_object_permission_type, | ||||
|                          LOWER(#{permission.objectIdentifier,jdbcType=VARCHAR})) | ||||
|                     </foreach> | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             AND affected_entity.type = 'USER'::guacamole_entity_type | ||||
|  | ||||
|     </delete> | ||||
| @@ -140,7 +174,14 @@ | ||||
|             </foreach> | ||||
|         AS permissions | ||||
|         JOIN guacamole_entity affected_entity ON | ||||
|                 affected_entity.name = permissions.affected_name | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     affected_entity.name = permissions.affected_name | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(affected_entity.name) = LOWER(permissions.affected_name) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             AND affected_entity.type = 'USER'::guacamole_entity_type | ||||
|         JOIN guacamole_user affected_user ON affected_user.entity_id = affected_entity.entity_id | ||||
|         WHERE (permissions.entity_id, permissions.permission, affected_user.user_id) NOT IN ( | ||||
|   | ||||
| @@ -43,7 +43,14 @@ | ||||
|         JOIN guacamole_user ON guacamole_user_password_history.user_id = guacamole_user.user_id | ||||
|         JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|         WHERE | ||||
|             guacamole_entity.name = #{username,jdbcType=VARCHAR} | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name = #{username,jdbcType=VARCHAR} | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) = LOWER(#{username,jdbcType=VARCHAR}) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|         ORDER BY | ||||
|             guacamole_user_password_history.password_date DESC | ||||
|         LIMIT #{maxHistorySize} | ||||
|   | ||||
| @@ -130,10 +130,26 @@ | ||||
|         FROM guacamole_user | ||||
|         JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|         LEFT JOIN guacamole_user_history ON guacamole_user_history.user_id = guacamole_user.user_id | ||||
|         WHERE guacamole_entity.name IN | ||||
|         WHERE | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             IN | ||||
|             <foreach collection="identifiers" item="identifier" | ||||
|                      open="(" separator="," close=")"> | ||||
|                 #{identifier,jdbcType=VARCHAR} | ||||
|                     open="(" separator="," close=")"> | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         #{identifier,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             </foreach> | ||||
|             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|         GROUP BY guacamole_user.user_id, guacamole_entity.entity_id; | ||||
| @@ -145,10 +161,26 @@ | ||||
|         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 | ||||
|         WHERE guacamole_entity.name IN | ||||
|         WHERE  | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             IN | ||||
|             <foreach collection="identifiers" item="identifier" | ||||
|                      open="(" separator="," close=")"> | ||||
|                 #{identifier,jdbcType=VARCHAR} | ||||
|                     open="(" separator="," close=")"> | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         #{identifier,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             </foreach> | ||||
|             AND guacamole_entity.type = 'USER'::guacamole_entity_type; | ||||
|  | ||||
| @@ -180,10 +212,26 @@ | ||||
|         FROM guacamole_user | ||||
|         JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|         LEFT JOIN guacamole_user_history ON guacamole_user_history.user_id = guacamole_user.user_id | ||||
|         WHERE guacamole_entity.name IN | ||||
|         WHERE  | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             IN | ||||
|             <foreach collection="identifiers" item="identifier" | ||||
|                      open="(" separator="," close=")"> | ||||
|                 #{identifier,jdbcType=VARCHAR} | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         #{identifier,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             </foreach> | ||||
|             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|             AND guacamole_user.user_id IN ( | ||||
| @@ -201,10 +249,26 @@ | ||||
|         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 | ||||
|         WHERE guacamole_entity.name IN | ||||
|         WHERE  | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             IN | ||||
|             <foreach collection="identifiers" item="identifier" | ||||
|                      open="(" separator="," close=")"> | ||||
|                 #{identifier,jdbcType=VARCHAR} | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         #{identifier,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             </foreach> | ||||
|             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|             AND guacamole_user.user_id IN ( | ||||
| @@ -243,7 +307,14 @@ | ||||
|         JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|         LEFT JOIN guacamole_user_history ON guacamole_user_history.user_id = guacamole_user.user_id | ||||
|         WHERE | ||||
|             guacamole_entity.name = #{username,jdbcType=VARCHAR} | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name = #{username,jdbcType=VARCHAR} | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) = LOWER(#{username,jdbcType=VARCHAR}) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|         GROUP BY guacamole_user.user_id, guacamole_entity.entity_id; | ||||
|  | ||||
| @@ -255,16 +326,29 @@ | ||||
|         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 | ||||
|         WHERE | ||||
|             guacamole_entity.name = #{username,jdbcType=VARCHAR} | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name = #{username,jdbcType=VARCHAR} | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) = LOWER(#{username,jdbcType=VARCHAR}) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|  | ||||
|     </select> | ||||
|  | ||||
|     <!-- Delete single user by username --> | ||||
|     <delete id="delete"> | ||||
|         DELETE FROM guacamole_entity | ||||
|         WHERE | ||||
|             name = #{identifier,jdbcType=VARCHAR} | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     name = #{identifier,jdbcType=VARCHAR} | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(name) = LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             AND type = 'USER'::guacamole_entity_type | ||||
|     </delete> | ||||
|  | ||||
| @@ -326,7 +410,7 @@ | ||||
|             email_address = #{object.emailAddress,jdbcType=VARCHAR}, | ||||
|             organization = #{object.organization,jdbcType=VARCHAR}, | ||||
|             organizational_role = #{object.organizationalRole,jdbcType=VARCHAR} | ||||
|         WHERE user_id = #{object.objectID,jdbcType=VARCHAR} | ||||
|         WHERE user_id = #{object.objectID,jdbcType=INTEGER} | ||||
|     </update> | ||||
|  | ||||
|     <!-- Delete attributes associated with user --> | ||||
|   | ||||
| @@ -49,7 +49,14 @@ | ||||
|             (SELECT user_id FROM guacamole_user | ||||
|              JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|              WHERE | ||||
|                    guacamole_entity.name = #{record.username,jdbcType=VARCHAR} | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         guacamole_entity.name = #{record.username,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(guacamole_entity.name) = LOWER(#{record.username,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose>                    | ||||
|                AND guacamole_entity.type = 'USER'::guacamole_entity_type), | ||||
|             #{record.username,jdbcType=VARCHAR}, | ||||
|             #{record.startDate,jdbcType=TIMESTAMP}, | ||||
| @@ -81,7 +88,14 @@ | ||||
|         <where> | ||||
|              | ||||
|             <if test="identifier != null"> | ||||
|                 guacamole_user_history.username = #{identifier,jdbcType=VARCHAR} | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         guacamole_user_history.username = #{identifier,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(guacamole_user_history.username) = LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             </if> | ||||
|              | ||||
|             <foreach collection="terms" item="term" open=" AND " separator=" AND "> | ||||
| @@ -92,7 +106,14 @@ | ||||
|                         FROM guacamole_user | ||||
|                         JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|                         WHERE | ||||
|                                 POSITION(#{term.term,jdbcType=VARCHAR} IN guacamole_entity.name) > 0 | ||||
|                             <choose> | ||||
|                                 <when test="caseSensitive"> | ||||
|                                     POSITION(#{term.term,jdbcType=VARCHAR} IN guacamole_entity.name) > 0 | ||||
|                                 </when> | ||||
|                                 <otherwise> | ||||
|                                     POSITION(LOWER(#{term.term,jdbcType=VARCHAR}) IN LOWER(guacamole_entity.name)) > 0 | ||||
|                                 </otherwise> | ||||
|                             </choose> | ||||
|                             AND guacamole_entity.type = 'USER'::guacamole_entity_type), | ||||
|                     ) | ||||
|  | ||||
| @@ -146,7 +167,15 @@ | ||||
|             ) | ||||
|  | ||||
|             <if test="identifier != null"> | ||||
|                 AND guacamole_entity.name = #{identifier,jdbcType=VARCHAR} | ||||
|                 AND | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         guacamole_entity.name = #{identifier,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(guacamole_entity.name) = LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             </if> | ||||
|  | ||||
|             <foreach collection="terms" item="term" open=" AND " separator=" AND "> | ||||
| @@ -157,7 +186,14 @@ | ||||
|                         FROM guacamole_user | ||||
|                         JOIN guacamole_entity ON guacamole_user.entity_id = guacamole_entity.entity_id | ||||
|                         WHERE | ||||
|                                 POSITION(#{term.term,jdbcType=VARCHAR} IN guacamole_entity.name) > 0 | ||||
|                             <choose> | ||||
|                                 <when test="caseSensitive"> | ||||
|                                     POSITION(#{term.term,jdbcType=VARCHAR} IN guacamole_entity.name) > 0 | ||||
|                                 </when> | ||||
|                                 <otherwise> | ||||
|                                     POSITION(LOWER(#{term.term,jdbcType=VARCHAR}) IN LOWER(guacamole_entity.name)) > 0 | ||||
|                                 </otherwise> | ||||
|                             </choose> | ||||
|                             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|                     ) | ||||
|  | ||||
|   | ||||
| @@ -58,11 +58,27 @@ | ||||
|             user_group_id = #{parent.objectID,jdbcType=INTEGER} | ||||
|             AND guacamole_entity.entity_id = member_entity_id | ||||
|             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|             AND guacamole_entity.name IN | ||||
|                 <foreach collection="children" item="identifier" | ||||
|                          open="(" separator="," close=")"> | ||||
|                     #{identifier,jdbcType=VARCHAR} | ||||
|                 </foreach> | ||||
|             AND | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             IN | ||||
|             <foreach collection="children" item="identifier" | ||||
|                      open="(" separator="," close=")"> | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         #{identifier,jdbcType=VARCHAR} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(#{identifier,jdbcType=VARCHAR}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             </foreach> | ||||
|     </delete> | ||||
|  | ||||
|     <!-- Insert member users by name --> | ||||
| @@ -76,11 +92,26 @@ | ||||
|             guacamole_entity.entity_id | ||||
|         FROM guacamole_entity | ||||
|         WHERE | ||||
|             guacamole_entity.name IN | ||||
|                 <foreach collection="children" item="identifier" | ||||
|                          open="(" separator="," close=")"> | ||||
|                     #{identifier} | ||||
|                 </foreach> | ||||
|             <choose> | ||||
|                 <when test="caseSensitive"> | ||||
|                     guacamole_entity.name | ||||
|                 </when> | ||||
|                 <otherwise> | ||||
|                     LOWER(guacamole_entity.name) | ||||
|                 </otherwise> | ||||
|             </choose> | ||||
|             IN | ||||
|             <foreach collection="children" item="identifier" | ||||
|                      open="(" separator="," close=")"> | ||||
|                 <choose> | ||||
|                     <when test="caseSensitive"> | ||||
|                         #{identifier} | ||||
|                     </when> | ||||
|                     <otherwise> | ||||
|                         LOWER(#{identifier}) | ||||
|                     </otherwise> | ||||
|                 </choose> | ||||
|             </foreach> | ||||
|             AND guacamole_entity.type = 'USER'::guacamole_entity_type | ||||
|             AND guacamole_entity.entity_id NOT IN ( | ||||
|                 SELECT guacamole_user_group_member.member_entity_id | ||||
|   | ||||
		Reference in New Issue
	
	Block a user