From 6747c51b386f377aeab576d1ac30f19dc639f4fd Mon Sep 17 00:00:00 2001 From: James Muehlner Date: Wed, 31 Jul 2013 21:43:51 -0700 Subject: [PATCH] Ticket #263: Connections and groups should be unique only within the parent group. --- .../schema/001-create-schema.sql | 12 ++++++------ .../schema/001a-update-schema.sql | 13 ++++++++----- 2 files changed, 14 insertions(+), 11 deletions(-) diff --git a/extensions/guacamole-auth-mysql/schema/001-create-schema.sql b/extensions/guacamole-auth-mysql/schema/001-create-schema.sql index ae827b308..a46a4254f 100644 --- a/extensions/guacamole-auth-mysql/schema/001-create-schema.sql +++ b/extensions/guacamole-auth-mysql/schema/001-create-schema.sql @@ -6,16 +6,16 @@ CREATE TABLE `guacamole_connection_group` ( `connection_group_id` int(11) NOT NULL AUTO_INCREMENT, - `parent_group_id` int(11), + `parent_id` int(11), `connection_group_name` varchar(128) NOT NULL, `type` enum('ORGANIZATIONAL', 'BALANCING') NOT NULL DEFAULT 'ORGANIZATIONAL', PRIMARY KEY (`connection_group_id`), - UNIQUE KEY `connection_group_name` (`connection_group_name`), + UNIQUE KEY `connection_group_name_parent` (`connection_group_name`, `parent_id`), CONSTRAINT `guacamole_connection_group_ibfk_1` - FOREIGN KEY (`parent_group_id`) + FOREIGN KEY (`parent_id`) REFERENCES `guacamole_connection_group` (`connection_group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -30,14 +30,14 @@ CREATE TABLE `guacamole_connection` ( `connection_id` int(11) NOT NULL AUTO_INCREMENT, `connection_name` varchar(128) NOT NULL, - `connection_group_id` int(11), + `parent_id` int(11), `protocol` varchar(32) NOT NULL, PRIMARY KEY (`connection_id`), - UNIQUE KEY `connection_name` (`connection_name`), + UNIQUE KEY `connection_name_parent` (`connection_name`, `parent_id`), CONSTRAINT `guacamole_connection_ibfk_1` - FOREIGN KEY (`connection_group_id`) + FOREIGN KEY (`parent_id`) REFERENCES `guacamole_connection_group` (`connection_group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; diff --git a/extensions/guacamole-auth-mysql/schema/001a-update-schema.sql b/extensions/guacamole-auth-mysql/schema/001a-update-schema.sql index 6bef54af3..bc48de8ad 100644 --- a/extensions/guacamole-auth-mysql/schema/001a-update-schema.sql +++ b/extensions/guacamole-auth-mysql/schema/001a-update-schema.sql @@ -6,17 +6,17 @@ CREATE TABLE `guacamole_connection_group` ( `connection_group_id` int(11) NOT NULL AUTO_INCREMENT, - `parent_group_id` int(11), + `parent_id` int(11), `connection_group_name` varchar(128) NOT NULL, `type` enum('ORGANIZATIONAL', 'BALANCING') NOT NULL DEFAULT 'ORGANIZATIONAL', PRIMARY KEY (`connection_group_id`), - UNIQUE KEY `connection_group_name` (`connection_group_name`), + UNIQUE KEY `connection_group_name_parent` (`connection_group_name`, `parent_id`), CONSTRAINT `guacamole_connection_group_ibfk_1` - FOREIGN KEY (`parent_group_id`) + FOREIGN KEY (`parent_id`) REFERENCES `guacamole_connection_group` (`connection_group_id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; @@ -26,10 +26,13 @@ CREATE TABLE `guacamole_connection_group` ( -- Changes to connection table to support grouping. -- -ALTER TABLE `guacamole_connection` ADD COLUMN `connection_group_id` int(11) AFTER `connection_name`; +ALTER TABLE `guacamole_connection` ADD COLUMN `parent_id` int(11) AFTER `connection_name`; + +ALTER TABLE `guacamole_connection` DROP INDEX `connection_name_parent`; +ALTER TABLE `guacamole_connection` ADD UNIQUE KEY `connection_name_parent` (`connection_name`, `parent_id`); ALTER TABLE `guacamole_connection` ADD CONSTRAINT `guacamole_connection_ibfk_1` - FOREIGN KEY (`connection_group_id`) + FOREIGN KEY (`parent_id`) REFERENCES `guacamole_connection_group` (`connection_group_id`); --