Commit Graph
100 Commits
Author SHA1 Message Date
Michael Jumper 6ebb53477c GUACAMOLE-623: Add Kubernetes protocol/parameter definitions and translations. 2019-08-03 13:58:50 -07:00
Michael Jumper 2085ee7424 GUACAMOLE-629: Allow client to receive connection parameter values via "argv" streams. 2019-07-30 13:02:01 -07:00
Michael Jumper 3f7d1346b3 GUACAMOLE-821: Use Japanese word for the Japanese language as the name of the Japanese translation. 2019-07-20 12:22:20 -07:00
Mike Jumper 0dee33bfe4 GUACAMOLE-821: Merge Japanese translation. 2019-07-19 23:40:10 -07:00
Mike Jumper 6af8782862 GUACAMOLE-846: Merge changes ensuring tunnel.uuid is initialized regardless of tunnel state. 2019-07-16 15:43:44 -07:00
Michael Jumper c0d1ace629 GUACAMOLE-610: Add SSH/telnet parameter definitions for maximum scrollback size. 2019-07-16 12:11:21 -07:00
Mike Jumper 63fa8504b8 GUACAMOLE-837: Merge parameter definition and translation for Hungarian keyboard layout. 2019-07-11 21:21:53 -07:00
Michael Jumper acaa422992 GUACAMOLE-302: Do not rely on $evalAsync() for assigning focus.
$evalAsync() does not necessarily guarantee execution within a timer;
the provided function may well execute after the current $digest loop
without control returning to the browser. If we need a timer to ensure
focus() behaves reliably, we should explicitly use one via $timeout.
2019-06-25 14:15:18 -07:00
Mike Jumper e9ed4150b9 GUACAMOLE-302: Merge narrowing of guacFocus behavior to simply setting/removing focus.
Additionally reporting whether the affected element receives or loses focus causes trouble if the source of the original value is non-assignable. It also seems like it could cause unexpected side effects if usages of guacFocus expect to separate their intent (assigning a value via the expression watched by guacFocus) from the result of attempting to set/remove focus. If tracking of focus is needed, that would best be served by another directive dedicated solely to tracking.
2019-06-25 13:04:42 -07:00
Mike Jumper 1818b6a7ee GUACAMOLE-302: Merge logic for automatically focusing relevant login fields. 2019-06-24 14:54:38 -07:00
Michael Jumper ba60449786 GUACAMOLE-822: Correct retrieval of client identifier for connection groups.
Commit f92bf9c moved the getClientIdentifier() function to the
GroupListItem class, thus making the function available as
item.getClientIdentifier() within the connection or connection group
templates referenced by an instance of the guacGroupList directive.

This change correctly updated all but the connection group template for
the home screen, which was incorrectly updated to reference the
function as if it were directly on the scope. As such a function
doesn't exist, AngularJS didn't substitute any value, resulting in a
non-functional link.
2019-06-24 00:21:06 -07:00
Michael Jumper 00f59420e5 Merge 1.1.0 changes back to master. 2019-06-23 19:37:32 -07:00
Mike Jumper f5aa986e63 GUACAMOLE-579: Merge support for retrieving user attributes CAS. 2019-06-23 19:20:14 -07:00
Michael Jumper 3d71f84f0a GUACAMOLE-723: Display connection selection menu only if multiple choices are available. 2019-06-23 12:48:36 -07:00
Michael Jumper 40ee0d3775 GUACAMOLE-723: Consider entire connection hierarchy when determining whether only one connection is available. 2019-06-23 12:39:44 -07:00
Michael Jumper 47ed39fb33 GUACAMOLE-723: Prefer a wider connection selection menu, but no wider than the sidebar. 2019-06-22 18:54:17 -07:00
Michael Jumper 93dbf85a14 GUACAMOLE-723: Automatically close menus upon click unless explicitly marked as interactive. 2019-06-22 18:41:29 -07:00
Michael Jumper 0e33525d7b GUACAMOLE-723: Use ellipsis for overflowing connection names within the connection selection menu. 2019-06-22 17:47:57 -07:00
Michael Jumper 5f1c70e737 Merge 1.1.0 changes back to master. 2019-06-17 18:38:29 -07:00
Mike Jumper 82ea1d6ff5 GUACAMOLE-354: Merge translation and definition for Swiss German keymap option. 2019-06-17 18:34:02 -07:00
Michael Jumper e412742b59 GUACAMOLE-723: Apply ellipsis to all overflowing menu titles by default. 2019-06-15 18:49:32 -07:00
Michael Jumper e351b355a5 GUACAMOLE-723: Apply ellipsis when connection name overflows available space, regardless of whether the connection selection menu is used. 2019-06-15 18:35:14 -07:00
Michael Jumper a084ad41de GUACAMOLE-723: Padding adjustment should be made only to the connection select menu. 2019-06-15 18:11:23 -07:00
Michael Jumper 18e1ec2240 GUACAMOLE-723: Apply ellipsis to portion of connection name that overflows connection selection menu title. 2019-06-15 18:08:40 -07:00
Michael Jumper 4f41890e2b GUACAMOLE-723: Separate connection selection menu to own CSS class. 2019-06-15 18:05:03 -07:00
Michael Jumper 48ce083ad7 GUACAMOLE-815: Remove duplicated "timezone" field definitions and translations. 2019-06-15 14:00:32 -07:00
Michael Jumper 78977ae4fc GUACAMOLE-422: Use the same display mechanism and structure (the guacForm directive) for all locale preferences, not just the time zone. 2019-06-15 13:43:28 -07:00
Michael Jumper ec963dd036 GUACAMOLE-422: Define field type which represents the ID of any supported language. 2019-06-15 13:40:16 -07:00
Michael Jumper 092657aa79 GUACAMOLE-422: Replace non-short-circuit logic in null check (&) with proper short-circuit logic (&&).
Checking `timezone != null & !timezone.isEmpty()` will result in a
`NullPointerException` when `timezone` is null, as the `&` ensures
`timezone.isEmpty()` will run in all cases.
2019-06-08 13:44:45 -07:00
Michael Jumper 1e676559a5 GUACAMOLE-422: Correct toString() for GuacamoleProtocolVersion (must be manually implemented after migrating away from enum). Add unit test for verifying toString(). 2019-06-08 13:37:28 -07:00
Michael Jumper 84bbbc4fa0 GUACAMOLE-422: Add unit test for verifying GuacamoleProtocolVersion. 2019-06-08 13:23:47 -07:00
Michael Jumper df9a0b1662 GUACAMOLE-422: Implement equals() and hashCode() for GuacamoleProtocolVersion. 2019-06-08 12:55:17 -07:00
Michael Jumper dc66f84d71 GUACAMOLE-422: Clarify behavior of atLeast(). 2019-06-08 12:51:08 -07:00
Michael Jumper 8aff7b6f5b GUACAMOLE-422: Correct logic error in atLeast() - this version should be compared against otherVersion. 2019-06-08 12:48:01 -07:00
Michael Jumper 9d1b264417 GUACAMOLE-422: Clarify meaning of protocol capabilities. 2019-06-08 12:44:00 -07:00
Michael Jumper a247ec1edc GUACAMOLE-422: Add getter for retrieving the protocol version negotiated by ConfiguredGuacamoleSocket. 2019-06-08 12:34:34 -07:00
Michael Jumper 001918e2d7 GUACAMOLE-422: Allow arbitrary protocol versions to be represented. Remove API-level assumption that protocol capabilities will have a minimum base version and remain present from that point forward. 2019-06-08 12:34:03 -07:00
Michael Jumper 4df22ce67b Merge 1.1.0 changes back to master. 2019-06-07 09:01:40 -07:00
Mike Jumper f2ae848b1b GUACAMOLE-422: Merge support for forwarding client timezone at Guacamole protocol level. 2019-06-07 08:53:49 -07:00
Michael Jumper 1c1fac700c GUACAMOLE-807: Correct handling of parameter tokens within LDAP.
Parameter tokens are intended to be interpreted by the connections
stored within LDAP. This was previously done through explicitly using a
TokenFilter and the StandardTokens class, however usage of
StandardTokens is now deprecated and the values of tokens to be applied
are now expected to be received through connect(). Usage of
StandardTokens was removed from LDAP with commit 1210d56, but this is
insufficient. An additional parameter must also be provided to the
SimpleConnection constructor to enable its automatic token handling
behavior.
2019-06-07 08:39:30 -07:00
Michael Jumper fe7ef19851 GUACAMOLE-805: Only reformat a URL fragment that appears to be from OpenID Connect if the fragment is not already in a format consumable by AngularJS ("#?..." or "#/?..."). 2019-06-02 17:01:49 -07:00
Michael Jumper 21f1ee6ac3 GUACAMOLE-805: Handle OpenID Connect "id_token" parameter regardless of location within URL fragment. 2019-06-02 16:10:22 -07:00
Michael Jumper 1a57088bfb GUACAMOLE-742: Use "data-disabled" instead of "disabled" for directive attributes.
Internet Explorer 11 interprets the "disabled" attribute on all HTML
elements, even unknown elements like AngularJS directives, disabling any
input fields that end up on the DOM tree within those elements. This
breaks the login form.

The alternative "data-disabled" attribute form supported by AngularJS
allows things to work without interference.
2019-05-16 14:21:47 -07:00
Michael Jumper fb34512833 GUACAMOLE-422: Use TIMEZONE rather than TEXT fields for RDP/SSH "timezone" parameter.
It has been confirmed that the TIMEZONE field does indeed represent IANA
time zone database IDs, as required by the "timezone" parameter.
2019-05-13 18:26:01 -07:00
Michael Jumper 5be810ec6b GUACAMOLE-422: Remove "Canada/East-Saskatchewan" time zone, which was removed from the IANA database in release 2017c of the database.
From http://mm.icann.org/pipermail/tz-announce/2017-October/000047.html:

>
> Remove Canada/East-Saskatchewan from the 'backward' file, as it
> exceeded the 14-character limit and was an unused misnomer anyway.
>
2019-05-13 18:24:37 -07:00
Michael Jumper 803ff27468 GUACAMOLE-422: Update TIMEZONE field documentation to reference IANA time zone database. 2019-05-13 18:21:38 -07:00
Michael Jumper 212a39b025 GUACAMOLE-422: Add definitions and translations for the RDP/SSH "timezone" parameter. 2019-05-09 18:39:18 -07:00
Michael Jumper b5c5fa39ca GUACAMOLE-649: Add definition and translation for SSH "locale" parameter. 2019-05-09 18:25:23 -07:00
Michael Jumper 1623f55191 Merge 1.1.0 changes back to master. 2019-05-05 19:39:21 -07:00
Mike Jumper 4d1e0f18dd GUACAMOLE-696: Merge changes taking database groups into account with respect to database objects when user is otherwise external to the database. 2019-05-05 19:36:37 -07:00
Michael Jumper 91f6bf23c5 GUACAMOLE-742: Reorganize login dialog CSS hierarchically. 2019-04-27 17:43:07 -07:00
Michael Jumper 6a9981c160 GUACAMOLE-742: Remove unnecessary element specificity of login CSS selectors. 2019-04-27 17:41:42 -07:00
Michael Jumper 81872f5718 GUACAMOLE-742: Fade in overall login UI, not just login dialog.
Placing the fade animation on the login dialog (which also handles the
error shake-head animation) results in the dialog fading in each time
the login process changes state. It really should only fade when the
overall login interface initially appears.
2019-04-27 17:39:41 -07:00
Michael Jumper 65995e3f5a GUACAMOLE-783: Ensure GET requests to the REST API are not serviced from the cache in Internet Explorer.
IE 11 appears to ignore the `Cache-Control` header on requests despite
RFC 7234 and does not invalidate cache after changes are made to a
resource via PUT/DELETE/POST despite RFC 2616. It _does_ behave
correctly when the `Pragma` header is included.

This behavior is not observed for Chrome/Firefox which both correctly
honor the `Cache-Control` header and correctly invalidate cache after
changes.
2019-04-27 17:02:18 -07:00
Michael Jumper 583c82a45c GUACAMOLE-742: Disable login form after credentials have been submitted. 2019-04-27 16:56:11 -07:00
Michael Jumper 59fdc80e9f GUACAMOLE-742: Provide "disabled" attribute for forms and fields. 2019-04-27 16:52:37 -07:00
Michael Jumper 61b6664eac GUACAMOLE-715: Include all provided effective user groups that exist within the database in results of effective groups query, regardless of whether the user is declared as a member of those groups within the database.
While this query is generally functioning as described above for all
supported databases, it is not functioning properly for the
non-recursive variant of the MySQL/MariaDB query. This change corrects
that behavior.
2019-04-21 12:02:25 -07:00
Michael Jumper 3ac3c1dc4f Merge 1.1.0 changes back to master. 2019-04-20 10:50:53 -07:00
Michael Jumper ea1b10e9d1 Merge 1.1.0 changes back to master. 2019-04-09 11:11:50 -07:00
Michael Jumper 319c40c906 GUACAMOLE-723: Ensure thumbnail is always confined within designated space. 2019-04-03 11:20:45 -07:00
Michael Jumper b5bfc680e7 GUACAMOLE-723: Size panel thumbnails vertically, not horizontally. 2019-04-02 17:56:48 -07:00
Michael Jumper cbd357c683 GUACAMOLE-723: Allow connections to be closed/removed directly from the panel. 2019-04-02 17:37:57 -07:00
Michael Jumper d7dfd08add GUACAMOLE-723: Display warning icon when background connection disconnects due to an error. 2019-04-02 11:14:23 -07:00
Michael Jumper 378cae57a7 GUACAMOLE-723: Sort connections in panel by last use. 2019-04-02 09:20:45 -07:00
Michael Jumper 19da6e32a2 GUACAMOLE-723: Allow connections in Guacamole menu dropdown to be filtered. 2019-04-02 08:44:45 -07:00
Michael Jumper 7fddb26202 GUACAMOLE-723: Limit size of connections in menu to 10 items. Restore padding around list and pager. 2019-04-02 07:48:57 -07:00
Michael Jumper bd474e9761 GUACAMOLE-723: Allow mouse interaction with the contents of a menu without closing the menu. 2019-04-02 07:47:40 -07:00
Michael Jumper dc012e4226 GUACAMOLE-723: Hide scrollbar and thumbnails when client panel is hidden. 2019-03-25 17:02:36 -07:00
Michael Jumper 07a967bb6b GUACAMOLE-723: Ensure client panel renders above status notifications. 2019-03-25 17:02:32 -07:00
Michael Jumper 53bb1981c1 GUACAMOLE-723: Persist client panel state across navigation. 2019-03-25 17:02:27 -07:00
Michael Jumper e0dcd67a9b GUACAMOLE-723: Update size of attached client when a different client is attached. 2019-03-25 17:02:22 -07:00
Michael Jumper aa633c2a63 GUACAMOLE-723: Organize other active connections within collapsible panel. 2019-03-25 17:02:16 -07:00
Michael Jumper e7eb46b2a1 GUACAMOLE-723: Display connection thumbnails for all non-current active connections within the client interface. 2019-03-25 17:02:11 -07:00
Michael Jumper 57cdd2b483 GUACAMOLE-723: Allow connections to be selected within the Guacamole menu. 2019-03-25 17:02:06 -07:00
Michael Jumper f92bf9c35f GUACAMOLE-723: Move getClientIdentifier() to GroupListItem for convenience of other uses of the guacGroupList directive. 2019-03-25 17:01:58 -07:00
Michael Jumper 2d0bc70214 GUACAMOLE-723: Avoid DOM reflow when switching connections. 2019-03-25 17:01:25 -07:00
Michael Jumper beb1b66c75 GUACAMOLE-749: Call proper type-specific function when flattening a GroupListItem tree. 2019-03-06 23:40:10 -08:00
Michael Jumper 8f2d3ef153 Merge 1.1.0 changes back to master. 2019-03-05 11:35:24 -08:00
Michael Jumper e99b207a58 GUACAMOLE-381: Add definitions for "disable-copy" and "disable-paste" connection parameters. 2019-02-20 21:30:00 -08:00
Michael Jumper c675d83ff9 GUACAMOLE-729: Extensions compatible with 1.0.0 are also compatible with 1.1.0. 2019-02-09 11:09:05 -08:00
Michael Jumper c3fbf44f70 GUACAMOLE-729: Bump version numbers to 1.1.0. 2019-02-09 11:08:28 -08:00
Michael Jumper bcbac1fb57 GUACAMOLE-524: Ensure all guacamole-ext classes implementing connect() use the old connect() as their basis. Overriding the old connect() will not have the expected effect otherwise. 2019-01-22 15:49:16 -08:00
Michael Jumper feecb6301f GUACAMOLE-524: Declare deprecation of old connect() within guacamole-ext. 2019-01-22 15:46:43 -08:00
Michael Jumper a28b3c393a GUACAMOLE-524: Do not interpret tokens in SimpleUserContext if interpretTokens is false. 2019-01-22 14:25:27 -08:00
Michael Jumper 05553ec918 GUACAMOLE-524: Internally replace Connectable with an ABI-compatible version.
Defining an ABI-compatible version of Connectable at the guacamole-ext
level is problematic as concrete implementations of the interface will
suddenly compile despite having no implementation of connect() at all.

We can instead rely on the web application to ensure binary
compatibility, leaving guacamole-ext to define the interface that new
code should use.
2019-01-22 12:29:03 -08:00
Michael Jumper 9d74d9911e GUACAMOLE-524: Correct JavaDoc references to previous iteration of API rework. 2019-01-22 00:28:44 -08:00
Michael Jumper 49cd4e5531 GUACAMOLE-524: Clarify and document SimpleConnection implementation. 2019-01-21 22:04:44 -08:00
Michael Jumper 6be722ed9d GUACAMOLE-524: Require usages of SimpleConnection to explicitly request automatic interpretation of parameter tokens. Do not enable by default.
Previous implementations of SimpleConnection did not interpret parameter
tokens automatically. Adding that behavior now could have security
implications for downstream users of the class if parameter values may
unexpectedly contain substrings which would be interpreted as tokens,
particularly if parameter values are built from untrusted input.
2019-01-21 19:55:33 -08:00
Michael Jumper 7e67dde751 GUACAMOLE-524: Leverage thread-local storage to allow overriding the deprecated connect() function to have the expected effect within subclasses of SimpleConnection. 2019-01-21 17:52:54 -08:00
Michael Jumper b638387920 GUACAMOLE-524: Provide distinct, documented, internal access to raw GuacamoleConfiguration within SimpleConnection.
While raw, internal access to the GuacamoleConfiguration was originally
present in older versions of SimpleConnection, this access was
undocumented and could result in unexpected behavior if the default
constructor was used, getConfiguration() was overridden, or
setConfiguration() was called.
2019-01-21 17:38:24 -08:00
Michael Jumper 4a1527b1d4 GUACAMOLE-524: Provide bridge implementations of both old and new versions of connect() for sake of compatibility. 2019-01-20 13:30:55 -08:00
Michael Jumper fe36014e97 GUACAMOLE-699: Add helper script for verifying translations. 2019-01-12 16:36:58 -08:00
Michael Jumper 78f1ae1b4e GUACAMOLE-682: Merge support for specfying the Maven build profile when building the Docker image. 2018-12-24 09:06:41 -08:00
Michael Jumper caf07a92a9 Merge 1.0.0 changes back to master. 2018-12-05 14:40:34 -08:00
Michael Jumper 801a5df9f1 GUACAMOLE-526: Merge changes correcting regression in CAS due to AngularJS update.
Including `ngRoute` as a dependency of a module which defines a custom
field type will always result in the following error:

    Unknown provider: $rootElementProvider <- $rootElement <- $location <- $route <- $location

This seems to be due to the manner in which the injector is created for
field types. `$rootElementProvider` is not available for injection in
the context of the injector of a custom field. This is generally OK, but
`ngRoute` transitively depends on `$rootElementProvider`. Since
`$rootElementProvider` cannot be injected within the context of a field
type, no field type can depend on ngRoute without causing this error.

Note that extensions can still leverage `ngRoute` (this is already done
by the OpenID support). It just cannot be declared as a dependency of a
module containing a custom field type.
2018-12-05 14:32:37 -08:00
Michael Jumper ef0cb1ee7a GUACAMOLE-598: Ignore if current user has no associated data. Authentication providers are not required to provide data for the users they authenticate. 2018-12-04 13:22:16 -08:00
Michael Jumper fc457c080d Merge 1.0.0 changes back to master. 2018-12-03 07:32:21 -08:00
Michael Jumper a967ffa41c GUACAMOLE-670: Merge changes correcting conflicting versions of SLF4J. 2018-12-03 07:30:23 -08:00
Michael Jumper 95b5fdccdc GUACAMOLE-656: Explicitly depend on maven-surefire-plugin 3.0.0-M1 due to SUREFIRE-1588. 2018-11-08 22:09:35 -08:00
Michael Jumper b355106c77 GUACAMOLE-220: Remove unnecessary explicit type parameters. 2018-11-08 20:11:17 -08:00