mirror of
				https://github.com/gyurix1968/guacamole-client.git
				synced 2025-10-31 00:53:21 +00:00 
			
		
		
		
	GUAC-1101: Implement querying of connection group permissions.
This commit is contained in:
		| @@ -95,7 +95,7 @@ | ||||
|             guacamole_connection_group.connection_group_id, | ||||
|             connection_group_name, | ||||
|             parent_id, | ||||
|             protocol  | ||||
|             type  | ||||
|         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 | ||||
|   | ||||
| @@ -0,0 +1,99 @@ | ||||
| <?xml version="1.0" encoding="UTF-8" ?> | ||||
| <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" | ||||
|     "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > | ||||
|  | ||||
| <!-- | ||||
|    Copyright (C) 2015 Glyptodon LLC | ||||
|  | ||||
|    Permission is hereby granted, free of charge, to any person obtaining a copy | ||||
|    of this software and associated documentation files (the "Software"), to deal | ||||
|    in the Software without restriction, including without limitation the rights | ||||
|    to use, copy, modify, merge, publish, distribute, sublicense, and/or sell | ||||
|    copies of the Software, and to permit persons to whom the Software is | ||||
|    furnished to do so, subject to the following conditions: | ||||
|  | ||||
|    The above copyright notice and this permission notice shall be included in | ||||
|    all copies or substantial portions of the Software. | ||||
|  | ||||
|    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR | ||||
|    IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, | ||||
|    FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE | ||||
|    AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER | ||||
|    LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, | ||||
|    OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN | ||||
|    THE SOFTWARE. | ||||
| --> | ||||
|  | ||||
| <mapper namespace="org.glyptodon.guacamole.auth.jdbc.permission.ConnectionGroupPermissionMapper" > | ||||
|  | ||||
|     <!-- Result mapper for connection permissions --> | ||||
|     <resultMap id="ConnectionGroupPermissionResultMap" type="org.glyptodon.guacamole.auth.jdbc.permission.ObjectPermissionModel"> | ||||
|         <result column="user_id"             property="userID"           jdbcType="INTEGER"/> | ||||
|         <result column="username"            property="username"         jdbcType="VARCHAR"/> | ||||
|         <result column="permission"          property="type"             jdbcType="VARCHAR" | ||||
|                 javaType="org.glyptodon.guacamole.net.auth.permission.ObjectPermission$Type"/> | ||||
|         <result column="connection_group_id" property="objectIdentifier" jdbcType="INTEGER"/> | ||||
|     </resultMap> | ||||
|  | ||||
|     <!-- Select all permissions for a given user --> | ||||
|     <select id="select" resultMap="ConnectionGroupPermissionResultMap"> | ||||
|  | ||||
|         SELECT | ||||
|             guacamole_connection_group_permission.user_id, | ||||
|             username, | ||||
|             permission, | ||||
|             connection_group_id | ||||
|         FROM guacamole_connection_group_permission | ||||
|         JOIN guacamole_user ON guacamole_connection_group_permission.user_id = guacamole_user.user_id | ||||
|         WHERE guacamole_connection_group_permission.user_id = #{user.objectID,jdbcType=INTEGER} | ||||
|  | ||||
|     </select> | ||||
|  | ||||
|     <!-- Select the single permission matching the given criteria --> | ||||
|     <select id="selectOne" resultMap="ConnectionGroupPermissionResultMap"> | ||||
|  | ||||
|         SELECT | ||||
|             guacamole_connection_group_permission.user_id, | ||||
|             username, | ||||
|             permission, | ||||
|             connection_group_id | ||||
|         FROM guacamole_connection_group_permission | ||||
|         JOIN guacamole_user ON guacamole_connection_group_permission.user_id = guacamole_user.user_id | ||||
|         WHERE | ||||
|             guacamole_connection_group_permission.user_id = #{user.objectID,jdbcType=INTEGER} | ||||
|             AND permission = #{type,jdbcType=VARCHAR} | ||||
|  | ||||
|     </select> | ||||
|  | ||||
|     <!-- Delete all given permissions --> | ||||
|     <delete id="delete" parameterType="org.glyptodon.guacamole.auth.jdbc.permission.ObjectPermissionModel"> | ||||
|  | ||||
|         DELETE FROM guacamole_connection_group_permission | ||||
|         WHERE (user_id, permission, connection_group_id) IN | ||||
|             <foreach collection="permissions" item="permission" | ||||
|                      open="(" separator="," close=")"> | ||||
|                 (#{permission.userID,jdbcType=INTEGER}, | ||||
|                  #{permission.type,jdbcType=VARCHAR}, | ||||
|                  #{permission.objectIdentifier,jdbcType=VARCHAR}) | ||||
|             </foreach> | ||||
|  | ||||
|     </delete> | ||||
|  | ||||
|     <!-- Insert all given permissions --> | ||||
|     <insert id="insert" parameterType="org.glyptodon.guacamole.auth.jdbc.permission.ObjectPermissionModel"> | ||||
|  | ||||
|         INSERT IGNORE INTO guacamole_connection_group_permission ( | ||||
|             user_id, | ||||
|             permission, | ||||
|             connection_group_id | ||||
|         ) | ||||
|         VALUES | ||||
|             <foreach collection="permissions" item="permission" separator=","> | ||||
|                 (#{permission.userID,jdbcType=INTEGER}, | ||||
|                  #{permission.type,jdbcType=VARCHAR}, | ||||
|                  #{permission.objectIdentifier,jdbcType=VARCHAR}) | ||||
|             </foreach> | ||||
|  | ||||
|     </insert> | ||||
|  | ||||
| </mapper> | ||||
		Reference in New Issue
	
	Block a user