From 70485286d677cd039617b5fb7a59ee6821cbd4ce Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Fri, 28 Aug 2015 16:50:53 -0700 Subject: [PATCH] GUAC-586: Add localized data source names. Display data sources as tabs within user edit screen. --- .../src/main/resources/translations/en.json | 8 ++++ .../src/main/resources/guac-manifest.json | 4 ++ .../src/main/resources/translations/en.json | 7 ++++ .../src/main/resources/guac-manifest.json | 4 ++ .../src/main/resources/translations/en.json | 7 ++++ .../controllers/manageUserController.js | 40 +++++++++++++++---- .../webapp/app/manage/styles/manage-user.css | 25 ++++++++++++ .../app/manage/templates/manageUser.html | 19 ++++----- .../src/main/webapp/translations/en.json | 4 ++ 9 files changed, 99 insertions(+), 19 deletions(-) create mode 100644 extensions/guacamole-auth-ldap/src/main/resources/translations/en.json create mode 100644 extensions/guacamole-auth-noauth/src/main/resources/translations/en.json create mode 100644 guacamole/src/main/webapp/app/manage/styles/manage-user.css 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 1b631c993..189018b88 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 @@ -33,6 +33,14 @@ }, + "DATA_SOURCE_MYSQL" : { + "NAME" : "MySQL" + }, + + "DATA_SOURCE_POSTGRESQL" : { + "NAME" : "PostgreSQL" + }, + "USER_ATTRIBUTES" : { "FIELD_HEADER_DISABLED" : "Login disabled:", diff --git a/extensions/guacamole-auth-ldap/src/main/resources/guac-manifest.json b/extensions/guacamole-auth-ldap/src/main/resources/guac-manifest.json index c1bd1af80..5aed8a65c 100644 --- a/extensions/guacamole-auth-ldap/src/main/resources/guac-manifest.json +++ b/extensions/guacamole-auth-ldap/src/main/resources/guac-manifest.json @@ -7,6 +7,10 @@ "authProviders" : [ "net.sourceforge.guacamole.net.auth.ldap.LDAPAuthenticationProvider" + ], + + "translations" : [ + "translations/en.json" ] } diff --git a/extensions/guacamole-auth-ldap/src/main/resources/translations/en.json b/extensions/guacamole-auth-ldap/src/main/resources/translations/en.json new file mode 100644 index 000000000..a1d6ae949 --- /dev/null +++ b/extensions/guacamole-auth-ldap/src/main/resources/translations/en.json @@ -0,0 +1,7 @@ +{ + + "DATA_SOURCE_LDAP" : { + "NAME" : "LDAP" + } + +} diff --git a/extensions/guacamole-auth-noauth/src/main/resources/guac-manifest.json b/extensions/guacamole-auth-noauth/src/main/resources/guac-manifest.json index 0a7b4478e..565455432 100644 --- a/extensions/guacamole-auth-noauth/src/main/resources/guac-manifest.json +++ b/extensions/guacamole-auth-noauth/src/main/resources/guac-manifest.json @@ -7,6 +7,10 @@ "authProviders" : [ "net.sourceforge.guacamole.net.auth.noauth.NoAuthenticationProvider" + ], + + "translations" : [ + "translations/en.json" ] } diff --git a/extensions/guacamole-auth-noauth/src/main/resources/translations/en.json b/extensions/guacamole-auth-noauth/src/main/resources/translations/en.json new file mode 100644 index 000000000..f755bd7b9 --- /dev/null +++ b/extensions/guacamole-auth-noauth/src/main/resources/translations/en.json @@ -0,0 +1,7 @@ +{ + + "DATA_SOURCE_NOAUTH" : { + "NAME" : "NoAuth" + } + +} diff --git a/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js b/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js index cf5625349..e493164ab 100644 --- a/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js +++ b/guacamole/src/main/webapp/app/manage/controllers/manageUserController.js @@ -28,18 +28,20 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto // Required types var ConnectionGroup = $injector.get('ConnectionGroup'); + var PageDefinition = $injector.get('PageDefinition'); var PermissionFlagSet = $injector.get('PermissionFlagSet'); var PermissionSet = $injector.get('PermissionSet'); // Required services - var $location = $injector.get('$location'); - var $routeParams = $injector.get('$routeParams'); - var authenticationService = $injector.get('authenticationService'); - var connectionGroupService = $injector.get('connectionGroupService'); - var guacNotification = $injector.get('guacNotification'); - var permissionService = $injector.get('permissionService'); - var schemaService = $injector.get('schemaService'); - var userService = $injector.get('userService'); + var $location = $injector.get('$location'); + var $routeParams = $injector.get('$routeParams'); + var authenticationService = $injector.get('authenticationService'); + var connectionGroupService = $injector.get('connectionGroupService'); + var guacNotification = $injector.get('guacNotification'); + var permissionService = $injector.get('permissionService'); + var schemaService = $injector.get('schemaService'); + var translationStringService = $injector.get('translationStringService'); + var userService = $injector.get('userService'); /** * An action to be provided along with the object sent to showStatus which @@ -120,6 +122,28 @@ angular.module('manage').controller('manageUserController', ['$scope', '$injecto */ $scope.attributes = null; + /** + * The pages associated with each user account having the given username. + * Each user account will be associated with a particular data source. + * + * @type PageDefinition[] + */ + $scope.accountPages = (function getAccountPages(dataSources) { + + var accountPages = []; + + // Add an account page for each applicable data source + angular.forEach(dataSources, function addAccountPage(dataSource) { + accountPages.push(new PageDefinition( + translationStringService.canonicalize('DATA_SOURCE_' + dataSource) + '.NAME', + '/manage/' + encodeURIComponent(dataSource) + '/users/' + encodeURIComponent(username) + )); + }); + + return accountPages; + + })(authenticationService.getAvailableDataSources()); + /** * Returns whether critical data has completed being loaded. * diff --git a/guacamole/src/main/webapp/app/manage/styles/manage-user.css b/guacamole/src/main/webapp/app/manage/styles/manage-user.css new file mode 100644 index 000000000..540689fa6 --- /dev/null +++ b/guacamole/src/main/webapp/app/manage/styles/manage-user.css @@ -0,0 +1,25 @@ +/* + * Copyright (C) 2015 Glyptodon LLC + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +.manage-user .username.header { + margin-bottom: 0; +} diff --git a/guacamole/src/main/webapp/app/manage/templates/manageUser.html b/guacamole/src/main/webapp/app/manage/templates/manageUser.html index 4e0903f2d..909ea4f3c 100644 --- a/guacamole/src/main/webapp/app/manage/templates/manageUser.html +++ b/guacamole/src/main/webapp/app/manage/templates/manageUser.html @@ -1,5 +1,5 @@ -
+
-
-

{{'MANAGE_USER.SECTION_HEADER_EDIT_USER' | translate}}

+
+

{{user.username}}

+
+ +
+
- - - - - - -
{{'MANAGE_USER.FIELD_HEADER_USERNAME' | translate}}{{user.username}}
{{'MANAGE_USER.FIELD_HEADER_PASSWORD' | translate}}
{{'MANAGE_USER.FIELD_HEADER_PASSWORD_AGAIN' | translate}}
diff --git a/guacamole/src/main/webapp/translations/en.json b/guacamole/src/main/webapp/translations/en.json index 8e24f5269..2d968a1f6 100644 --- a/guacamole/src/main/webapp/translations/en.json +++ b/guacamole/src/main/webapp/translations/en.json @@ -125,6 +125,10 @@ }, + "DATA_SOURCE_DEFAULT" : { + "NAME" : "Default (XML)" + }, + "FORM" : { "FIELD_PLACEHOLDER_DATE" : "YYYY-MM-DD",