From ed066c88e7b4b544ff3f597cd597aca2a76cf9cd Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 27 Jun 2017 15:58:59 -0700 Subject: [PATCH 1/2] GUACAMOLE-320: Add parse() convenience function for TextField which interprets empty strings as equivalent to null. --- .../org/apache/guacamole/form/TextField.java | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/guacamole-ext/src/main/java/org/apache/guacamole/form/TextField.java b/guacamole-ext/src/main/java/org/apache/guacamole/form/TextField.java index 088077102..2751e1403 100644 --- a/guacamole-ext/src/main/java/org/apache/guacamole/form/TextField.java +++ b/guacamole-ext/src/main/java/org/apache/guacamole/form/TextField.java @@ -35,4 +35,25 @@ public class TextField extends Field { super(name, Field.Type.TEXT); } + /** + * Parses the given string, interpreting empty strings as equivalent to + * null. For all other cases, the given string is returned verbatim. + * + * @param str + * The string to parse, which may be null. + * + * @return + * The given string, or null if the given string was null or empty. + */ + public static String parse(String str) { + + // Return null if no value provided + if (str == null || str.isEmpty()) + return null; + + // Otherwise, return string unmodified + return str; + + } + } From f7e648787e3af84a73c7abbcd5a60cf4425291bd Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 27 Jun 2017 16:06:47 -0700 Subject: [PATCH 2/2] GUACAMOLE-320: Ensure blank values for the new text attributes of users and connections are properly interpreted. --- .../guacamole/auth/jdbc/connection/ModeledConnection.java | 4 ++-- .../org/apache/guacamole/auth/jdbc/user/ModeledUser.java | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ModeledConnection.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ModeledConnection.java index bcd7b117e..7a7162e3c 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ModeledConnection.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/connection/ModeledConnection.java @@ -285,8 +285,8 @@ public class ModeledConnection extends ModeledChildDirectoryObject implements Us private void setUnrestrictedAttributes(Map attributes) { // Translate full name attribute - getModel().setFullName(attributes.get(User.Attribute.FULL_NAME)); + getModel().setFullName(TextField.parse(attributes.get(User.Attribute.FULL_NAME))); // Translate email address attribute - getModel().setEmailAddress(attributes.get(User.Attribute.EMAIL_ADDRESS)); + getModel().setEmailAddress(TextField.parse(attributes.get(User.Attribute.EMAIL_ADDRESS))); // Translate organization attribute - getModel().setOrganization(attributes.get(User.Attribute.ORGANIZATION)); + getModel().setOrganization(TextField.parse(attributes.get(User.Attribute.ORGANIZATION))); // Translate role attribute - getModel().setOrganizationalRole(attributes.get(User.Attribute.ORGANIZATIONAL_ROLE)); + getModel().setOrganizationalRole(TextField.parse(attributes.get(User.Attribute.ORGANIZATIONAL_ROLE))); }