GUACAMOLE-292: Add stub attributes for full name and email.
Project: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/commit/afd051e5 Tree: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/tree/afd051e5 Diff: http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/diff/afd051e5 Branch: refs/heads/master Commit: afd051e59f947c2d14e29940ddb12ab9e42ee278 Parents: b2871e7 Author: Michael Jumper <[email protected]> Authored: Wed Feb 22 00:16:14 2017 -0800 Committer: Michael Jumper <[email protected]> Committed: Sat May 27 11:28:13 2017 -0700 ---------------------------------------------------------------------- .../guacamole/auth/jdbc/user/ModeledUser.java | 64 ++++++++++++++++++++ .../src/main/resources/translations/en.json | 5 +- 2 files changed, 68 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/afd051e5/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUser.java ---------------------------------------------------------------------- diff --git a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUser.java b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUser.java index 0528495..b3852e7 100644 --- a/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUser.java +++ b/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/java/org/apache/guacamole/auth/jdbc/user/ModeledUser.java @@ -45,6 +45,7 @@ import org.apache.guacamole.form.BooleanField; import org.apache.guacamole.form.DateField; import org.apache.guacamole.form.Field; import org.apache.guacamole.form.Form; +import org.apache.guacamole.form.TextField; import org.apache.guacamole.form.TimeField; import org.apache.guacamole.form.TimeZoneField; import org.apache.guacamole.net.auth.User; @@ -65,6 +66,17 @@ public class ModeledUser extends ModeledDirectoryObject<UserModel> implements Us private static final Logger logger = LoggerFactory.getLogger(ModeledUser.class); /** + * The name of the attribute which holds the user's full name, if known. + */ + public static final String FULL_NAME_ATTRIBUTE_NAME = "full-name"; + + /** + * The name of the attribute which holds the user's email address, if + * known. + */ + public static final String EMAIL_ADDRESS_ATTRIBUTE_NAME = "email-address"; + + /** * The name of the attribute which controls whether a user account is * disabled. */ @@ -107,6 +119,15 @@ public class ModeledUser extends ModeledDirectoryObject<UserModel> implements Us public static final String TIMEZONE_ATTRIBUTE_NAME = "timezone"; /** + * All attributes related to user profile information, within a logical + * form. + */ + public static final Form PROFILE = new Form("profile", Arrays.<Field>asList( + new TextField(FULL_NAME_ATTRIBUTE_NAME), + new TextField(EMAIL_ADDRESS_ATTRIBUTE_NAME) + )); + + /** * All attributes related to restricting user accounts, within a logical * form. */ @@ -125,6 +146,7 @@ public class ModeledUser extends ModeledDirectoryObject<UserModel> implements Us * logical forms. */ public static final Collection<Form> ATTRIBUTES = Collections.unmodifiableCollection(Arrays.asList( + PROFILE, ACCOUNT_RESTRICTIONS )); @@ -372,6 +394,25 @@ public class ModeledUser extends ModeledDirectoryObject<UserModel> implements Us } /** + * Stores all unrestricted (unprivileged) attributes within the given Map, + * pulling the values of those attributes from the underlying user model. + * If no value is yet defined for an attribute, that attribute will be set + * to null. + * + * @param attributes + * The Map to store all unrestricted attributes within. + */ + private void putUnrestrictedAttributes(Map<String, String> attributes) { + + // Set full name attribute + attributes.put(FULL_NAME_ATTRIBUTE_NAME, "Testy McTesterson"); // TODO + + // Set email address attribute + attributes.put(EMAIL_ADDRESS_ATTRIBUTE_NAME, "[email protected]"); // TODO + + } + + /** * Parses the given string into a corresponding date. The string must * follow the standard format used by date attributes, as defined by * DateField.FORMAT and as would be produced by DateField.format(). @@ -477,11 +518,31 @@ public class ModeledUser extends ModeledDirectoryObject<UserModel> implements Us } + /** + * Stores all unrestricted (unprivileged) attributes within the underlying + * user model, pulling the values of those attributes from the given Map. + * + * @param attributes + * The Map to pull all unrestricted attributes from. + */ + private void setUnrestrictedAttributes(Map<String, String> attributes) { + + // Translate full name attribute + logger.info("FULL NAME: \"{}\"", attributes.get(FULL_NAME_ATTRIBUTE_NAME)); // TODO + + // Translate email address attribute + logger.info("EMAIL ADDRESS: \"{}\"", attributes.get(EMAIL_ADDRESS_ATTRIBUTE_NAME)); // TODO + + } + @Override public Map<String, String> getAttributes() { Map<String, String> attributes = new HashMap<String, String>(); + // Always include unrestricted attributes + putUnrestrictedAttributes(attributes); + // Include restricted attributes only if they should be exposed if (exposeRestrictedAttributes) putRestrictedAttributes(attributes); @@ -492,6 +553,9 @@ public class ModeledUser extends ModeledDirectoryObject<UserModel> implements Us @Override public void setAttributes(Map<String, String> attributes) { + // Always assign unrestricted attributes + setUnrestrictedAttributes(attributes); + // Assign restricted attributes only if they are exposed if (exposeRestrictedAttributes) setRestrictedAttributes(attributes); http://git-wip-us.apache.org/repos/asf/incubator-guacamole-client/blob/afd051e5/extensions/guacamole-auth-jdbc/modules/guacamole-auth-jdbc-base/src/main/resources/translations/en.json ---------------------------------------------------------------------- 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 f182aac..c6ce14b 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 @@ -79,13 +79,16 @@ "FIELD_HEADER_DISABLED" : "Login disabled:", "FIELD_HEADER_EXPIRED" : "Password expired:", + "FIELD_HEADER_EMAIL_ADDRESS" : "Email address:", + "FIELD_HEADER_FULL_NAME" : "Full name:", "FIELD_HEADER_ACCESS_WINDOW_END" : "Do not allow access after:", "FIELD_HEADER_ACCESS_WINDOW_START" : "Allow access after:", "FIELD_HEADER_TIMEZONE" : "User time zone:", "FIELD_HEADER_VALID_FROM" : "Enable account after:", "FIELD_HEADER_VALID_UNTIL" : "Disable account after:", - "SECTION_HEADER_RESTRICTIONS" : "Account Restrictions" + "SECTION_HEADER_RESTRICTIONS" : "Account Restrictions", + "SECTION_HEADER_PROFILE" : "Profile" }
