Commit Graph
100 Commits
Author SHA1 Message Date
Michael Jumper afb377d5ed GUACAMOLE-5: Automatically clean up share keys and any associated tunnels when the connection being shared is closed. 2016-07-25 12:07:20 -07:00
Michael Jumper e54d36cae5 GUACAMOLE-5: Implement thread-safe automatic cleanup of a group of shared objects. 2016-07-24 19:51:17 -07:00
Michael Jumper b201eac617 GUACAMOLE-5: Use ActiveConnectionRecord as the basis for sharing. TrackedActiveConnection is really only meant for interchange via the ActiveConnection Directory. 2016-07-24 19:51:17 -07:00
Michael Jumper 16fce2931f GUACAMOLE-5: Store SharedConnectionDefinition directly, rather than passing around its contents. 2016-07-24 19:51:17 -07:00
Michael Jumper d334aa97d6 GUACAMOLE-5: Store share key within SharedConnectionDefinition. 2016-07-24 19:51:17 -07:00
Michael Jumper 702441d720 GUACAMOLE-5: Do not attempt to join a closed connection. 2016-07-21 15:35:32 -07:00
Michael Jumper 43761ef482 GUACAMOLE-5: Verify sharing profile belongs to the requested connection. 2016-07-21 15:16:09 -07:00
Michael Jumper 19f80dac95 GUACAMOLE-5: Implement joining of shared connections via temporary credentials. 2016-07-21 14:25:51 -07:00
Michael Jumper bfa5c38123 GUACAMOLE-5: Implement sharing-specific user context and in-memory storage. Add additional tracking of connections for sake of sharing. 2016-07-21 13:44:24 -07:00
Michael Jumper b68a8c128c GUACAMOLE-5: Implement storage of ActiveConnection/SharingProfile pairs by an assigned share key. 2016-07-20 13:47:30 -07:00
Michael Jumper 75f74eec94 GUACAMOLE-5: Extract common base class for AuthenticatedUser. 2016-07-20 13:42:57 -07:00
Michael Jumper e1f4e6574e GUACAMOLE-5: Add randomly-generated connection sharing keys. 2016-07-20 13:35:24 -07:00
Michael Jumper fc05224512 GUACAMOLE-5: Expose sharing profiles at connection level. 2016-07-19 22:26:30 -07:00
Michael Jumper c304a981e1 GUACAMOLE-5: Expose sharing profile permissions. 2016-07-19 22:26:30 -07:00
Michael Jumper a03b76d9dd GUACAMOLE-5: Expose sharing profiles via a Directory on the UserContext according to granted permissions. 2016-07-19 22:26:30 -07:00
Michael Jumper 53a856b285 GUACAMOLE-5: Add sharing profile properties to connection record model. 2016-07-19 22:26:30 -07:00
Michael Jumper cfac865807 GUACAMOLE-5: Map sharing profile model objects to database schema. 2016-07-19 22:26:30 -07:00
Michael Jumper 21f5aba548 GUACAMOLE-5: Add sharing profiles to database schema. 2016-07-19 11:21:45 -07:00
Michael Jumper 9b2909445a GUACAMOLE-5: Move single space from UserTunnel to PermissionSetResource. 2016-07-17 14:54:32 -07:00
Michael Jumper 7ea4af7016 GUACAMOLE-5: Provide direct access via REST to the sharing profiles available for the active connection of a given tunnel. 2016-07-16 20:44:40 -07:00
Michael Jumper bb36045ff8 GUACAMOLE-5: Add DirectoryView object, providing a Directory interface around a restricted subset of objects within another existing Directory. 2016-07-16 11:42:48 -07:00
Michael Jumper 62dcd9e9ec GUACAMOLE-5: Implement JavaScript service for retrieving sharing credentials from an active connection. 2016-07-16 11:42:48 -07:00
Michael Jumper c6ce92bd0a GUACAMOLE-5: Implement retrieval of sharing credentials from an active connection via REST. 2016-07-16 11:42:47 -07:00
Michael Jumper 3dce3bc5b8 GUACAMOLE-5: Add Connection subresource to the ActiveConnection resource. 2016-07-16 11:42:47 -07:00
Michael Jumper aeb60e7e53 GUACAMOLE-5: Add ActiveConnection subresource to the tunnel REST resource. 2016-07-16 11:42:47 -07:00
Michael Jumper e4fe1a3a65 GUACAMOLE-5: Associate the UserContext with any created tunnel. 2016-07-16 11:42:47 -07:00
Michael Jumper c231f4eb57 GUACAMOLE-5: Add SharingProfiles to REST API. 2016-07-16 11:42:47 -07:00
Michael Jumper 2131abb480 GUACAMOLE-5: Bring JDBC authentication up to date with sharing profile API changes. 2016-07-16 11:42:47 -07:00
Michael Jumper 4eebc3b301 GUACAMOLE-5: Bring LDAP authentication up to date with sharing profile API changes. 2016-07-16 11:42:47 -07:00
Michael Jumper 0a0b5000bf GUACAMOLE-5: ActiveConnections should be Shareable, to allow sharing links to be generated based on a SharingProfile. 2016-07-16 11:42:47 -07:00
Michael Jumper e687ed040f GUACAMOLE-5: Define Shareable interface which defines a mechanism for generating (likely temporary) credentials. 2016-07-16 11:42:47 -07:00
Michael Jumper f9f78a64fc GUACAMOLE-5: Define UserCredentials object which couples a CredentialsInfo with defined parameter values. 2016-07-16 11:42:47 -07:00
Michael Jumper ad50a77293 GUACAMOLE-5: Implement QUERY_PARAMETER field type. 2016-07-16 11:42:47 -07:00
Michael Jumper 0f49c39ed4 GUACAMOLE-5: Track the sharing profile associated with an active connection. 2016-07-16 11:42:47 -07:00
Michael Jumper a2ad7a69ab GUACAMOLE-5: Add sharing profile permissions. 2016-07-16 11:42:47 -07:00
Michael Jumper eededc33ca GUACAMOLE-5: Define sharing profiles and their relationship to connections. 2016-07-16 11:39:44 -07:00
Michael Jumper 4e7f086f83 GUACAMOLE-5: Move common identifier equals() / hashCode() of abstract Identifiable implementations to common base class. 2016-07-16 11:09:10 -07:00
Michael Jumper cdd71411fb GUACAMOLE-5: All REST resources MUST be non-generic. Type parameters of generic classes will otherwise be handled as Object by Jersey due to type erasure, resulting in class cast exceptions due to JSON being deserialized as a Map instead of the intended type. 2016-07-14 14:37:33 -07:00
Michael Jumper bd8c37c737 GUACAMOLE-5: Ensure all exceptions from within REST make their way to a JSON response, even if not a GuacamoleException. 2016-07-14 14:34:59 -07:00
Michael Jumper 6b98ce2c67 GUACAMOLE-5: Remove path from tunnel collection resource, as it is no longer a root resource. 2016-07-13 22:16:24 -07:00
Michael Jumper b66925c3d0 GUACAMOLE-5: Update tunnelService to match REST changes. 2016-07-12 22:02:41 -07:00
Michael Jumper abef36e11f GUACAMOLE-5: Increase the documentation factor of DirectoryResource. 2016-07-12 21:42:15 -07:00
Michael Jumper aeec3eca40 GUACAMOLE-5: DirectoryResource deals with objects, not users. 2016-07-12 21:40:58 -07:00
Michael Jumper e4ed85cfcb GUACAMOLE-5: Refactor away ObjectRetrievalService. 2016-07-12 21:38:07 -07:00
Michael Jumper b189f5fef9 GUACAMOLE-5: Consolidate UserContexts and tunnels under the same hierarchy. 2016-07-12 21:23:47 -07:00
Michael Jumper 60c672eeea GUACAMOLE-5: Ensure all API errors are returned as JSON. 2016-07-12 21:23:47 -07:00
Michael Jumper fa286f549a GUACAMOLE-5: Consider methods annotated with @Path to be REST methods as well. 2016-07-12 21:23:47 -07:00
Michael Jumper c586d1840d GUACAMOLE-5: Expose session as a REST resource. Refactor /api/data to /api/session/data. 2016-07-12 21:23:47 -07:00
Michael Jumper 1aa256b26c GUACAMOLE-5: Take superclass into account when determining whether a method is a REST method. 2016-07-12 21:23:47 -07:00
Michael Jumper 50295083d2 GUACAMOLE-5: Remove unneeded functions from ObjectRetrievalService. 2016-07-12 21:23:47 -07:00
Michael Jumper 3c9da92e9c GUACAMOLE-5: Rename SessionResource to SessionDataRESTService for consistency. 2016-07-12 21:23:47 -07:00
Michael Jumper 89eabc1d70 GUACAMOLE-5: Expose UserContext schema as a resource, not a separate REST service. Refactor URLs accordingly. 2016-07-12 21:23:47 -07:00
Michael Jumper 3658b91fe1 GUACAMOLE-5: Refactor HistoryRESTService as a resource. 2016-07-12 21:23:46 -07:00
Michael Jumper 3f7f6e6d5b GUACAMOLE-5: Ensure random password is generated for new users (if not otherwise specified). 2016-07-12 21:23:46 -07:00
Michael Jumper 86d94d18d4 GUACAMOLE-5: Move permission management to own resource. 2016-07-12 21:23:46 -07:00
Michael Jumper 374ad3eb23 GUACAMOLE-5: Replace UserRESTService with new resource-driven implementation. 2016-07-12 21:23:46 -07:00
Michael Jumper 61d581ef0d GUACAMOLE-5: Replace ActiveConnectionRESTService with new resource-driven implementation. 2016-07-12 14:53:24 -07:00
Michael Jumper 71c2b4e4d4 GUACAMOLE-5: Replace ConnectionGroupRESTService with new resource-driven implementation. 2016-07-12 14:53:24 -07:00
Michael Jumper 06b7887807 GUACAMOLE-5: Replace ConnectionRESTService with new resource-driven implementation. 2016-07-12 11:42:16 -07:00
Michael Jumper bca4e34b51 GUACAMOLE-5: Provide UserContext to DirectoryObjectResourceFactory, in case needed by a particular resource (such as for additional permission checks). 2016-07-12 00:31:52 -07:00
Michael Jumper f440f55823 GUACAMOLE-5: Validate that data was provided when creating/updating resources. 2016-07-12 00:20:36 -07:00
Michael Jumper e579eae95c GUACAMOLE-5: Add root-level resources exposing UserContexts. 2016-07-12 00:15:18 -07:00
Michael Jumper d3a9cecb17 GUACAMOLE-5: Define base classes for REST API subresource locators. 2016-07-11 23:45:48 -07:00
Michael Jumper 92ff80a503 GUACAMOLE-55: Sync to local clipboard when client clipboardData changes. 2016-06-29 20:03:59 -07:00
Michael Jumper a4019b7f82 GUACAMOLE-55: Automatically fire guacClipboard events from index controller when local clipboard has changed. 2016-06-29 19:57:01 -07:00
Michael Jumper b55c4c0211 GUACAMOLE-55: Do not sync local clipboard if menu is open. 2016-06-29 19:36:39 -07:00
Michael Jumper 0679c10187 GUACAMOLE-55: Move local clipboad sync logic back into clientController. Keep the guacClipboard directive lean and with a single purpose. 2016-06-29 18:46:27 -07:00
Michael Jumper b9a57897c5 GUACAMOLE-55: Set background to clipboard-service-target to match clipboard editor. Browser may otherwise explicitly add the background of the body to pasted text with inline styles. 2016-06-29 17:24:51 -07:00
Michael Jumper 3f372cce68 GUACAMOLE-55: Render <img> tags as their alt text. 2016-06-29 16:31:18 -07:00
Michael Jumper 6ee4264a21 GUACAMOLE-55: Strip any images which may be present prior to assigning text content. 2016-06-29 16:11:20 -07:00
Michael Jumper c68cedd652 GUACAMOLE-55: Correct outdated documentation within setTextContent(). 2016-06-29 15:27:51 -07:00
Michael Jumper 3f51a6dd98 GUACAMOLE-55: Directly render content to text, rather than trusting Selection.toString(). 2016-06-29 14:18:37 -07:00
Michael Jumper 2471cece7f GUACAMOLE-55: Use own getTextContent() rather than element.textContent, as the textContent property does not preserve line breaks due to block level elements. 2016-06-29 12:57:00 -07:00
Michael Jumper 880df109e3 GUACAMOLE-55: Remove unnecessary reset-button style. 2016-06-29 12:50:22 -07:00
Michael Jumper 42e41560d8 GUACAMOLE-55: Ensure <p> / <div> elements within the clipboard contents are rendered with normal spacing. 2016-06-29 12:49:57 -07:00
Michael Jumper 6e1bbb3cf4 GUACAMOLE-55: Remove unneeded reference to document. 2016-06-28 20:44:24 -07:00
Michael Jumper e4f7c6d058 GUACAMOLE-55: The clipboard-service-target needs to be "white-space: pre" as well, or newline characters are truncated by setLocalClipboard(). 2016-06-28 20:43:21 -07:00
Michael Jumper da098c42e1 GUACAMOLE-55: Use the files collection if the clipboard data does not define an items collection. 2016-06-28 17:25:22 -07:00
Michael Jumper 058665e1f5 GUACAMOLE-55: Define wait period before clipboard reads with a documented constant. 2016-06-28 16:10:03 -07:00
Michael Jumper 942fd5dd67 GUACAMOLE-55: Remove unnecessary style - there is no longer a textarea in the guac menu. 2016-06-28 15:05:49 -07:00
Michael Jumper f289be05b2 GUACAMOLE-55: Attempt to set local clipboard with received data. 2016-06-28 14:50:16 -07:00
Michael Jumper 16637b0732 GUACAMOLE-55: Prevent clipboard events generated by the clipboardService from disturbing the operations of the guacClipboard directive. 2016-06-28 14:00:53 -07:00
Michael Jumper ea5ee1825b GUACAMOLE-55: Update clipboardService to support non-text contents. 2016-06-28 13:51:24 -07:00
Michael Jumper 6e4e6454f7 GUACAMOLE-55: Switch to a content-editable div for the clipboard (rather than a textarea). 2016-06-28 11:49:29 -07:00
Michael Jumper 2a20aefa92 GUACAMOLE-55: Do not attempt to send empty text blobs. 2016-06-27 18:33:15 -07:00
Michael Jumper 17e97e4311 GUACAMOLE-55: Improve styling of copied images. 2016-06-26 20:44:57 -07:00
Michael Jumper 8c5446127b GUACAMOLE-55: Move clipboard handling to own module. Represent clipboard contents with ClipboardData type. 2016-06-26 20:44:56 -07:00
Michael Jumper 7f08766392 GUACAMOLE-55: Add image support to the guacClipboard directive. 2016-06-26 20:44:56 -07:00
Michael Jumper 0a0933a23e GUACAMOLE-55: Clean up event handlers after guacClipboard directive is destroyed. 2016-06-26 20:44:56 -07:00
Michael Jumper 65897fdb64 GUACAMOLE-55: Check clipboard when guacClipboard directive is initialized. 2016-06-26 20:44:56 -07:00
Michael Jumper 01eddd2772 GUACAMOLE-55: Restore focus state after attempting to read local clipboard. 2016-06-26 20:44:56 -07:00
Michael Jumper 0c6383a082 GUACAMOLE-55: Clipboard element must be "position: fixed" to avoid unnecessary scrolling of the document. 2016-06-26 20:44:56 -07:00
Michael Jumper 0edc730308 GUACAMOLE-55: Only the guacClipboard directive should fire guacClipboard events. 2016-06-26 20:44:56 -07:00
Michael Jumper 0eed6c32ae GUACAMOLE-55: Move clipboard functionality to a new guacClipboard directive. 2016-06-26 20:44:56 -07:00
Michael Jumper c87f7444cc GUACAMOLE-55: Refactor FileWriter to BlobWriter. 2016-06-23 19:45:33 -07:00
Michael Jumper 10344aeba4 GUACAMOLE-53: Implement session affinity within the GuacamoleTunnelService. 2016-06-14 22:14:41 -07:00
Michael Jumper b7ac434d41 GUACAMOLE-53: Add session affinity attribute for connection groups. 2016-06-14 22:14:41 -07:00
Michael Jumper f4a3c5b31e GUACAMOLE-52: Foreign keys in history table should be ON DELETE SET NULL. For sake of context, always store username and connection name in history table. 2016-06-14 21:25:41 -07:00
Michael Jumper 673fe42631 GUACAMOLE-50: Merge changes updating Java version of guacamole-docker. 2016-06-14 14:26:15 -07:00
Michael Jumper eaca2d459d GUACAMOLE-1: Clean up login screen with respect to version number. 2016-06-09 16:12:42 -07:00