From ff3c57dff058f0f19c2ef9381cf1f4c607c0ab19 Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Fri, 29 Jul 2016 17:47:16 -0700 Subject: [PATCH] GUACAMOLE-5: Display the username of the user that shares a connection. --- .../sharing/connection/SharedConnection.java | 11 ++++-- .../resources/html/shared-connection.html | 6 ++++ .../src/main/resources/styles/jdbc.css | 35 +++++++++++++++++++ .../src/main/resources/translations/en.json | 4 +++ .../src/main/resources/guac-manifest.json | 8 +++++ .../src/main/resources/guac-manifest.json | 8 +++++ 6 files changed, 70 insertions(+), 2 deletions(-) create mode 100644 extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/html/shared-connection.html create mode 100644 extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/styles/jdbc.css diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/connection/SharedConnection.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/connection/SharedConnection.java index 9ced9c747..b5b8f4c3a 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/connection/SharedConnection.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/sharing/connection/SharedConnection.java @@ -42,6 +42,12 @@ import org.apache.guacamole.protocol.GuacamoleConfiguration; */ public class SharedConnection implements Connection { + /** + * The name of the attribute which contains the username of the user that + * shared this connection. + */ + public static final String CONNECTION_OWNER = "jdbc-shared-by"; + /** * Service for establishing tunnels to Guacamole connections. */ @@ -133,12 +139,13 @@ public class SharedConnection implements Connection { @Override public Map getAttributes() { - return Collections.emptyMap(); + String sharedBy = definition.getActiveConnection().getUser().getIdentifier(); + return Collections.singletonMap(CONNECTION_OWNER, sharedBy); } @Override public void setAttributes(Map attributes) { - // Do nothing - no attributes supported + // Do nothing - changing attributes not supported } @Override diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/html/shared-connection.html b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/html/shared-connection.html new file mode 100644 index 000000000..9acaf4c45 --- /dev/null +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/html/shared-connection.html @@ -0,0 +1,6 @@ + + + + diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/styles/jdbc.css b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/styles/jdbc.css new file mode 100644 index 000000000..23aa35685 --- /dev/null +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/styles/jdbc.css @@ -0,0 +1,35 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +/* Label/tag denoting the user that shared a connection */ +.jdbc-share-tag { + + background: #0095ff; + padding: 0.25em; + + -moz-border-radius: 0.25em; + -webkit-border-radius: 0.25em; + -khtml-border-radius: 0.25em; + border-radius: 0.25em; + + color: white; + font-size: 0.75em; + font-weight: bold; + +} diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json index 812688000..2bf807a37 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json @@ -42,6 +42,10 @@ "NAME" : "PostgreSQL" }, + "HOME" : { + "INFO_SHARED_BY" : "Shared by {USERNAME}" + }, + "USER_ATTRIBUTES" : { "FIELD_HEADER_DISABLED" : "Login disabled:", diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/guac-manifest.json b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/guac-manifest.json index 7d92900e3..81e9869a4 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/guac-manifest.json +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-mysql/src/main/resources/guac-manifest.json @@ -10,6 +10,14 @@ "org.apache.guacamole.auth.mysql.MySQLSharedAuthenticationProvider" ], + "css" : [ + "styles/jdbc.css" + ], + + "html" : [ + "html/shared-connection.html" + ], + "translations" : [ "translations/en.json", "translations/fr.json", diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/guac-manifest.json b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/guac-manifest.json index 1f259c4c0..071230f46 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/guac-manifest.json +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-postgresql/src/main/resources/guac-manifest.json @@ -10,6 +10,14 @@ "org.apache.guacamole.auth.postgresql.PostgreSQLSharedAuthenticationProvider" ], + "css" : [ + "styles/jdbc.css" + ], + + "html" : [ + "html/shared-connection.html" + ], + "translations" : [ "translations/en.json", "translations/fr.json",