mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-06 21:27:40 +00:00
GUACAMOLE-1239: Add case-sensitivity configuration for UserGroup objects and remove per-extension configuration.
This commit is contained in:
@@ -27,6 +27,7 @@ import java.util.Properties;
|
||||
import org.apache.guacamole.GuacamoleException;
|
||||
import org.apache.guacamole.auth.sqlserver.conf.SQLServerDriver;
|
||||
import org.apache.guacamole.auth.sqlserver.conf.SQLServerEnvironment;
|
||||
import org.apache.guacamole.properties.CaseSensitivity;
|
||||
import org.mybatis.guice.datasource.helper.JdbcHelper;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
@@ -96,8 +97,8 @@ public class SQLServerAuthenticationProviderModule implements Module {
|
||||
// Capture which driver to use for the connection.
|
||||
this.sqlServerDriver = environment.getSQLServerDriver();
|
||||
|
||||
// Check for case-sensitivity and warn admin.
|
||||
if (environment.getCaseSensitiveUsernames())
|
||||
// Check for case sensitivity and warn admin.
|
||||
if (environment.getCaseSensitivity() != CaseSensitivity.DISABLED)
|
||||
LOGGER.warn("The SQL Server module is currently configured to support "
|
||||
+ "case-sensitive username comparisons, however, the default "
|
||||
+ "collations for SQL Server databases do not support "
|
||||
|
@@ -51,11 +51,23 @@
|
||||
JOIN [guacamole_user_group] ON [guacamole_user_group].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
type = 'USER_GROUP'
|
||||
AND name IN
|
||||
<foreach collection="${groups}" item="effectiveGroup"
|
||||
open="(" separator="," close=")">
|
||||
#{effectiveGroup,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
name IN
|
||||
<foreach collection="${groups}" item="effectiveGroup"
|
||||
open="(" separator="," close=")">
|
||||
#{effectiveGroup,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER(name) IN
|
||||
<foreach collection="${groups}" item="effectiveGroup"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{effectiveGroup,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND disabled = 0
|
||||
)
|
||||
</if>
|
||||
@@ -83,11 +95,23 @@
|
||||
JOIN [guacamole_user_group] ON [guacamole_user_group].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
type = 'USER_GROUP'
|
||||
AND name IN
|
||||
<foreach collection="effectiveGroups" item="effectiveGroup"
|
||||
open="(" separator="," close=")">
|
||||
#{effectiveGroup,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
name IN
|
||||
<foreach collection="effectiveGroups" item="effectiveGroup"
|
||||
open="(" separator="," close=")">
|
||||
#{effectiveGroup,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER(name) IN
|
||||
<foreach collection="effectiveGroups" item="effectiveGroup"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{effectiveGroup,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND [guacamole_user_group].disabled = 0
|
||||
</if>
|
||||
UNION ALL
|
||||
|
@@ -82,9 +82,10 @@
|
||||
FROM [guacamole_connection_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = 'READ'
|
||||
</sql>
|
||||
@@ -92,8 +93,9 @@
|
||||
<!-- Select identifiers of all readable connections -->
|
||||
<select id="selectReadableIdentifiers" resultType="string">
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connection.ConnectionMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
</select>
|
||||
|
||||
@@ -115,8 +117,9 @@
|
||||
<if test="parentIdentifier == null">parent_id IS NULL</if>
|
||||
AND connection_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connection.ConnectionMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
</select>
|
||||
@@ -199,8 +202,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_connection].connection_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connection.ConnectionMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -213,8 +217,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_sharing_profile].sharing_profile_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.sharingprofile.SharingProfileMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -230,8 +235,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_connection_attribute].connection_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connection.ConnectionMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
|
@@ -69,7 +69,7 @@
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name = #{record.username,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -119,7 +119,7 @@
|
||||
FROM [guacamole_user]
|
||||
WHERE
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
CHARINDEX(#{term.term,jdbcType=VARCHAR} IN username) > 0
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -186,16 +186,18 @@
|
||||
<!-- Restrict to readable connections -->
|
||||
AND [guacamole_connection_history].connection_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connection.ConnectionMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
|
||||
<!-- Restrict to readable users -->
|
||||
AND [guacamole_connection_history].user_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.user.UserMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
|
||||
@@ -212,7 +214,7 @@
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
<choose>
|
||||
<hen test="caseSensitive">
|
||||
<hen test="caseSensitivity.caseSensitiveUsernames()">
|
||||
CHARINDEX(#{term.term,jdbcType=VARCHAR} IN [guacamole_entity].name) > 0
|
||||
</when>
|
||||
<otherwise>
|
||||
|
@@ -83,9 +83,10 @@
|
||||
FROM [guacamole_connection_group_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = 'READ'
|
||||
</sql>
|
||||
@@ -93,8 +94,9 @@
|
||||
<!-- Select identifiers of all readable connection groups -->
|
||||
<select id="selectReadableIdentifiers" resultType="string">
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
</select>
|
||||
|
||||
@@ -116,8 +118,9 @@
|
||||
<if test="parentIdentifier == null">parent_id IS NULL</if>
|
||||
AND connection_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
</select>
|
||||
@@ -190,8 +193,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_connection_group].connection_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -204,8 +208,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_connection_group].connection_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -218,8 +223,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_connection].connection_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connection.ConnectionMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -235,8 +241,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_connection_group_attribute].connection_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.connectiongroup.ConnectionGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
|
@@ -41,9 +41,10 @@
|
||||
FROM [guacamole_connection_group_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
|
||||
</select>
|
||||
@@ -58,9 +59,10 @@
|
||||
FROM [guacamole_connection_group_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = #{type,jdbcType=VARCHAR}
|
||||
AND connection_group_id = #{identifier,jdbcType=INTEGER}
|
||||
@@ -74,9 +76,10 @@
|
||||
FROM [guacamole_connection_group_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND connection_group_id IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
|
@@ -41,9 +41,10 @@
|
||||
FROM [guacamole_connection_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
|
||||
</select>
|
||||
@@ -58,9 +59,10 @@
|
||||
FROM [guacamole_connection_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = #{type,jdbcType=VARCHAR}
|
||||
AND connection_id = #{identifier,jdbcType=INTEGER}
|
||||
@@ -74,9 +76,10 @@
|
||||
FROM [guacamole_connection_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND connection_id IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
|
@@ -41,9 +41,10 @@
|
||||
FROM [guacamole_sharing_profile_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
|
||||
</select>
|
||||
@@ -58,9 +59,10 @@
|
||||
FROM [guacamole_sharing_profile_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = #{type,jdbcType=VARCHAR}
|
||||
AND sharing_profile_id = #{identifier,jdbcType=INTEGER}
|
||||
@@ -74,9 +76,10 @@
|
||||
FROM [guacamole_sharing_profile_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND sharing_profile_id IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
|
@@ -39,9 +39,10 @@
|
||||
FROM [guacamole_system_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
|
||||
</select>
|
||||
@@ -55,9 +56,10 @@
|
||||
FROM [guacamole_system_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = #{type,jdbcType=VARCHAR}
|
||||
|
||||
|
@@ -43,9 +43,10 @@
|
||||
JOIN [guacamole_entity] affected_entity ON affected_group.entity_id = affected_entity.entity_id
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="[guacamole_user_group_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="[guacamole_user_group_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND affected_entity.type = 'USER_GROUP'
|
||||
|
||||
@@ -63,13 +64,22 @@
|
||||
JOIN [guacamole_entity] affected_entity ON affected_group.entity_id = affected_entity.entity_id
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="[guacamole_user_group_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="[guacamole_user_group_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = #{type,jdbcType=VARCHAR}
|
||||
AND affected_entity.name = #{identifier,jdbcType=VARCHAR}
|
||||
AND affected_entity.type = 'USER_GROUP'
|
||||
AND permission = #{type,jdbcType=VARCHAR}
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
affected_entity.name = #{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER(affected_entity.name) = LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
</select>
|
||||
|
||||
@@ -82,22 +92,35 @@
|
||||
JOIN [guacamole_entity] affected_entity ON affected_group.entity_id = affected_entity.entity_id
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="[guacamole_user_group_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="[guacamole_user_group_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND affected_entity.name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND affected_entity.type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
affected_entity.name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{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=")">
|
||||
#{permission,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND affected_entity.type = 'USER_GROUP'
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<!-- Delete all given permissions -->
|
||||
@@ -112,8 +135,16 @@
|
||||
open="(" separator=" OR " close=")">
|
||||
([guacamole_user_group_permission].entity_id = #{permission.entityID,jdbcType=INTEGER} AND
|
||||
permission = #{permission.type,jdbcType=VARCHAR} AND
|
||||
affected_entity.name = #{permission.objectIdentifier,jdbcType=VARCHAR} AND
|
||||
affected_entity.type = 'USER_GROUP')
|
||||
affected_entity.type = 'USER_GROUP'
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
affected_entity.name = #{permission.objectIdentifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER(affected_entity.name) = LOWER(#{permission.objectIdentifier,jdbcType=VARCHAR})
|
||||
</otherwise>
|
||||
</choose>
|
||||
)
|
||||
</foreach>
|
||||
|
||||
</delete>
|
||||
@@ -139,8 +170,16 @@
|
||||
</foreach>
|
||||
AS permissions
|
||||
JOIN [guacamole_entity] affected_entity ON
|
||||
affected_entity.name = permissions.affected_name
|
||||
AND affected_entity.type = 'USER_GROUP'
|
||||
affected_entity.type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
affected_entity.name = permissions.affected_name
|
||||
</when>
|
||||
<test>
|
||||
LOWER(affected_entity.name) = LOWER(permissions.affected_name)
|
||||
</test>
|
||||
</choose>
|
||||
JOIN [guacamole_user_group] affected_group ON affected_group.entity_id = affected_entity.entity_id
|
||||
WHERE NOT EXISTS (SELECT 1 FROM [guacamole_user_group_permission]
|
||||
WHERE [guacamole_user_group_permission].entity_id = permissions.entity_id
|
||||
|
@@ -42,12 +42,14 @@
|
||||
JOIN [guacamole_user] affected_user ON [guacamole_user_permission].affected_user_id = affected_user.user_id
|
||||
JOIN [guacamole_entity] affected_entity ON affected_user.entity_id = affected_entity.entity_id
|
||||
WHERE
|
||||
affected_entity.type = 'USER'
|
||||
AND
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="[guacamole_user_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
</include>
|
||||
AND affected_entity.type = 'USER'
|
||||
<property name="column" value="[guacamole_user_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
|
||||
</select>
|
||||
|
||||
@@ -63,21 +65,22 @@
|
||||
JOIN [guacamole_entity] affected_entity ON affected_user.entity_id = affected_entity.entity_id
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="[guacamole_user_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="[guacamole_user_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND affected_entity.type = 'USER'
|
||||
AND permission = #{type,jdbcType=VARCHAR}
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
affected_entity.name = #{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER(affected_entity.name) = LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND affected_entity.type = 'USER'
|
||||
|
||||
</select>
|
||||
|
||||
@@ -90,13 +93,15 @@
|
||||
JOIN [guacamole_entity] affected_entity ON affected_user.entity_id = affected_entity.entity_id
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="[guacamole_user_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="column" value="[guacamole_user_permission].entity_id"/>
|
||||
<property name="entityID" value="#{entity.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND affected_entity.type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
affected_entity.name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
@@ -116,8 +121,7 @@
|
||||
open="(" separator="," close=")">
|
||||
#{permission,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND affected_entity.type = 'USER'
|
||||
|
||||
|
||||
</select>
|
||||
|
||||
<!-- Delete all given permissions -->
|
||||
@@ -133,7 +137,7 @@
|
||||
([guacamole_user_permission].entity_id = #{permission.entityID,jdbcType=INTEGER} AND
|
||||
permission = #{permission.type,jdbcType=VARCHAR} AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
affected_entity.name = #{permission.objectIdentifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -167,15 +171,16 @@
|
||||
</foreach>
|
||||
AS permissions
|
||||
JOIN [guacamole_entity] affected_entity ON
|
||||
affected_entity.type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
affected_entity.name = permissions.affected_name
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER(affected_entity.name) = LOWER(permissions.affected_name)
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND affected_entity.type = 'USER'
|
||||
</choose>
|
||||
JOIN [guacamole_user] affected_user ON affected_user.entity_id = affected_entity.entity_id
|
||||
WHERE NOT EXISTS (SELECT 1 FROM [guacamole_user_permission]
|
||||
WHERE [guacamole_user_permission].entity_id = permissions.entity_id
|
||||
|
@@ -66,9 +66,10 @@
|
||||
FROM [guacamole_sharing_profile_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = 'READ'
|
||||
</sql>
|
||||
@@ -76,8 +77,9 @@
|
||||
<!-- Select identifiers of all readable sharing profiles -->
|
||||
<select id="selectReadableIdentifiers" resultType="string">
|
||||
<include refid="org.apache.guacamole.auth.jdbc.sharingprofile.SharingProfileMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
</select>
|
||||
|
||||
@@ -125,8 +127,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_sharing_profile].sharing_profile_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.sharingprofile.SharingProfileMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -142,8 +145,9 @@
|
||||
</foreach>
|
||||
AND [guacamole_sharing_profile_attribute].sharing_profile_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.sharingprofile.SharingProfileMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
|
@@ -44,7 +44,7 @@
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name = #{username,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
|
@@ -82,9 +82,10 @@
|
||||
FROM [guacamole_user_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = 'READ'
|
||||
</sql>
|
||||
@@ -97,8 +98,9 @@
|
||||
WHERE
|
||||
[guacamole_user].user_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.user.UserMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
AND [guacamole_entity].type = 'USER'
|
||||
@@ -134,8 +136,10 @@
|
||||
FROM [guacamole_user]
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
[guacamole_entity].type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -146,7 +150,7 @@
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -154,7 +158,7 @@
|
||||
</otherwise>
|
||||
</choose>
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER';
|
||||
;
|
||||
|
||||
SELECT
|
||||
[guacamole_user_attribute].user_id,
|
||||
@@ -164,8 +168,10 @@
|
||||
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].type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -176,7 +182,7 @@
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -184,7 +190,7 @@
|
||||
</otherwise>
|
||||
</choose>
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER';
|
||||
;
|
||||
|
||||
</select>
|
||||
|
||||
@@ -218,8 +224,10 @@
|
||||
FROM [guacamole_user]
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
[guacamole_entity].type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -230,7 +238,7 @@
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -238,7 +246,6 @@
|
||||
</otherwise>
|
||||
</choose>
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER'
|
||||
AND [guacamole_user].user_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.user.UserMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
@@ -253,9 +260,11 @@
|
||||
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
|
||||
WHERE
|
||||
[guacamole_entity].type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -266,7 +275,7 @@
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -274,11 +283,11 @@
|
||||
</otherwise>
|
||||
</choose>
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER'
|
||||
AND [guacamole_user].user_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.user.UserMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -314,15 +323,17 @@
|
||||
FROM [guacamole_user]
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
[guacamole_entity].type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name = #{username,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) = LOWER(#{username,jdbcType=VARCHAR})
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND [guacamole_entity].type = 'USER';
|
||||
;
|
||||
|
||||
SELECT
|
||||
[guacamole_user_attribute].user_id,
|
||||
@@ -332,15 +343,16 @@
|
||||
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].type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name = #{username,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) = LOWER(#{username,jdbcType=VARCHAR})
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND [guacamole_entity].type = 'USER'
|
||||
|
||||
</select>
|
||||
|
||||
@@ -348,15 +360,16 @@
|
||||
<delete id="delete">
|
||||
DELETE FROM [guacamole_entity]
|
||||
WHERE
|
||||
type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
name = #{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER(name) = LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND type = 'USER'
|
||||
</delete>
|
||||
|
||||
<!-- Insert single user -->
|
||||
|
@@ -43,8 +43,9 @@
|
||||
WHERE
|
||||
[guacamole_user_group].user_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.usergroup.UserGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
AND [guacamole_user_group_member].member_entity_id = #{parent.entityID,jdbcType=INTEGER}
|
||||
@@ -60,11 +61,24 @@
|
||||
WHERE
|
||||
member_entity_id = #{parent.entityID,jdbcType=INTEGER}
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
AND [guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
</delete>
|
||||
|
||||
<!-- Insert parent groups by name -->
|
||||
@@ -79,12 +93,25 @@
|
||||
FROM [guacamole_user_group]
|
||||
JOIN [guacamole_entity] ON [guacamole_user_group].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
[guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
AND [guacamole_user_group].user_group_id NOT IN (
|
||||
SELECT [guacamole_user_group_member].user_group_id
|
||||
FROM [guacamole_user_group_member]
|
||||
|
@@ -50,7 +50,7 @@
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name = #{record.username,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -89,7 +89,7 @@
|
||||
|
||||
<if test="identifier != null">
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_user_history].username = #{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -107,7 +107,7 @@
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
CHARINDEX(#{term.term,jdbcType=VARCHAR} IN [guacamole_entity].name) > 0
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -159,15 +159,16 @@
|
||||
<!-- Restrict to readable users -->
|
||||
[guacamole_connection_history].user_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.user.UserMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
|
||||
<if test="identifier != null">
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name = #{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -185,7 +186,7 @@
|
||||
JOIN [guacamole_entity] ON [guacamole_user].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
CHARINDEX(#{term.term,jdbcType=VARCHAR} IN [guacamole_entity].name) > 0
|
||||
</when>
|
||||
<otherwise>
|
||||
|
@@ -68,9 +68,10 @@
|
||||
FROM [guacamole_user_group_permission]
|
||||
WHERE
|
||||
<include refid="org.apache.guacamole.auth.jdbc.base.EntityMapper.isRelatedEntity">
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="column" value="entity_id"/>
|
||||
<property name="entityID" value="${entityID}"/>
|
||||
<property name="groups" value="${groups}"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
AND permission = 'READ'
|
||||
</sql>
|
||||
@@ -81,13 +82,14 @@
|
||||
FROM [guacamole_user_group]
|
||||
JOIN [guacamole_entity] ON [guacamole_user_group].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
[guacamole_user_group].user_group_id IN (
|
||||
[guacamole_entity].type = 'USER_GROUP'
|
||||
AND [guacamole_user_group].user_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.usergroup.UserGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
)
|
||||
</select>
|
||||
|
||||
<!-- Select multiple groups by name -->
|
||||
@@ -101,12 +103,26 @@
|
||||
disabled
|
||||
FROM [guacamole_user_group]
|
||||
JOIN [guacamole_entity] ON [guacamole_user_group].entity_id = [guacamole_entity].entity_id
|
||||
WHERE [guacamole_entity].name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER_GROUP';
|
||||
WHERE [guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
;
|
||||
|
||||
SELECT
|
||||
[guacamole_user_group_attribute].user_group_id,
|
||||
@@ -115,12 +131,26 @@
|
||||
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
|
||||
WHERE [guacamole_entity].name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER_GROUP';
|
||||
WHERE [guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
;
|
||||
|
||||
</select>
|
||||
|
||||
@@ -135,16 +165,29 @@
|
||||
disabled
|
||||
FROM [guacamole_user_group]
|
||||
JOIN [guacamole_entity] ON [guacamole_user_group].entity_id = [guacamole_entity].entity_id
|
||||
WHERE [guacamole_entity].name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
WHERE [guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND [guacamole_user_group].user_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.usergroup.UserGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -155,16 +198,29 @@
|
||||
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
|
||||
WHERE [guacamole_entity].name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
WHERE [guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="identifiers" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND [guacamole_user_group].user_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.usergroup.UserGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
);
|
||||
|
||||
@@ -181,9 +237,17 @@
|
||||
disabled
|
||||
FROM [guacamole_user_group]
|
||||
JOIN [guacamole_entity] ON [guacamole_user_group].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
[guacamole_entity].name = #{name,jdbcType=VARCHAR}
|
||||
AND [guacamole_entity].type = 'USER_GROUP';
|
||||
WHERE [guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name = #{name,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) = LOWER(#{name,jdbcType=VARCHAR})
|
||||
</otherwise>
|
||||
</choose>
|
||||
;
|
||||
|
||||
SELECT
|
||||
[guacamole_user_group_attribute].user_group_id,
|
||||
@@ -192,9 +256,16 @@
|
||||
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
|
||||
WHERE
|
||||
[guacamole_entity].name = #{name,jdbcType=VARCHAR}
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
WHERE [guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name = #{name,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) = LOWER(#{name,jdbcType=VARCHAR})
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
</select>
|
||||
|
||||
|
@@ -42,8 +42,9 @@
|
||||
WHERE
|
||||
[guacamole_user_group].user_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.usergroup.UserGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
AND [guacamole_user_group_member].user_group_id = #{parent.objectID,jdbcType=INTEGER}
|
||||
@@ -58,11 +59,24 @@
|
||||
WHERE
|
||||
user_group_id = #{parent.objectID,jdbcType=INTEGER}
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
AND [guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
</delete>
|
||||
|
||||
<!-- Insert member groups by name -->
|
||||
@@ -75,13 +89,25 @@
|
||||
#{parent.objectID,jdbcType=INTEGER},
|
||||
[guacamole_entity].entity_id
|
||||
FROM [guacamole_entity]
|
||||
WHERE
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier}
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
WHERE [guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
AND [guacamole_entity].entity_id NOT IN (
|
||||
SELECT [guacamole_user_group_member].member_entity_id
|
||||
FROM [guacamole_user_group_member]
|
||||
|
@@ -42,8 +42,9 @@
|
||||
WHERE
|
||||
[guacamole_user].user_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.user.UserMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
AND [guacamole_user_group_member].user_group_id = #{parent.objectID,jdbcType=INTEGER}
|
||||
@@ -60,7 +61,7 @@
|
||||
AND [guacamole_entity].type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -71,7 +72,7 @@
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -91,9 +92,10 @@
|
||||
#{parent.objectID,jdbcType=INTEGER},
|
||||
[guacamole_entity].entity_id
|
||||
FROM [guacamole_entity]
|
||||
WHERE
|
||||
WHERE [guacamole_entity].type = 'USER'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
[guacamole_entity].name
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -104,7 +106,7 @@
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
<choose>
|
||||
<when test="caseSensitive">
|
||||
<when test="caseSensitivity.caseSensitiveUsernames()">
|
||||
#{identifier}
|
||||
</when>
|
||||
<otherwise>
|
||||
@@ -112,7 +114,6 @@
|
||||
</otherwise>
|
||||
</choose>
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER'
|
||||
AND [guacamole_entity].entity_id NOT IN (
|
||||
SELECT [guacamole_user_group_member].member_entity_id
|
||||
FROM [guacamole_user_group_member]
|
||||
|
@@ -43,8 +43,9 @@
|
||||
WHERE
|
||||
[guacamole_user_group].user_group_id IN (
|
||||
<include refid="org.apache.guacamole.auth.jdbc.usergroup.UserGroupMapper.getReadableIDs">
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="entityID" value="#{user.entityID,jdbcType=INTEGER}"/>
|
||||
<property name="groups" value="effectiveGroups"/>
|
||||
<property name="caseSensitivity" value="${caseSensitivity}"/>
|
||||
</include>
|
||||
)
|
||||
AND [guacamole_user_group_member].member_entity_id = #{parent.entityID,jdbcType=INTEGER}
|
||||
@@ -60,11 +61,24 @@
|
||||
WHERE
|
||||
member_entity_id = #{parent.entityID,jdbcType=INTEGER}
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
AND [guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
|
||||
</delete>
|
||||
|
||||
<!-- Insert parent groups by name -->
|
||||
@@ -78,13 +92,24 @@
|
||||
#{parent.entityID,jdbcType=INTEGER}
|
||||
FROM [guacamole_user_group]
|
||||
JOIN [guacamole_entity] ON [guacamole_user_group].entity_id = [guacamole_entity].entity_id
|
||||
WHERE
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
AND [guacamole_entity].type = 'USER_GROUP'
|
||||
WHERE [guacamole_entity].type = 'USER_GROUP'
|
||||
AND
|
||||
<choose>
|
||||
<when test="caseSensitivity.caseSensitiveGroupNames()">
|
||||
[guacamole_entity].name IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
#{identifier,jdbcType=VARCHAR}
|
||||
</foreach>
|
||||
</when>
|
||||
<otherwise>
|
||||
LOWER([guacamole_entity].name) IN
|
||||
<foreach collection="children" item="identifier"
|
||||
open="(" separator="," close=")">
|
||||
LOWER(#{identifier,jdbcType=VARCHAR})
|
||||
</foreach>
|
||||
</otherwise>
|
||||
</choose>
|
||||
AND [guacamole_user_group].user_group_id NOT IN (
|
||||
SELECT [guacamole_user_group_member].user_group_id
|
||||
FROM [guacamole_user_group_member]
|
||||
|
Reference in New Issue
Block a user