From 12c00c974972c224b507a8cb2af03ce89bedf408 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sat, 28 Feb 2015 21:05:32 -0800 Subject: [PATCH] GUAC-1101: Add missing selectAccessibleIdentifiers query. Fix selectOne for object permissions. --- .../ConnectionGroupPermissionMapper.xml | 21 ++++++++++++++ .../permission/ConnectionPermissionMapper.xml | 21 ++++++++++++++ .../jdbc/permission/UserPermissionMapper.xml | 29 +++++++++++++++++-- 3 files changed, 68 insertions(+), 3 deletions(-) diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml index c7d40e3aa..40ada12a5 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/ConnectionGroupPermissionMapper.xml @@ -62,6 +62,27 @@ WHERE guacamole_connection_group_permission.user_id = #{user.objectID,jdbcType=INTEGER} AND permission = #{type,jdbcType=VARCHAR} + AND connection_group_id = #{identifier,jdbcType=VARCHAR} + + + + + diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml index 7e3cedb64..9935f3cfd 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/ConnectionPermissionMapper.xml @@ -62,6 +62,27 @@ WHERE guacamole_connection_permission.user_id = #{user.objectID,jdbcType=INTEGER} AND permission = #{type,jdbcType=VARCHAR} + AND connection_id = #{identifier,jdbcType=VARCHAR} + + + + + diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/UserPermissionMapper.xml b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/UserPermissionMapper.xml index ed71265f7..038bb814f 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/UserPermissionMapper.xml +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/org/glyptodon/guacamole/auth/jdbc/permission/UserPermissionMapper.xml @@ -64,6 +64,28 @@ WHERE guacamole_user_permission.user_id = #{user.objectID,jdbcType=INTEGER} AND permission = #{type,jdbcType=VARCHAR} + AND affected.username = #{identifier,jdbcType=VARCHAR} + + + + + @@ -92,13 +114,14 @@ permission, affected_user_id ) - SELECT permissions.user_id, permissions.permission, guacamole_user.user_id FROM ( - + SELECT permissions.user_id, permissions.permission, guacamole_user.user_id FROM + SELECT #{permission.userID,jdbcType=INTEGER} AS user_id, #{permission.type,jdbcType=VARCHAR} AS permission, #{permission.objectIdentifier,jdbcType=VARCHAR} AS username - ) AS permissions + AS permissions JOIN guacamole_user ON guacamole_user.username = permissions.username;